声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 976|回复: 2

求助,看看这个程序是不有什么错误

[复制链接]
发表于 2009-5-6 15:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
%*******************************************************************%
%f—模拟信号的频率
% M—基2 FFT幂次数 N=2^M为采样点数,这样取值是为了便于作基2的FFT分析
%用来模拟 模拟信号的 数字信号的采样频率Fs
%过采样频率fs
%*******************************************************************%
f=100;M=10;Fs=10000;
N=2^M; % fft点数=取样总点数
Ts=1/Fs; % 取样时间间隔
T=N*Ts; % 取样总时间=取样总点数*取样时间间隔
n=0:N-1; t=n*Ts; wn=2*f/Fs;
Xn=sin(2*f*pi*t)+rands(size(t));
figure(1); subplot(221)
plot(t,Xn); title('滤波前信号'); axis([0 T/2 min(Xn) max(Xn)])
X=abs(fft(Xn,512)); f0=(0:length(X)-1)'*f/length(X)
subplot(222); plot(f0,X);title('滤波前信号的频谱');

%滤波
[b,a]=butter(2,wn); y=filter(b,a,Xn);
subplot(223); plot(t,y);title('滤波后信号');
axis([0 T/2 -1 1]); Y=abs(fft(y,512));
subplot(224); plot(Y); title('滤波后信号的频谱');

%采样点数,间隔的计算
fs=250 %采样频率
deltaN=Fs/fs; Ns=N/deltaN;

%采样
for i=1:Ns, Xd(i)=Xn((i-1)*deltaN+1); end
figure(2)
subplot(4,1,1); stem(Xd,'.'); title('采样后离散信号'); axis([1 Ns min(s) max(s)]);
XD=abs(fft(Xd,512));
subplot(412); plot(XD);title('采样后离散信号的频谱');

[ 本帖最后由 ChaChing 于 2009-5-7 10:05 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-5-6 15:28 | 显示全部楼层

回复 楼主 梦晓 的帖子

请给出详细的出错提示
 楼主| 发表于 2009-5-6 16:14 | 显示全部楼层

回复 沙发 sigma665 的帖子

运行没有错误,就是感觉出来的图形不对,还有在画频谱图时,plot(Y);中加上f0就是plot(f0,Y);就和原频谱图基本相像,如果不加,就感觉差很远,而且改变采样信号,采样后离散信号的频谱没有变化,如果采样频率低于奈奎斯特采样频率时应该是有重叠才对啊,我是刚学习,都不是很了解

还有,如果再用三次样条内插进行模拟信号重建,该怎么编程啊

[ 本帖最后由 ChaChing 于 2009-5-6 16:51 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 07:17 , Processed in 0.063773 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表