马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
大家帮忙看下面的程序:
%用FFT方法消噪演示程序
>> n=1024;
>> t=1:n;
>> x=rand(size(t));
>> Y=fft(x,n);
>> Y(200:824)=zeros(size(1:625));
>> z=ifft(Y,n);
>> for i=1:n
t=i/n;
t1=(t-1/8)^2;t3=(t-3/8)^2;
t4=(t-4/8)^2;t6=(t-6/8)^2;
t7=(t-7/8)^2;m=640*pi;
k(i)=i;
s(i)=cos(2*pi*280*t)*(exp(-m*t1)+exp(-m*t3)+exp(-m*t4)+exp(-m*t6)+exp(-m*t7));
end
>> y=s+z;
>> subplot(3,2,1);
>> plot(k,s);axis([0,1024,-2,2]);xlabel('t');
>> s1=fft(s,n);
>> subplot(3,2,2);
>> plot(k,s1);axis([0,500,-100,100]);xlabel('f');
>> subplot(3,2,3);
>> plot(k,y);axis([0,1024,-2,2]);xlabel('t');
>> s2=fft(y,n);
>> subplot(3,2,4);
>> plot(k,s2);axis([0,500,-100,100]);xlabel('f');
>> subplot(3,2,5);
>> plot(k,s);axis([0,1024,-2,2]);xlabel('t');
>> subplot(3,2,6);
>> plot(k,s1);axis([0,500,-100,100]);xlabel('f');
由于图片太大没法上传,请大家自己运行一下吧,但大家注意一下结果
后面两句画图命令和上面的两句
plot(k,s);axis([0,1024,-2,2]);xlabel('t');
plot(k,s1);axis([0,500,-100,100]);xlabel('f');
是一样的,但画出来的图却有些不一样,这是为什么呢?这之间k,s,s1的值并没有改变啊.
|