数字信号处理大实验2.1(基础) 快速傅里叶变换与FFT的时域频域对称性质
目录
一、快速傅里叶变换(FFT)的实现
1.1 实验目的
1.2 实验原理
1.3 实验内容
1.4 实验代码
1.5 实验结果
1.5.1 DFT幅频/相频曲线(N=64)、频谱泄露
1.5.2 逆(快速)离散傅里叶变换
二、时域-频域的圆周(时反)共轭与圆周共轭(反)对称关系
2.1 实验目的
2.2 实验原理
2.3 实验内容
2.4 实验代码
2.5 实验结果
进阶阅读
一、快速傅里叶变换(FFT)的实现
1.1 实验目的
- 加深对FFT逐层基本机制的理解;
- 掌握频谱泄露的原因,并为应用实验的频率计算寻找方法建立基础。
1.2 实验原理
FFT的每一层都可以理解成a个最小(交叉元个数为基数M)蝶式交叉计算的组合,而后通过迭代的方式实现FFT——根据时域基数间隔插值和频域基数间隔插值的不同,分为“蝴蝶增长式”和“蝴蝶衰减式”;
本实验仅完成单层/单个蝴蝶增长式单元的FFT,也就是时域插值法。
Figure 1 蝴蝶增长式FFT(华南理工大学电信学院宁更新老师课件 Chapter5-V3 P63)
Figure 2 蝴蝶衰减式FFT,相当于蝴蝶增长式FFT的转置逆网络,笔者认为层级迭代计算需要进行到底,第一层和中间层的变换都是DFT的逆过程没有实际含义(华南理工大学电信学院宁更新老师课件 Chapter5-V3 P71)
蝴蝶增长式FFT:在每一个最小蝶式计算中,通过分解原实数(复数)序列为基数M(2M)个实数序列-进行M次(N/M)点的DFT运算-通过k(i-1)阶旋转向量Θk(i-1)= WNk(i-1)和t(i-1)阶平移向量Ψt(i-1)=(e-j2π/M)**t(i-1)
实现DFT的快速计算。理论推导见下图。
Figure 3 基数为M的N点FFT最小单元计算
Figure 4 基数为M的N点FFT最小单元(结论)
一般情况下,基数M=2;MATLAB内置的FFT和IFFT的基数应该都只能是2,笔者的代码也是以2作为基数。
1.3 实验内容
1.4 实验代码
function [X_k]=f_dft_2_fft(x,draw)(单个单元FFT(数组级操作))
function [X_k]=s_dft_2_fft(x) (单个单元FFT(元素级操作))
IDFT/DFT(手动编程,MATLAB内置函数为fft/ifft)
主函数
1.5 实验结果
1.5.1 DFT幅频/相频曲线(N=64)、频谱泄露
Figure 5 截断长度L=64,1倍周期截取,相位规范化
Figure 6 截断长度L=192, 1倍周期截取,后128位补0,相位规范化(频域与采样函数卷积积分再离散化),可以用大点数DFT逼近DTFT
Figure 7 截断长度L=192,3倍周期N截取,相位规范化,可以求得3倍精度的谱线
Figure 8 截断长度L=96,1.5倍周期N截取,相位规范化(频谱泄露,没有作用,需要杜绝)
在Figure 8中,由于截断或者采样序列长度和实际基本周期的非整数倍关系,造成了频谱泄露现象,这就引出了频偏的概念:频偏——信号真实频率和采样序列幅度频谱【小频率范围内】谱峰频率的频率偏差,和通信工程里“信号频率相对于预定频率的偏移”的定义不同,实际上第二种定义里的信号频率也需要通过硬件采样测算,所以其实频偏有两种理解,测算偏移(较小误差)和传输偏移(传输干扰)。
信号频率估计是工程应用中非常常见的话题,学术大牛和算法工程师们研究出一系列方法在有白噪声干扰、存在频谱泄露的情况下,通过插值、插值平均、求和平均等策略估算频偏,以较精准稳定地测算出被采样信号的真实频率。笔者也进行了仿真实验的代码模拟和初步原理解读,跳转链接在文末(大实验2.2)。
Figure 9 多层对数级FFT(MATLAB内置)-单个单元FFT(数组级操作)-单个单元FFT(元素级操作)-DFT 算法的运行时间对比,1000次64点DFT运算,时域信号和第一个小题中相同,如前所示(单位:秒)
1.5.2 逆(快速)离散傅里叶变换
注意IFFT和IDFT的区别,IFFT通过FFT和两次共轭操作实现性能优化。
Figure 10 利用共轭性质和FFT算法实现IFFT(华南理工大学电信学院宁更新老师课件Chapter5-V3 P76)
Figure 11 实验结果1.5.2 64点IFFT
二、时域-频域的圆周(时反)共轭与圆周共轭(反)对称关系
2.1 实验目的
1、加深对时域-频域的圆周(时反)共轭与圆周共轭(反)对称关系的理解。
2.2 实验原理
Figure 12 时域-频域的圆周(时反)共轭与圆周共轭(反)对称-6对关系
总共6对关系:时域信号的(圆周)共轭、圆周时反共轭、圆周共轭对称、圆周共轭反对称、实部、j*虚部与频域谱线的圆周时反共轭、(圆周)共轭、实部、j*虚部、共轭、圆周共轭对称、圆周共轭反对称。
2.3 实验内容
1.自己设计一个N点复序列,编程验证表5.1中的对称性质。
2.4 实验代码
function []=symmetry(cx)
主函数
2.5 实验结果
本实验没有使用IFFT,仅在时域操作结合FFT或者在频域操作。
蓝色或青色代表时域操作+FFT,红色或品红色代表频域的操作(没有经过FFT变换)。
Figure 13 -π和﹢π的相位是等效的
进阶阅读
1、数字信号处理大实验2.2(工程应用模拟) 利用FFT估计信号的频率-CSDN博客