matlab傅里叶反变换举例,matlab傅里叶正逆变换详细说明+图例

MATLAB作业

方法一:

N=200;dt=0.001;n=1:200;

x=3*sin(2*pi*10*n*dt)+3*sin(2*pi*30*n*dt)+sin(2*pi*40*n*dt)+sin(2 *pi*50*n*dt)+sin(2*pi*60*n*dt)+6*sin(2*pi*80*n*dt);%建立时间序列

X=zeros(1,200); %给X一个预先的内存空间,提高运行速度figure(1),plot(n,x); %画出时间系列图像

%傅里叶变换

for k=1:200

for n=1:200

X(k)=X(k)+x(n)*exp(-i*2*pi*n*k/N);

end

end

f=abs(X); %对傅里叶变换后的图像取正数部分

figure(2),plot(f); %画出傅里叶变换后的图像

%滤波

H=ones(200);H(8:14)=0;H(186:193)=0; %建立40、50、60Hz的时间序列所在空间域数值为0的一维矩阵

for k=1:200

Y(k)=X(k)*H(k);

end

k=1:200;

figure(3);

plot(k,abs(Y)); %画出滤波之后的时间序列

%傅里叶逆变换

y=zeros(1,200)% 给y一个预先的内存空间,提高运行速度

for n=1:200

for k=1:200

y(n)=Y(k)*exp(i*2*pi*n*k/N)+y(n);

end

y(n)=y(n)/N;

end

figure(4) ;

n=1:200;

plot(n,y,'r-',n,x,'b-');% 画出原时间序列和滤波后的时间序列,可见滤波之后的时间序列振幅明显变小

方法二:

N=200;dt=0.001;n=1:200;

x=3*sin(2*pi*10*n*dt)+3*sin(2*pi*30*n*dt)+sin(2*pi*40*n*dt)+sin(2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值