选一个信号在matlab上编写一个程序对所选信号进行采样和恢复,各一个,加上图形。 20
选一个信号在matlab上编写一个程序对所选信号进行采样和恢复,各一个,加上图形。求大神指教,真的真的不会啊,发到邮箱997533919@qq.com。。。。谢谢大神。...
选一个信号在matlab上编写一个程序对所选信号进行采样和恢复,各一个,加上图形。求大神指教,真的真的不会啊,发到邮箱 997533919 @ qq .com 。。。。谢谢大神。
展开
1个回答
展开全部
给你一个通用的
clear all;
clf;
N = 200; %采样数量
F = 1; %被采样信号频率1Hz
Ts = 0.1; %采样间隔
Fs = 1/Ts; %采样频率
T = N*Ts; %采样时长
n = 0:N-1; %时域采样序列(N个采样)
NP = floor( (1/F)/(Ts) ); %1个周期采样点数
%为了清楚显示波形,只画1个周期
nTs = n*Ts; %时域采样时间序列
%对下列信号进行研究
g = inline( 'sin(t)+2*sin(2*t)');
%时域采样
f = g(2*pi*nTs);
hf=figure(1);
subplot(211);
stem(nTs(1:NP),f(1:NP));
title(['采样信号,Ts=' num2str(Ts)]);
%下面是为了更好地显示出待采样信号的波形
Ts1 = 0.001;
NP1 = floor( (1/F)/(Ts1) );
hold on;
plot([0:NP1-1]*Ts1,g([0:NP1-1]*2*pi*Ts1),'r-');
hold off;
%下面开始用内插法重建信号
%采样信号: x(n)=f
%采样间隔: T=Ts
%原理(内插法): y(t)=Σx(n)sinc((t-nTs)/Ts)
t1 = 0; %开始时间
t2 = 1/F; %结束时间(取信号的1个周期)
Dt = Ts/2;
t=t1:Dt:t2;
fa = f * sinc( Fs*(ones(length(nTs),1)*t - nTs'*ones(1,length(t))) );
subplot(212);
plot(t,fa);
title('重建信号(内插法)');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询