MATLAB上机 采样定理

采样定理

fft1.m

function result=fft1(w,hanshu,n)
for i=1:length(w)
    m=hanshu.*((exp(-1i*(i-1)*pi/100)).^n);
    a{i}=sum(m);  
end
for i=1:length(w)   
    result(i)=a{i};

end

原始信号

x1=0:pi/10:(8*pi);   
w=linspace(0,8*pi,length(x1)); 
figure  
subplot(211)
plot(x1,sin(x1)+2*cos(x1),'k');  %原时域连续信号y=sin(t)+2cost 
line([0 30],[0 0]);
xlabel('t');ylabel('x(t)');
title('原时域连续信号y=sin(t)+2cost');  
grid  
sin1=sin(x1)+2*cos(x1);   
n=0:(length(x1)-1); 
subplot(212)  
plot(w,abs(fft1(w,sin1,n)));      %其对应频域信号Y=FFT(sin(t))      
xlabel('w');ylabel('x(w)');   
title('其对应频域信号Y=FT(sin(t)+2cos(t))'); 
grid 

采样信号

n1=input('请输入采样点数n:'); 
n=0:n1;  
zb=size(n);  
figure  
%sinf=sin(8*pi*n/zb(2)); 
sinf=sin(8*pi*n/zb(2))+2*cos(8*pi*n/zb(2));
subplot(211);  
stem(n,sinf,'.');   
xlabel('n');ylabel('x(n)');
title('采样后的时域信号y=x(n)'); 
w=0:(pi/100):4*pi;
subplot(212)  
plot(w,abs(fft1(w,sinf,n))); 
xlabel('w');ylabel('x(w)');   
title('采样后的频域信号y=FT(sin(n))'); 

低通滤波器

 wp=0.1;ws=0.7;Rp=2;As=30; 
[N,wc]=buttord(wp,ws,Rp,As);  
[B,A]=butter(N,wc);             
[H,w]=freqz(B,A,512,1000);      %返回在采样频率下频率向量
figure; 
plot(w*1000/(2*pi),abs(H));  
xlabel('Hz');ylabel('频率响应幅度');
title('低通滤波器');
grid;

恢复信号

figure
y=filter(B,A,sinf);
subplot(2,1,1);plot(y,'k')%恢复后的连续信号
xlabel('t');ylabel('x(t)');
title('恢复后的连续信号y=sin(t)+2cost');
grid;
Y=fft(y,512);
w=(0:255)/256*500;
subplot(2,1,2),
plot(w,abs([Y(1:256)]));%绘制频谱图
xlabel('Hz');ylabel('频率响应幅度');
title('频谱图');
grid;
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值