第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上面做一个验证,验证代码如下:
- Fs = 1024; % 采样率
- N = 1024; % 采样点数
- n = 0:N-1; % 采样序列
- t = 0:1/Fs:1-1/Fs; % 时间序列
- f = n * Fs / N; %真实的频率
-
- x = 1.5*sin(2*pi*20*t+pi/3) ; %原始信号
- y = fft(x, N); %对原始信号做FFT变换
- z = conj(y); %对转换结果取共轭
-
- subplot(2,1,2);
- z = fft(z, N); %再次做FFT
- k = conj(z); %对转换结果去共轭
- plot(f, real(k)); %绘制转换后的波形
- title('IFFT转换后的波形');
-
- subplot(2,1,1);
- plot(f, x); %绘制原始波形
- title('原始波形');
Matab的运行结果如下:
从上面的转换结果看,两个波形信号基本是一致的。
29.3 总结
本章节内容较少,有兴趣的可以尝试在原FFT库的基础上实现IFFT。