fft的计算原理_fft计算线性卷积步骤

fft的计算原理_fft计算线性卷积步骤实战数字信号处理之三从FFT得到幅值和相位信息2 手把手阐释FFT的意义—复数DFT、频率bin和FFTShift – CommLab Tech的文章 – 知乎 https://zhuanlan.zhihu.com/p/在上一篇中我们初步认识了FFT计算的方法,那

实战数字信号处理之三从FFT得到幅值和相位信息   2 手把手阐释FFT的意义—复数DFT、频率bin和FFTShift – CommLab Tech的文章 – 知乎 https://zhuanlan.zhihu.com/p/   在上一篇中我们初步认识了FFT计算的方法,那么我们将如何分析FFT结果呢?接下来我们将从结果中Get到某些点,并重建初始时域信号。   对于这里的讨论,让我们取一个任意的余弦函数,其形式为
x(t)=Acos(2π f_ct +\phi) ,并按以下步骤进行操作:用计算机表示信号x(t)(离散时间x[n])并绘制信号图(时域)。用FFT在频域中表示信号(X[k])。从FFT结果中提取幅值和相位信息。从频域样本中重构时域信号。   1.3.1 离散时间域表示   考虑一个振幅A=0.5,频率
f_c =10Hz,相位
\phi =π/6弧度(或30°)的余弦信号
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤   为了在计算机内存中表示连续时间信号x(t)(图1.12),我们需要以足够高的速率对信号进行采样(根据奈奎斯特采样定理)。我选择了一个过采样系数 32,因此采样频率为fs=32×fc,在2秒的时间里有波形记录的640个样本。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤图1.12 余弦信号的有限记录   1.3.2 用FFT在频域中表示信号   让我们用FFT函数在频域中表示信号。FFT函数计算N点复数DFT。变换的长度N应该覆盖感兴趣的信号,否则我们会在频域转换过程中丢失一些有价值的信息。然而,如果我们了解信号的性质,我们可以选择一个合理的长度。例如,我们感兴趣的余弦信号是周期性的,长度为640个样本(2秒的信号)。我们可以简单地使用一个较低的数N=256来计算FFT。在这种情况下,只有前256个时域样本将被进行FFT计算。然而我们不需要担心任何有价值的信息的损失,因为这256个样本将有足够多的周期来提取信号的频率。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤   在上面的代码中,fftshift只是用来获得一个漂亮的双边频谱,依次划出负的频率和正的频率。这种变换是非必要的。一缩放系数1/N被用来解释Matlab中的FFT实现和文章中的复数DFT定义之间的差异。   1.3.2.1 提取频率成分的幅值(幅值谱)   FFT函数计算复数DFT,因此得出一串复数,其形式为 Xre + jXim。幅值频谱的计算方法是:
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤   为了得到一个双边图,使用fftshift得到的有序频率轴,是根据采样频率计算出来的。在采样频率的基础上计算出有序的频率轴,并绘制出幅值谱(图1.13)。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤图1.13 从FFT结果提取出的幅值信息   1.3.2.2 提取频率成分的相位(相位谱)   提取正确的相位谱是一项棘手的工作。我将告诉你为什么会这样。频谱成分相位的计算方法是:
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤   上式看起来很天真,但在使用计算机计算反切时应该小心。Matlab中的atan函数似乎是实现的直接选择。然而,除非采取额外的预防措施,否则使用atan函数将证明是灾难性的。atan函数只计算两个象限的反正切,也就是说,它只返回[-π/2,π/2]区间的值。因此相位需要被正确解出来。我们可以简单地通过计算所有四个象限的反正切来解决这个问题。   使用atan2(Xim,Xre)函数计算所有四个象限的反正切来解决这个问题。让我们来计算并绘制相位信息,使用 atan2函数来计算和绘制相位信息,看看相位谱的情况如何。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤图1.14 从FFT结果中提取相位信息   图1.14中的相位谱是完全噪音化的,这是出乎意料的。相位谱有噪声是由于反切是根据FFT结果的虚部和实部之比计算出来的。即使是一个小的浮点舍入误差也会放大结果并错误地表现为有用的相位信息。为了理解,打印FFT结果的前几个样本,观察到它们不是绝对零点(它们是非常小的数字,阶数为10-16)。计算反正切将导致不正确的结果。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤   解决办法是定义一个容忍阈值,并忽略所有低于该阈值的相位值。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤   重新计算的相位谱绘制在图1.15中。该相位谱已经正确地记录了在频率f = 10Hz时有30°的相位移动。实值信号的相位谱是反对称的(
\phi = -30°在f = -10Hz)。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤图1.15 从FFT结果中提取相位信息-重新计算相位谱   1.3.3 从频域样本中重构时域信号   从频域样本中重构时域信号是非常直接的。重建的信号,如图1.16所示,保留了相同的初始相移和原始信号的频率。注意:重建信号的长度只有256个样本(≈0.8秒的时间),这是因为FFT的大小被认为是N = 256。由于该信号是周期性的,所以这不是一个问题。对于更复杂的信号,需要使用适当的FFT长度(最好使用一个大于信号长度的值)。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤图1.16 从频域采样值重建的时域信号   1.3.4 绘制频率响应图   基于本节的讨论,在此编写一个函数,以原始的 FFT输出来绘制一个信号的频率响应。这个函数将被用来绘制各种脉冲成型滤波器的频域响应。
fft的计算原理_fft计算线性卷积步骤
fft的计算原理_fft计算线性卷积步骤   现在你能Get到FFT的点了么?

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/52168.html

(0)
上一篇 2024年 9月 2日 下午3:23
下一篇 2024年 9月 2日 下午3:26

相关推荐

关注微信