微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 第29章 ST官方汇编FFT库实现IFFT

第29章 ST官方汇编FFT库实现IFFT

时间:10-02 整理:3721RD 点击:
第29章  ST官方汇编FFT库实现IFFT

    本章主要讲解利用ST官方汇编FFT库实现IFFT,但由于官方的FFT库输入和输出参数都是由信号的实部和虚部两个16位的数据组成一个32位数据进行操作,在利用FFT库进行IFFT计算的过程中很容易溢出,所以本章节仅提供Matlab的实现思路。

    29.1 利用FFT库实现IFFT的思路。

    29.2 Matlab实现验证

    29.3 总结。


29.1  利用FFT库实现IFFT的思路

    如果希望直接调用FFT程序计算IFFT,可以用下面的方法:



                              

    对上式两边同时去共轭,得:



    简单的说就是先对原始信号做FFT变换,然后对转换结果取共轭,再次带到FFT中计算,并将结果再次取共轭就可以实现IFFT。


29.2   Matlab实现验证

        根据上面小节的实现思路,我们在Matlab上面做一个验证,验证代码如下:

  1. Fs = 1024;              % 采样率
  2. N  = 1024;             % 采样点数
  3. n  = 0:N-1;           % 采样序列
  4. t  = 0:1/Fs:1-1/Fs;     % 时间序列
  5. f = n * Fs / N;          %真实的频率

  6. x = 1.5*sin(2*pi*20*t+pi/3) ;  %原始信号
  7. y = fft(x, N);    %对原始信号做FFT变换
  8. z = conj(y);     %对转换结果取共轭

  9. subplot(2,1,2);
  10. z = fft(z, N);     %再次做FFT
  11. k = conj(z);      %对转换结果去共轭
  12. plot(f,  real(k));  %绘制转换后的波形
  13. title('IFFT转换后的波形');

  14. subplot(2,1,1);
  15. plot(f,  x);       %绘制原始波形
  16. title('原始波形');

复制代码

Matab的运行结果如下:


从上面的转换结果看,两个波形信号基本是一致的。


29.3        总结
本章节内容较少,有兴趣的可以尝试在原FFT库的基础上实现IFFT。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top