FFT结果的物理意义
- 格式:docx
- 大小:170.25 KB
- 文档页数:9
离散傅里叶变换的物理意义傅里叶变换的集中形式及应用傅立叶变换是以时间为自变量的信号和以频率为自变量的频谱函数之间的一种变换关系。
由于自变量时间和频率可以是连续的,也可以是离散的,因此可以组成几种不同的变换对非周期的连续时间,连续频率-----傅里叶变换正变换X(jΩ)={-?,+?}x(t)*exp^-jΩt dt反变换x(t)=1/2π{-?,+?} X(JΩ)*e^jΩt dt练习一:时域函数:连续时间矩形脉冲频域:连续频率的非周期函数周期的连续性,离散频率----傅里叶级数周期为T的时间信号x(t) 的傅里叶级数展开的系数为X(jkΩ),构成的傅里叶变换对如下: 00正变换X(jkΩ)= {-T/2,+T/2}x(t)*exp^-jkΩt dt 000反变换X(t)= ?k={-?,+?} X(jkΩ)*exp^jkΩt 00式中X(jkΩ)是以角频率Ω未见各的离散函数形成频域的离散频谱,Ω与时间信号的周期000之间的关系为Ω=2ΠF=2π/T.傅里叶级数展开将连续时间周期函数分解为无穷多个角频率00为Ω整数倍的谐波,k为各次谐波序号。
0练习二时域:连续时间周期矩形脉冲频域:非周期的频域时域的周期性对应于频域的离散性非周期的离散时间、连续频率---序列的傅里叶变换非周期离散时间信号的傅里叶变换就是序列的傅里叶变换正变换X(e^jω)= ?n={-?,+?}x(n) e^jωn反变换x(n)=1/2π{-π,+π}X(e^jω) e^jωn dω式中,ω是数字频率如果序列x(n)是模拟信号x(t)经过抽样得到,抽样时间间隔为T,抽样频率为f=1/T,抽样角ssS频率为Ω=2π/T,由于数字频率ω与模拟角频率Ω之间的关系为ω=ΩT,因此抽样数字频sss率ω=ΩT=2π,则上面的变换对也可写成 sss 正变换X(e^jΩT)= ?n={-?,+?}x(nT) e^jnΩT反变换x(nT)=1/Ω{-Ω/2,+ Ω/2}X(e^jΩT) e^jnΩT dΩ sss练习三时域:对连续时间矩形脉冲按照T为周期进行采样 s频域:以Ω为周期严拓 s时域的离散造成频域的周期严拓,时域的非周期性对应于频域的连续性离散时间,离散频率----离散傅里叶变换由于数字信号处理是希望在计算机上实现各种运算和变换,其所涉及的变量和运算都是离散的,而前面三种傅里叶变换对中,时域或频域中至少有一个域是连续的,所以都不可以在计算机上进行运算和实现,因此对于数字信号处理,应该找到在时域和频域都是离散的傅里叶变换,即离散傅里叶变换前面的讨论已经得出结论:时域的周期性导致频域的离散型,时域的连续函数在频域形成非周期频谱;而时域的离散型造成频域的周期延拓,时域的非周期性对应于频域的连续函数形式。
FFT结果的物理意义最近正在做一个音频处理方面的项目,以前没有学过fft,只是知道有这么个东西,最近这一用才发现原来欠缺这么多,最基本的,连fft的输入和输出各自代表什么都不知道了,终于在网上查到这样的一点资料,得好好保存了,也欢迎大家分享。
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。
现在圈圈就根据实际经验来说说FFT结果的具体物理意义。
一个模拟信号,经过ADC采样之后,就变成了数字信号。
采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此罗嗦了。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次方。
假设采样频率为Fs,信号频率F,采样点数为N。
那么FFT之后结果就是一个为N点的复数。
每一个点就对应着一个频率点。
这个点的模值,就是该频率值下的幅度特性。
具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。
而第一个点就是直流分量,它的模值就是直流分量的N倍。
而每个点的相位呢,就是在该频率下的信号的相位。
第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。
例如某点n所表示的频率为:Fn=(n-1)*Fs/N。
如何决定要使用多少点来做FFTFFT结果的物理意义FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。
一个模拟信号,经过ADC采样之后,就变成了数字信号。
采样定理告诉我们,采样频率要大于信号频率的两倍。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次方。
假设采样频率为Fs,信号频率F,采样点数为N。
那么FFT之后结果就是一个为N点的复数。
每一个点就对应着一个频率点。
这个点的模值,就是该频率值下的幅度特性。
具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。
而第一个点就是直流分量,它的模值就是直流分量的N倍。
而每个点的相位呢,就是在该频率下的信号的相位。
第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。
例如某点n所表示的频率为:。
由上面的公式可以看出,Fn所能分辨到频率为Fs/N,如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。
1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。
现在我就根据实际经验来说说FFT结果的具体物理意义。
一个模拟信号,经过ADC采样之后,就变成了数字信号。
采样定理告诉我们,采样频率要大于信号最高频率的两倍,这些我就不在此罗嗦了。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N 个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次方(参见FFT原理)。
FFT 运算量:Nlog2N(2为对数的底)。
假设采样频率为Fs,信号频率F,采样点数为N。
那么FFT之后结果就是一个为N点的复数。
每一个点就对应着一个频率点。
这个点的模值,就是该频率值下的幅度特性。
具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。
而第一个点就是直流分量,它的模值就是直流分量的N倍。
而每个点的相位呢,就是在该频率下的信号的相位。
第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。
例如某点n所表示的频率为:Fn=(n-1)*Fs/N。
由上面的公式可以看出,Fn所能分辨到频率F0=Fs/N。
假设频率分辨率F0=Fs/N限定,采样频率Fs也给定,也已知信号最高频率Fh,那么由采样定理:Fs》=2Fh得到:N=Fs/F0>=2Fh/F0,即采样点必须满足这样一个关系式。
F F T变换的物理意义FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。
现在根据实际经验来说说FFT结果的具体物理意义。
一个模拟信号,经过A DC采样之后,就变成了数字信号。
采样定理告诉我们,采样频率要大于信号频率的两倍。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次方。
假设采样频率为Fs,信号频率F,采样点数为N。
那么FFT之后结果就是一个为N点的复数。
每一个点就对应着一个频率点。
这个点的模值,就是该频率值下的幅度特性。
具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A 的N/2倍。
而第一个点就是直流分量,它的模值就是直流分量的N倍。
而每个点的相位呢,就是在该频率下的信号的相位。
第一个点表示直流分量(即0H z),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。
例如某点n所表示的频率为:Fn=(n-1)*Fs/N。
由上面的公式可以看出,Fn所能分辨到频率为Fs/N,如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。
1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。
FFT变换结果的物理意义FFT(快速傅里叶变换)是一种非常重要的信号处理工具,常用于将一个信号从时域转换到频域。
通过FFT变换,我们可以获取到信号的频谱信息,获得不同频率分量的幅度和相位信息。
这些频谱信息有着重要的物理意义,对于许多领域的研究和应用都具有重要价值。
首先,FFT变换结果的物理意义可以通过频谱的幅度信息来解释。
频谱的幅度信息表示了信号在不同频率上的强度或能量分布。
通过FFT变换,我们可以判断信号中包含的不同频率成分的强弱关系。
在光学领域中,FFT变换对应于分析和合成光场。
光场可以看作是随时间变化的电场(或磁场)的分布。
通过对光场进行FFT变换,我们可以获得光场的频谱信息。
频谱的幅度信息在光学图像处理和光学设计中非常有用。
例如,在衍射成像中,可以利用FFT变换将光场从时域转换到频域,并通过分析频域中产生的衍射图样来还原物体的空间分布信息。
在音频信号处理中,FFT变换结果的物理意义同样重要。
对音频信号进行FFT变换,可以获取到音频信号的频谱信息,从而可以分析音频信号的频率分量。
例如,在音频压缩算法中,通过分析音频信号的频谱信息,可以去除掉一些较低能量的频率成分,从而实现对音频信号的压缩。
此外,FFT变换结果的物理意义还可以通过频谱的相位信息来解释。
频谱的相位信息表示了信号在不同频率上的相对延迟或相位差。
通过FFT变换,我们可以确定不同频率的信号成分之间的时间相位差。
在雷达和通信系统中,FFT变换对于分析信号的频率和相位信息至关重要。
通过对接收到的信号进行FFT变换,我们可以提取出信号中不同频率的成分,并且还可以分析不同频率成分之间的相位差异,从而实现信号的分析和解调。
这在雷达目标识别和通信信号解调中有着重要的应用。
总结起来,FFT变换结果的物理意义可以通过频谱的幅度和相位信息来解释。
频谱的幅度信息表示了信号在不同频率上的强度分布,而频谱的相位信息表示了不同频率成分之间的相对时间延迟或相位差异。
FFT结果的物理意义傅里叶变换的结果称为傅里叶谱(Fourier Spectrum)或频谱。
频谱展示了信号在不同频率上的强度分布情况,可以提供有关信号的许多重要信息,如频率成分、周期性、谐波分布等。
傅里叶谱的物理意义可以从以下几个方面来解释。
1.频率成分分析:信号经过傅里叶变换后,可以得到频谱,即信号在不同频率上的能量分布情况。
频谱图展示了信号中存在的基频和谐波成分的强度。
傅里叶变换可以帮助研究者分析信号中存在的频率成分,如声音中的音高、光信号中的颜色成分等。
2.能量分布分析:傅里叶谱可以展示信号在不同频率上的能量分布情况,通过分析信号的能量分布,可以了解信号在不同频率区间上的重要程度。
例如,在音频信号处理中,低频区域通常表示基频,高频区域表示谐波成分。
通过分析傅里叶谱,可以确定信号的能量主要分布在哪些频率上,从而对信号进行分类、滤波或降噪处理。
3.周期性分析:通过傅里叶变换,可以将周期性信号转换为频域上的离散频率线谱图。
线谱图中每个频率分量的强度代表了对应频率的贡献。
通过频谱分析,可以确定信号的频率和周期,并进一步分析信号的周期性特征。
4.滤波和降噪处理:傅里叶变换在滤波和降噪处理中也有重要作用。
通过观察频谱图,可以确定信号中存在的噪声成分,并在频域上删除或削弱这些成分。
滤波器可以根据信号在频谱中的分布选择,如低通滤波器、高通滤波器等。
利用傅里叶变换进行滤波和降噪处理,可以有效去除信号中的干扰和噪声。
5.编码和解码:傅里叶变换也用于信号的编码和解码。
通过将信号转换到频域上,可以用频谱图中的频率和振幅作为编码信息。
在信号传输和存储过程中,对信号进行压缩和解压缩时,常常利用傅里叶变换来进行频率编码和解码,以减小数据量并提高传输效率。
总之,傅里叶变换的物理意义主要体现在分析信号的频率成分、能量分布情况、周期性特征、滤波降噪处理和信号编码解码等方面。
通过傅里叶变换,我们可以更全面地理解信号的性质和特征,为信号处理和通信领域的研究和应用提供有力的数学工具。
傅里叶定律的意义和适用条件傅里叶定律是描述周期性信号的基本定律之一,它在物理学、工程学、数学等领域中有着广泛的应用。
傅里叶定律的意义在于它能够将一个复杂的周期性信号分解成一系列简单的正弦函数的叠加,从而帮助我们理解和分析信号的频谱特征。
傅里叶定律的适用条件则是信号必须是周期性的,且满足一定的可积性条件。
傅里叶定律的意义在于它为我们研究和理解周期性信号提供了一种有效的工具。
周期性信号是指信号在一定时间内以固定的模式重复出现的现象,如正弦波、方波、三角波等。
傅里叶定律告诉我们,任何一个周期性信号都可以看作是一系列不同频率和幅度的正弦函数的叠加。
这些正弦函数被称为频谱成分,它们的频率和幅度决定了信号的特性。
通过分解信号的频谱,我们可以更加清晰地观察信号的频率分布,从而揭示信号的内在规律。
傅里叶定律的适用条件是信号必须是周期性的,并且满足一定的可积性条件。
周期性是指信号在一定时间内以固定的模式重复出现,这样才能够将信号看作是一系列正弦函数的叠加。
可积性是指信号在一个周期内的能量有限,即信号的能量在一个周期内可以积分得到一个有限的值。
这个条件保证了信号的能量在频谱分析中是有限的,从而方便我们对信号的频谱进行分析和计算。
傅里叶定律的应用非常广泛。
在物理学中,傅里叶定律被应用于电磁波的传播和光学现象的解释,如干涉、衍射等。
在工程学中,傅里叶定律被应用于信号处理、通信系统、图像处理、音频处理等领域。
例如,在信号处理中,傅里叶变换可以将时域的信号转换为频域的信号,从而实现信号的滤波、降噪、压缩等操作。
在图像处理中,傅里叶变换可以将图像转换为频谱图,通过滤波、增强等操作改变图像的频谱特性。
在音频处理中,傅里叶变换可以将音频信号转换为频谱,从而实现音频的压缩、均衡、特效等操作。
然而,傅里叶定律也有一些限制。
首先,傅里叶变换只适用于周期性信号的频谱分析,对于非周期性信号的频谱分析并不适用。
其次,傅里叶变换对信号的时域和频域是完全对称的,这在某些情况下可能导致频谱分析的结果不够准确。
FFT结果的物理意义傅里叶变换(Fast Fourier Transform,FFT)是一种将时域信号转换为频域信号的数学工具。
它在信号处理、图像处理、通信系统、噪声分析等领域中广泛应用。
FFT算法通过将信号分解为一系列正弦和余弦函数的和,可以将信号的频域特性可视化,以及从频域中提取有用的信息。
1.频谱分析:FFT结果表示了原始信号在频域中的频率成分。
通过FFT,可以分析信号中不同频率的成分,并确定它们的强度和相位。
频谱分析可以用于识别信号中的周期性分量,例如音频中的音调和乐器音色。
此外,频谱分析还可以在通信系统中用于识别不同信号的频率,以及在噪声分析中用于检测噪声的频谱分布。
2.滤波和降噪:FFT在滤波和降噪应用中具有重要意义。
通过观察信号的频谱分布,可以选择性的滤除或降低一些频率上的成分。
例如,可以通过滤波器去除噪声中的一些频率,使得信号更加清晰。
FFT还可以用于去除周期性干扰或频率分量较低的信号成分,以提高信号质量。
在通信系统中,FFT可以用于频带分配和多路复用。
3.时间-频率分析:FFT还可以用于揭示信号在时间和频率上的变化关系,实现时间-频率分析。
通过在一系列时刻上进行FFT分析,可以获得信号随时间的频率分布。
时间-频率分析对于研究与时间和频率相关的现象具有重要意义,例如音乐中的音符变化、语音中的发音特性、心电图中的心脏节律等。
4.相位谱分析:在FFT结果中,每个频率分量都有一个与之相关的相位。
相位谱分析可以用于检测信号中的相位差异和相位演化。
它在声学研究、图像处理、混频信号恢复等领域中广泛应用。
相位谱分析可以揭示信号的周期性特征、信号的相位对齐、频率混叠等问题。
总之,FFT结果的物理意义是通过将信号从时域转换为频域,使得我们能够更加直观地分析信号的频率分量、频率分布、频率的变化以及与时间的关系等信息。
这些信息对于信号处理、图像处理、通信系统、噪声分析等领域中的应用非常重要。
MATLAB 中FFT函数的意义FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
模拟信号经过ADC采样之后变成数字信号,可对此数字信号做FFT变换。
N 个采样点经过FFT之后就可以得到N个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次幂。
假设采样频率为F s,信号频率为F,采样点数为N。
则FFT之后结果为N点复数,其中每一个点对应着一个频率点,该点复数的模值为原始信号在该频率值下的幅度特性。
具体为:假设原始信号在某频率点的幅值为A,则该频点对应的FFT点复数的模值为A的N/2倍。
而FFT第一点为原始信号的直流分量,其模值为原始信号模值的N倍。
对于相位,FFT复数的相位即为原始信号在该频率点处的相位。
FFT后的N点复数,第一点表示直流分量(0Hz),而最后一点的下一点(实际不存在,假设为第N+1点)表示的频率为采样频率(F s),这中间被N-1个点平均分为N等份,每点频率依次增加。
例如,第k点所表示的频率为:F K=(K-1)F s/N。
所以FFT所能达到的频率分辨率为F s/N。
FFT结果以N/2(换算为频率即为乃奎斯特频率,F s/2)对称。
因此我们只需要前半部分的结果,即在乃奎斯特频率内的结果。
示例1:假设FFT第k点用复数表示为:a+ib,则该数的模(或绝对值)为A k=(a2+b2)0.5,相位为P k=arctan(b/a),对应频率为F K=(K-1)F s/N。
所以该点对应的时域信号分量为:。
示例2:假设用1000Hz的采样率采信号:,采样点数为1024。
MATLAB程序如下:N=1024; //采样点数为1024Fs=1000; //采样频率为1000Hzt=[0:1/Fs:(N-1)/Fs]; //采样时刻s=2+3*cos(2*pi*200*t+60*pi/180)+4*cos(2*pi*300*t+120*pi/180); //对信号采样Y=fft(s); //做FFT运算y=abs(Y); //对FFT结果求模i=1:N/2; //x=(i-1)*F/N; //将时间点换算为相应频率yy(i)=y(i); //取前N/2点的FFT模值yy=yy/(N/2); //做幅值变换,变换至时域信号幅值yy(1)==yy(1)/2;//对直流信号做幅值变换 plot(x,yy)//绘制图形 05010015020025030035040045050000.511.522.533.54上图为FFT 的幅频特性图。
FFT结果的物理意义2[转]2010-06-30 21:41FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。
现在就根据实际经验来说说FFT结果的具体物理意义。
一个模拟信号,经过ADC采样之后,就变成了数字信号。
采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此啰嗦了。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
为了方便进行FFT 运算,通常N取2的整数次方。
假设采样频率为Fs,信号频率F,采样点数为N。
那么FFT之后结果就是一个为N点的复数。
每一个点就对应着一个频率点。
这个点的模值,就是该频率值下的幅度特性。
具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。
而第一个点就是直流分量,它的模值就是直流分量的N倍。
而每个点的相位呢,就是在该频率下的信号的相位。
第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。
例如某点n所表示的频率为:Fn=(n-1)*Fs/N。
由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。
1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。
如果要提高频率分辨力,则必须增加采样点数,也即采样时间。
频率分辨率和采样时间是倒数关系。
假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是An=根号a*a+b*b,相位就是Pn=atan2(b,a)。
根据以上的结果,就可以计算出n点(n≠1,且n<=N/2)对应的信号的表达式为:An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn)。
对于n=1点的信号,是直流分量,幅度即为A1/N。
由于FFT结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果。
下面以一个实际的信号来做说明。
假设我们有一个信号,它含有2V的直流分量,频率为50Hz、相位为-30度、幅度为3V的交流信号,以及一个频率为75Hz、相位为90度、幅度为1.5V的交流信号。
用数学表达式就是如下:S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)。
式中cos参数为弧度,所以-30度和90度要分别换算成弧度。
我们以256Hz的采样率对这个信号进行采样,总共采样256点。
按照我们上面的分析,Fn=(n-1)*Fs/N,我们可以知道,每两个点之间的间距就是1Hz,第n个点的频率就是n-1。
我们的信号有3个频率:0Hz、50Hz、75Hz,应该分别在第1个点、第50个点、第76个点上出现峰值,其它各点应该接近0。
实际情况如何呢?我们来看看FFT的结果的模值如图所示。
从图中我们可以看到,在第1点、第51点、和第76点附近有比较大的值。
我们分别将这三个点附近的数据拿上来细看: 1点: 512+0i2点: -2.6195E-14 - 1.4162E-13i3点: -2.8586E-14 - 1.1898E-13i50点:-6.2076E-13 - 2.1713E-12i51点:332.55 - 192i52点:-1.6707E-12 - 1.5241E-12i75点:-2.2199E-13 -1.0076E-12i76点:3.4315E-12 + 192i77点:-3.0263E-14 +7.5609E-13i很明显,1点、51点、76点的值都比较大,它附近的点值都很小,可以认为是0,即在那些频率点上的信号幅度为0。
接着,我们来计算各点的幅度值。
分别计算这三个点的模值,结果如下:1点: 51251点:38476点:192按照公式,可以计算出直流分量为:512/N=512/256=2;50Hz信号的幅度为:384/(N/2)=384/(256/2)=3;75Hz信号的幅度为192/(N/2)=192/(256/2)=1.5。
可见,从频谱分析出来的幅度是正确的。
然后再来计算相位信息。
直流信号没有相位可言,不用管它。
先计算50Hz信号的相位,atan2(-192, 332.55)=-0.5236,结果是弧度,换算为角度就是180*(-0.5236)/pi=-30.0001。
再计算75Hz信号的相位,atan2(192, 3.4315E-12)=1.5708弧度,换算成角度就是180*1.5708/pi=90.0002。
可见,相位也是对的。
根据FFT结果以及上面的分析计算,我们就可以写出信号的表达式了,它就是我们开始提供的信号。
总结:假设采样频率为Fs,采样点数为N,做FFT之后,某一点n(n从1开始)表示的频率为:Fn=(n-1)*Fs/N;该点的模值除以N/2就是对应该频率下的信号的幅度(对于直流信号是除以N);该点的相位即是对应该频率下的信号的相位。
相位的计算可用函数atan2(b,a)计算。
atan2(b,a)是求坐标为(a,b)点的角度值,范围从-pi到pi。
要精确到xHz,则需要采样长度为1/x秒的信号,并做FFT。
要提高频率分辨率,就需要增加采样点数,这在一些实际的应用中是不现实的,需要在较短的时间内完成分析。
解决这个问题的方法有频率细分法,比较简单的方法是采样比较短时间的信号,然后在后面补充一定数量的0,使其长度达到需要的点数,再做FFT,这在一定程度上能够提高频率分辨力。
具体的频率细分法可参考相关文献。
[附录:本测试数据使用的matlab程序]clc;clear;Adc=2; %直流分量幅度A1=3; %频率F1信号的幅度A2=1.5; %频率F2信号的幅度F1=50; %信号1频率(Hz)F2=75; %信号2频率(Hz)Fs=256; %采样频率(Hz)P1=-30; %信号1相位(度)P2=90; %信号相位(度)N=256; %采样点数t=[0:1/Fs:N/Fs]; %采样时刻%信号S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);%显示原始信号subplot(411);plot(S);title('原始信号');Y = fft(S,N); %做FFT变换Ayy = (abs(Y)); %取模subplot(412);stem(Ayy(1:N)); %显示原始的FFT模值结果title('FFT 模值');Ayy=Ayy/(N/2); %换算成实际的幅度Ayy(1)=Ayy(1)/2;F=([1:N]-1)*Fs/N; %换算成实际的频率值,Fn=(n-1)*Fs/Nsubplot(413);stem(F(1:N/2),Ayy(1:N/2)); %显示换算后的FFT模值结果title('幅度-频率曲线图');Pyy=[1:N/2];for i=1:N/2Pyy(i)=angle(Y(i)); %计算相位Pyy(i)=Pyy(i)*180/pi; %换算为角度end;subplot(414);stem(F(1:N/2),Pyy(1:N/2)); %显示相位图title('相位-频率曲线图');1.频率分辨率的2种解释解释一:频率分辨率可以理解为在使用DFT时,在频率轴上的所能得到的最小频率间隔f0=fs/N=1/NTs=1/T,其中N为采样点数,fs为采样频率,Ts为采样间隔。
所以NTs就是采样前模拟信号的时间长度T,所以信号长度越长,频率分辨率越好。
是不是采样点数越多,频率分辨力提高了呢?其实不是的,因为一段数据拿来就确定了时间T,注意:f0=1/T,而T=NTs,增加N必然减小Ts ,因此,增加N时f0是不变的。
只有增加点数的同时导致增加了数据长度T才能使分辨率越好。
还有容易搞混的一点,我们在做DFT时,常常在有效数据后面补零达到对频谱做某种改善的目的,我们常常认为这是增加了N,从而使频率分辨率变好了,其实不是这样的,补零并没有增加有效数据的长度,仍然为T。
但是补零其实有其他好处:1.使数据N为2的整次幂,便于使用FFT。
2.补零后,其实是对DFT结果做了插值,克服“栅栏”效应,使谱外观平滑化;我把“栅栏”效应形象理解为,就像站在栅栏旁边透过栅栏看外面风景,肯定有被栅栏挡住比较多风景,此时就可能漏掉较大频域分量,但是补零以后,相当于你站远了,改变了栅栏密度,风景就看的越来越清楚了。
3.由于对时域数据的截短必然造成频谱泄露,因此在频谱中可能出现难以辨认的谱峰,补零在一定程度上能消除这种现象。
那么选择DFT时N参数要注意:1.由采样定理:fs>=2fh,2.频率分辨率:f0=fs/N,所以一般情况给定了fh 和f0时也就限制了N范围:N>=fs/f0。
解释二:频率分辨率也可以理解为某一个算法(比如功率谱估计方法)将原信号中的两个靠得很近的谱峰依然能保持分开的能力。
这是用来比较和检验不同算法性能好坏的指标。
在信号系统中我们知道,宽度为N的矩形脉冲,它的频域图形为sinc函数,两个一阶零点之间的宽度为4π/N。
由于时域信号的截短相当于时域信号乘了一个矩形窗函数,那么该信号的频域就等同卷积了一个sinc函数,也就是频域受到sinc函数的调制了,根据卷积的性质,因此两个信号圆周频率之差W0必须大于4π/N。
从这里可以知道,如果增加数据点数N,即增加数据长度,也可以使频率分辨率变好,这一点与第一种解释是一样的。
同时,考虑到窗函数截短数据的影响存在,当然窗函数的特性也要考虑,在频率做卷积,如果窗函数的频谱是个冲击函数最好了,那不就是相当于没截断吗?可是那不可能的,我们考虑窗函数主要是以下几点:1.主瓣宽度B最小(相当于矩形窗时的4π/N,频域两个过零点间的宽度)。
2.最大边瓣峰值A最小(这样旁瓣泄露小,一些高频分量损失少了)。