Matlab实现快速傅里叶逆变换
  NTGlKyq7MwNU 2023年11月20日 19 0

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。

🍎个人主页:算法工程师的学习日志


昨晚分享了matlab的快速傅里叶变换,应群友要求,分享一下快速傅里叶逆变换


昨晚文章:Matlab实现傅里叶变换

Matlab实现快速傅里叶逆变换通过ifft函数。


语法



X = ifft(Y)

X = ifft(Y,n)

X = ifft(Y,n,dim)

X = ifft(___,symflag)






说明

X = ifft(Y) 使用快速傅里叶变换算法计算 Y 的逆离散傅里叶变换。X 与 Y 的大小相同。

  • 如果 Y 是向量,则 ifft(Y) 返回该向量的逆变换。
  • 如果Y 是矩阵,则 ifft(Y) 返回该矩阵每一列的逆变换。
  • 如果 Y 是多维数组,则 ifft(Y) 将大小不等于 1 的第一个维度上的值视为向量,并返回每个向量的逆变换。

X = ifft(Y,n) 通过用尾随零填充 Y 以达到长度 n,返回 Y 的 n 点傅里叶逆变换。

X = ifft(Y,n,dim) 返回沿维度 dim 的傅里叶逆变换。例如,如果 Y 是矩阵,则 ifft(Y,n,2) 返回每一行的 n 点逆变换。

X = ifft(___,symflag) 指定 Y 的对称性。例如,ifft(Y,'symmetric') 将 Y 视为共轭对称。

示例

向量的逆变换,时空采样数据与频率采样数据间的傅里叶变换及其逆变换。

创建一个向量并计算其傅里叶变换。




  15.0000 + 0.0000i  -2.5000 + 3.4410i  -2.5000 + 0.8123i  -2.5000 - 0.8123i  -2.5000 - 3.4410i
计算 Y 的逆变换,结果与原始向量 X 相同。

ans = 1×5


     1     2     3     4     5


多写几句,基于傅里叶结果来重构信号,基本思想是通过傅里叶变换得到的主频幅值和相位得到正弦信号,并叠加重构。

构造一个信号,其中包含幅值为 0.7 的 50 Hz 正弦量和幅值为 1 的 120 Hz 正弦量。


ylabel('X(t)')
Y = fft(S);

Matlab实现快速傅里叶逆变换_拟合


grid on;

Matlab实现快速傅里叶逆变换_开发者_02

这种方法其实看起来效果不太好,理论上可以,难得在于得到相位信息,如果得到准确的相位信息,则结果如下图,完美拟合上。


Matlab实现快速傅里叶逆变换_傅里叶变换_03

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月20日 0

暂无评论

推荐阅读
NTGlKyq7MwNU