逆傅里叶变IFFT原始信号恢复方法研究-附Matlab代码

一、原始信号模拟

现实中,由于得到的信号都是实数序列。设有实数序列x(n),如下图所示

在这里插入图片描述

图1 原始信号

对应Matlab如下:

%% 矩形波
N=33;                           % 设置N长
x=zeros(1,N);                   % 构成矩形波形
x(7:27)=1;
figure,plot(x,'r')
xlabel('样点'); ylabel('幅值'); 

二、傅里叶变换

把x(n)经FFT转到频域中为X(k),该信号频域分布如下图所示:

在这里插入图片描述

图2 原始信号频域分布(频谱)

对应Matlab如下:

%% 傅里叶变换
X=fft(x);                       % FFT
figure,plot(real(X),'r');title('信号频谱')

三、频域滤波/频域处理

然后在频域中进行处理滤波处理,频域处理后如下图所示:

在这里插入图片描述

图3频谱滤波

对应Matlab如下:

%%  频域滤波
Y=zeros(1,33);                  % 初始化Y
Y(1:7)=X(1:7);                  % 设定只取1-6条谱线
Y(28:33)=X(28:33);              % 构成相应对称的谱线
figure,plot(real(Y),'r');title('频域滤波处理')

四、原始信号恢复

将频域滤波后的频谱进行IFFT,即可恢复实数序列。

在这里插入图片描述

图4 原信号恢复

对应Matlab如下:

%% 信号恢复
y=ifft(Y);                      % FFT逆变换
n=1:N;
figure, plot(n,y,'b');

五、Matlab程序获取与验证

完整代码链接如下:

矩形波的FFT逆傅里叶变换恢复原始信号

可开展针对性验证实验,请私信博主。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值