基于加窗FFT的频谱分析精编版
- 格式:docx
- 大小:238.40 KB
- 文档页数:6
用FFT对信号做频谱分析傅里叶变换(Fourier Transform)是一种将信号从时域转换到频域的数学方法,可用于信号的频谱分析。
通过傅里叶变换,我们可以将时域上的信号转换为频域上的频谱,帮助我们理解信号的频率组成以及各个频率分量的强弱。
频谱分析是对信号进行频率分析的过程,是了解信号在频域上的特性和频率成分的一种方法。
通过频谱分析,我们可以获得信号的频率分布情况,帮助我们了解信号的频率成分、频率峰值等信息。
在进行频谱分析时,常用的方法之一是采用快速傅里叶变换(FFT)。
FFT是一种高效的算法,能够快速计算离散傅里叶变换(DiscreteFourier Transform)。
下面将详细介绍FFT在频谱分析中的应用。
首先,我们需要将待分析的信号转换为数字信号,并对其进行采样,得到一个离散的信号序列。
然后,使用FFT算法对这个离散信号序列进行傅里叶变换,得到信号的频谱。
在进行FFT之前,需要进行一些预处理工作。
首先,需要将信号进行加窗处理,以减少泄露效应。
加窗可以选择矩形窗、汉宁窗、汉明窗等,不同的窗函数对应不同的性能和应用场景。
其次,需要对信号进行零填充,即在信号序列末尾添加零值,以增加频谱的分辨率。
零填充可以提高频谱的平滑度,使得频域上的分辨率更高。
接下来,我们使用FFT算法对经过加窗和零填充的信号序列进行傅里叶变换。
FFT算法将离散信号变换为离散频谱,得到信号的频率成分和强度。
FFT结果通常呈现为频率和振幅的二维图像,横轴表示频率,纵轴表示振幅。
通过观察频谱图像,我们可以得到一些关于信号的重要信息。
首先,我们可以观察到信号的频率成分,即信号在不同频率上的分布情况。
在频谱图像中,高峰表示信号在该频率上强度较高,低峰表示信号在该频率上强度较低。
其次,我们可以通过峰值的位置和强度来分析信号的主要频率和频率成分。
频谱图像上的峰值位置对应着信号的主要频率,峰值的高度对应着信号在该频率上的强度。
最后,我们还可以通过观察频谱图像的整体分布情况,来获取信号的频率范围和频率分布的特点。
窗函数及频谱分析实验目的:1. 掌握各类窗函数的时域和频率特性;2. 掌握合理运用窗函数分析信号频谱的方法;3. 掌握利用DFT 分析连续信号频谱的方法;4. 掌握谱分析中参数的选取方法。
实验原理:一、窗函数分析在确定信号谱分析中,截短无穷长的序列会造成频率泄漏,合理选取窗函数的类型,可以改善泄露现象。
1. 常用窗函数矩形窗 w=boxcar(N)汉明窗 w=hamming(N)汉宁窗 w=hanning(N)布莱克曼窗 w=blackman(N)凯泽窗 w=Kaiser(N,beta)例:N=50;w=boxcar(N);W=fft(w,256);subplot(2,1,1);stem([0:N-1],w);subplot(2,1,2);plot([-128:127],abs(fftshift(W)))MATLAB 中提供了fft 函数,FFT 是DFT 的快速算法。
X=fft(x,n):补零或截短的n 点傅立叶变换;fftshift(x)将fft 计算输出的零频移到输出的中心。
例:N=50;w=hamming(N);W=fft(w,256);subplot(2,1,1);stem([0:N-1],w);subplot(2,1,2);plot([-128:127],abs(fftshift(W)))例:已知一连续信号为12()cos(2)cos(2)x t f t f t ππ=+其中f 1=100Hz ,f 2=120Hz ,若以抽样频率fsam=600Hz 对该信号进行抽样,试用DFT 近似分析其频谱:利用不同宽度N 的矩形窗截短该序列,N 分别取15,40,80观察不同长度的窗对谱分析结果的影响;利用汉明窗重做(1)。
用矩形窗分析:N=input('请输入N 的值:');L=512;f1=100;f2=120;fs=600;ws=2*pi*fs;t=(0:N-1)*(1/fs);x=cos(2*pi*f1*t)+cos(2*pi*f2*t);subplot(211);stem(t,x);W=fft(x,L);f=((-L/2:L/2-1)*(2*pi/L)*fs)/(2*pi);% f=((-L/2:L/2-1)*(1/L)*fs);subplot(212);plot(f,abs(fftshift(W)))用汉明窗重做上述谱分析:N=input('请输入N 的值:');L=512;f1=100;f2=120;fs=600;ws=2*pi*fs;t=(0:N-1)*(1/fs);x=cos(2*pi*f1*t)+cos(2*pi*f2*t);wh=hamming(N)';x=x.*wh;subplot(211);stem(t,x);W=fft(x,L);f=((-L/2:L/2-1)*(2*pi/L)*fs)/(2*pi);subplot(212);plot(f,abs(fftshift(W)))例:已知连续信号为12()cos(2)0.15cos(2)x t f t f t ππ=+,其中f 1=100Hz ,f 2=150Hz ,若以抽样频率fsam=600Hz 对该信号进行抽样,利用不同宽度N 的矩形窗截短该序列,N 分别取15,40,80观察不同长度的窗对谱分析结果的影响;用汉明窗重做上述谱分析。
基于加窗FFT变换的频谱分析(长沙理工大学城南学院电气与信息工程系电气工程及其自动化)摘要:随着计算机和微电子技术的飞速发展,基于数字信号处理的频谱分析已经应用到各个领域并且发挥着重要作用。
信号处理方法是当前机械设备故障诊断中重要的技术基础之一,分析结果的精确程度是诊断成功与否的关键因素。
研究频谱分析是当前主要的发展方向之一。
数字信号处理基本上从两个方面来解决信号的处理问题:一个是时域方法,即数字滤波;另一个是频域方法,即频谱分析。
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域,这样有助于对信号进行分析。
关键词:频谱分析;窗函数;FFT1.绪论1.1.引言由于DFT的运算量太大,即使是采用计算机也很难对问题进行实时处理,所以经过很多学者的不懈努力,便出现了通用的快速傅里叶变换(FFT)。
快速傅里叶变换(Fast Fourier Transform,FFT)并不是与离散傅里叶变换不同的另一种变换,而是为了减少DFT计算次数的一种快速有效的算法。
对FFT算法及其实现方式的研究是很有意义的。
目前,FFT己广泛应用在频谱分析、匹配滤波、数字通信、图像处理、语音识别、雷达处理、遥感遥测、地质勘探和无线保密通讯等众多领域。
在不同应用场合,需要不同性能要求的FFT处理器。
在很多应用领域都要求FFT处理器具有高速度、高精度、大容量和实时处理的性能。
因此,如何更快速、更灵活地实现FFT变得越来越重要。
1.2.本文主要研究内容本文的目的主要是分析矩形窗、汉宁窗、哈明窗、布莱克曼窗函数,对信号矩形频谱分析,分析各窗函数对频谱分析的影响。
用MATLAB编出程序,把各种函数的图像进行对比,然后在频率不变的情况下改变截断时间,以及在截断时间不变的情况下,改变频率,观察信号的变化。
2.用矩形窗+FFT对信号矩形频谱分析2.1.MATLAB程序Fs=1000;T=1/Fs;Tp=0.06;N=Tp*Fs;w=100*pi;n=1:N;Xn=x(t)=12*sin(w*n*T+10*pi/180)+6*sin(3*w*n*T+20*pi/180)+2.5*sin(5*w*n*T+40*pi/180)+2*sin(7*w*n*T+60*pi/180)+sin(9*w*n*T+80*pi/180)+0.5*sin(11*w*n*T+90*pi/180)Xn=Xn/max(abs(Xn)),wn=boxcar(N);Xn1=Xn.*wn';Xk=fft(Xn,4096);fk=Fs*(0:4095);plot(fk,abs(Xk)/max(abs(Xk)));xlabel('Hz');ylabel('幅值');2.2.分析与结论2.2.1.在采样频率一定时,增加截断时间长度,分析截断时间长度对频谱分析的影响矩型窗,T=0.06 Fs=1000矩型窗,T=0.12 Fs=1000矩型窗,T=0.18 Fs=1000矩型窗,T=0.24 Fs=10002.2.2.在截断时间长度一定时,修改采样频率,分析采样频率对频谱分析的影响;矩型窗,T=0.06 Fs=1200矩型窗,T=0.06 Fs=1400矩型窗,T=0.06 Fs=1600矩型窗,T=0.06 Fs=1000矩型窗,T=0.06 Fs=800矩形窗的主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负频现象。
用FFT对信号作频谱分析快速傅立叶变换(FFT)是一种在信号处理中常用于频谱分析的方法。
它是傅立叶变换的一种快速算法,通过将信号从时间域转换到频域,可以提取信号的频率信息。
FFT算法的原理是将信号分解为不同频率的正弦波成分,并计算每个频率成分的幅度和相位。
具体而言,FFT将信号划分为一系列时间窗口,每个窗口内的信号被认为是一个周期性信号,然后对每个窗口内的信号进行傅立叶变换。
使用FFT进行频谱分析可以得到信号的频率分布情况。
频谱可以显示信号中各个频率成分的强度。
通过分析频谱可以识别信号中的主要频率成分,判断信号中是否存在特定频率的干扰或噪声。
常见的应用包括音频信号处理、图像处理、通信系统中的滤波和解调等。
使用FFT进行频谱分析的步骤如下:1.首先,获取待分析的信号,并确保信号是离散的,即采样频率与信号中的最高频率成分满足奈奎斯特采样定理。
2.对信号进行预处理,包括去除直流分量和任何不需要的干扰信号。
3.对信号进行分段,分段后的每个窗口长度在FFT算法中通常为2的幂次方。
常见的窗口函数包括矩形窗、汉明窗等。
4.对每个窗口内的信号应用FFT算法,将信号从时间域转换到频域,并计算每个频率成分的幅度和相位。
5.对所有窗口得到的频谱进行平均处理,以得到最终的频谱分布。
在使用FFT进行频谱分析时需要注意的问题有:1.噪声的影响:FFT对噪声敏感,噪声会引入幅度偏差和频率漂移。
可以通过加窗等方法来减小噪声的影响。
2.分辨率的选择:分辨率是指在频谱中能够分辨的最小频率间隔。
分辨率与信号长度和采样频率有关,需要根据需求进行选择。
3.漏泄效应:当信号中的频率不是FFT长度的整数倍时,会出现漏泄效应。
可以通过零填充等方法来减小漏泄效应。
4.能量泄露:FFT将信号限定在一个周期内进行计算,如果信号过长,则可能导致部分频率成分的能量泄露到其他频率上。
总之,FFT作为信号处理中常用的频谱分析方法,能够提取信号中的频率信息,广泛应用于多个领域。
用FFT做频谱分析FFT(Fast Fourier Transform)是一种广泛应用于信号处理和频谱分析的算法,它能够将时域的信号转换为频域的信号,从而得到信号的频谱特征。
首先,我们来介绍一下频谱分析的概念。
频谱是指一个信号在不同频率上的分量强度。
在频谱分析中,我们将时域的连续信号转换为频域的离散信号,通过分析离散信号的频域特征,可以得到信号的频谱信息。
频谱分析广泛应用于音频处理、图像处理、通信等领域。
FFT算法是计算频谱的一种高效算法。
它利用了信号的周期性质,通过将时域信号分解为多个频率的正弦波或余弦波的叠加,然后利用频率域上的线性特性进行运算,从而得到信号的频域表示。
FFT的算法思想是将一个长度为N的时域信号转换为一个长度为N的复数序列,其中每个复数表示了信号在不同频率上的分量强度。
该算法的核心是蝶形运算,通过多次迭代实现了快速计算,并且具有较高的计算效率。
在进行FFT频谱分析前,我们需要对输入信号进行预处理。
首先,我们需要对时域信号进行采样,以便将连续信号转换为离散信号。
然后,我们需要对采样信号进行窗函数处理,以减少信号的频谱泄漏现象。
常用的窗函数有矩形窗、汉宁窗、黑曼窗等。
窗函数的选择会直接影响频谱分析的精度和分辨率。
接着,我们使用FFT算法对处理过的信号进行频域分析。
FFT算法通过将信号分解为一系列频率分量的叠加来计算信号的频谱。
通过FFT计算,我们可以得到信号在不同频率上的幅度和相位信息。
幅度信息表示了信号在不同频率上的强度大小,相位信息表示了信号在不同频率上的相对延迟。
最后,我们可以通过绘制频谱图来展示信号的频谱特征。
频谱图以频率为横轴,幅度为纵轴,可以直观地显示信号在不同频率上的分量强度。
通过对频谱图的分析,我们可以了解信号的频域特征,比如信号的主要频率成分、频谱的分布情况等。
总之,FFT是一种常用的频谱分析算法,能够将时域信号转换为频域信号,并通过绘制频谱图展示信号在不同频率上的分量强度。
关于FFT的频谱泄露和加窗我们分析的信号,如果只含整数次谐波的话,用FFT分析信号的频谱和相位是非常准确的,如果信号含有确定的间谐波,比如信号含有60HZ和65HZ的频率,那我们也可以准确的分析出信号的频谱和相位,我们只要用矩形窗截取10个周波的信号就可以分析出50HZ/10=5HZ以及5HZ的整数倍的信号的频谱和相位了,分析的相位和频谱都是非常准确的!如果我们需要分析的信号含有不确定的间谐波,比如我们根本不知道信号含有什么样的间谐波,那么此时用FFT分析,必然会有频谱泄露!那么怎么样才能减少频谱泄露呢(注意:这种情况下我们只能减少频谱泄露,而基本上不可能完全消除频谱泄露)?我们可以有两种方法:方法一:增加采样的长度,方法二:加窗函数。
增加采样长度可以分析出更多频率的信号,可以减少频谱泄露,不过增加采样长度必然会对数据处理的实时性造成影响!理想的窗函数是主瓣很窄,旁瓣衰减很快,矩形窗的主瓣很窄,但是旁瓣衰减却很慢,hanning窗、hamming窗、blackman窗等的旁瓣衰减有了明显的改进,但是主瓣却宽了很多,大概是矩形窗主瓣的二倍,blackman窗的主瓣还要宽,这就造成了信号频谱的频率识别率很低!什么叫频率识别率呢?简单举个例子解释一下:比如说我取十个周波(请注意:这里我用十个周波举例子是为了便于计算,实际中我们是不取10个周波的,因为基2的FFT运算要求取样点数是2的整数倍整数次幂,我们实际操作是取4、8或者16个周波等2的整数次幂),我用一个含有25HZ间谐波的信号做分析,那么我加hamming 窗和hanning窗以后,在20HZ和30HZ处的频率点上都将有幅值,而且有趣的是:我们将20HZ、25HZ和30HZ频率点处的幅值相加以后基本上接近与信号在25HZ处的真实幅值(这一点我还没搞清楚,是否隐含什么关系),并且在频谱上看到的25HZ处的幅值要小于实际信号在25HZ处的幅值,所以我们要对加窗后的FFT变换的幅值要乘以一个恢复系数,不同窗的恢复系数也是不同,矩形窗的是1,hanning窗的是2,hamming窗的好像是1.84左右吧(不好意思,记不清了,大家可以在网上查到)!这样我们在分析25HZ频率点处的幅值时,对于20HZ和30HZ频率点处的幅值都是不可信的,所以我们至少要求20HZ和30HZ附近是不能有信号的,这样频率分辨率相对来说是不是就降低了?因为20HZ和30HZ是不能用的!(哈哈,语言组织能力差了点,有什么不严谨的地方大家包含啊)!大家可想而知,如果我的原始信号在20HZ和30HZ处本来就都有幅值,那么20HZ和30HZ处的频率也将反过来影响25HZ处的信号,这样测出来的幅值误差将会很大,所以我们在加窗时由一个要求:那就是谐波和间谐波,以及间谐波与间谐波之间要相隔较远,我觉得,至少要相隔2条谱线以上我们才能获得较高精度的幅值!blackman窗要求相隔的谱线还要多!这是因为blackman窗的主瓣还要宽!所以对于加窗函数我们要权衡利弊,根据具体需要来选择!。
用FFT 对信号作频谱分析0 引言傅里叶变换⎰∞∞--=t t x X t j d e )()(ωω是对时域信号x (t ) 进行频谱分析的重要方法之一,当x (t )是频率为ω0的单频正弦波信号时X (ω)呈单线状谱,即在ω=ω0处X (ω)为一条竖直线。
在具体的应用中,实际使用的对有限长度为N 的信号离散序列x (n )做FFT ,进而得到其离散傅里叶变换X (k )。
∑-=-=10π2e)()(N n Nnk j n x k X (k ,n =0,1,…,N -1)显然,连续信号中的ω、t 分别为ω=k Δω、t = n Δt ,且有tN f Δπ2πΔ2Δ==ω。
其中,Δt 为x (t )的采样间隔、Δω或Δf 为频率分辨率。
当x (t )的频率ω0刚好等于Δω的整倍数k 0时,X (ω)或X (k )仍然呈单线状。
然而绝大多数情况下ω0并不刚好等于Δω的整倍数,此时的X (ω)、X (k )如图1所示,显然,ω0处于最高的离散谱线k 与次高的离散谱线k ±1(k +1或k -1)之间。
为能通过FFT 准确地确定时域信号x (t )的频率、振幅和初相,人们研究了多种谱线校正方法[1-2]。
本文所介绍的是一种基于离散傅里叶变换基本特性的谱线校正方法。
1 有限长信号的傅里叶变换实际上有限长信号的傅里叶变换可以看成是对无限长的信号加上一个宽度为T 、幅度为1的矩形窗w (t )的加窗傅里叶变换。
由于矩形窗函数w (t )的时域及频域W (ω)表示分别为⎪⎪⎩⎪⎪⎨⎧>≤=2021)(Tt T t t w ⎪⎭⎫ ⎝⎛=⎪⎭⎫⎝⎛=π2s i n c 22s i n )(T T T T T W ωωωω 所以,当无限长的信号x (t )为可以余弦函数表示的频率为ω0的正弦波时)(21)cos()(00m 0m t j t j e e U t U t x ωωω-+==根据傅里叶变换的频移特性,w (t )x (t )的傅里叶变换X (ω)应为kkk k k +1k +1k -1 k -1 |X (k )| |X (k )| |X (k -1)||X (k -1)| |X (k +1)||X (k +1)|图1 离散谱分布示意图(a )(b )[])()(2)(00mωωωωω++-=W W U X 如图2所示[3]。
基于FFT算法的音频频谱仪设计音频频谱仪是一种用于分析音频信号频谱特征的工具,能够显示音频信号在频域上的能量分布情况。
其中,FFT(快速傅立叶变换)算法是一种用于对连续时间域信号进行频谱分析的算法,通过将时域信号转换为频域信号,能够高效地进行频谱分析。
一、基本原理FFT算法的基本原理是将N点的离散时间序列转换为N/2个频率序列,从而实现时域信号到频域信号的转换。
其核心思想是将连续信号进行离散化处理,然后通过计算傅立叶系数来得到频域信号的能量分布情况。
具体而言,FFT算法将时域信号表示为由N个采样点组成的离散序列,然后将序列进行重排列、分解为偶数序列和奇数序列,并通过递归地进行分解和求解傅立叶系数,最终得到频域信号的能量分布。
二、设计要点1.采集音频信号:通过音频输入设备(如麦克风)采集音频信号,并将其转换为数字信号。
2.分帧:将连续的音频信号分成多个帧,每帧包含若干个采样点。
常用的帧长度为1024、2048等。
3.加窗:对每帧采样点进行加窗处理,常用的窗函数有汉宁窗、汉明窗等。
窗函数的作用是减小边界效应,使得频谱分析更加准确。
4. 快速傅立叶变换:对加窗后的每帧信号应用FFT算法进行频谱分析,得到每帧的频域信号。
常用的FFT算法有Cooley-Tukey算法等。
5.平滑处理:对每帧的频谱信号进行平滑处理,以减小噪声对频谱分析的影响。
常用的平滑算法有加权平均法、中值滤波法等。
6.显示频谱:将每帧的频谱信号按照频率进行展示,通常使用图表或图像显示方式。
横轴表示频率,纵轴表示能量。
三、设计步骤1.初始化:初始化音频输入设备,并设置采样率、帧长度等参数。
2.采集音频信号:使用音频输入设备采集音频信号,并将其转换为数字信号。
3.分帧:将采集到的音频信号分成多个帧,每帧包含若干个采样点。
4.加窗:对每帧信号进行加窗处理,选择合适的窗函数。
5.快速傅立叶变换:对加窗后的每帧信号应用FFT算法进行频谱分析,得到每帧的频域信号。
实验二用FFT对信号作频谱分析一、实验目的(1)学习使用FFT对模拟信号和时域离散信号进行频谱分析的方法(2)了解可能出现的分析误差及其原因,以便正确应用FFT二、实验内容:(1)根据参考资料使用FFT进行谐波分析;利用函数生成一组数据,用以模拟电力现场的测量数据,使用FFT对其进行频谱分析;程序:clearfs=1000;t=0:1/fs:0.6;f1=100;f2=300;x1=sin(2*pi*f1*t); %正弦信号x1x2=sin(2*pi*f2*t); %正弦信号x2x=x1+x2;l=length(x);xx=x+randn(1,l); %叠加随机噪声信号figure(1)subplot(7,1,1)plot(x1);subplot(7,1,2)plot(x2);subplot(7,1,3)plot(x);subplot(7,1,4)plot(xx);number=512;y=fft(x,number); %对x取512点的快速傅里叶变换n=0:length(y)-1;f=fs*n/length(y);subplot(7,1,5)plot(f,abs(y));yy=fft(xx,number); %对xx取512点的快速傅里叶变换subplot(7,1,6)plot(f,abs(yy));pyy=y.*conj(y)/number; %y的能量subplot(7,1,7)plot(f,abs(pyy));实验结果见附图1(2)使用操作系统自带的录音机,录制各种声音,保存成.wav文件;将该声音文件读入(采样保存到)某矩阵中,对该采样信号使用FFT进行频谱分析,比较各种语音信号所包含的频谱成分及频率范围。
程序:number=512;fs=1000;x=wavread('你自己的音频名,如a.wav');%读取音频文件y=fft(x,number); %对x取512点的傅里叶变换n=0:length(y)-1;f=fs*n/length(y);subplot(2,1,1)plot(f,abs(y));pyy=y.*conj(y)/number; %y的能量subplot(2,1,2)plot(f,abs(pyy));实验结果见附图2三、实验结论由实验结果可以看出,实验得到了FFT对模拟信号和时域离散信号进行频谱分析的结果。
实验十四用窗函数提高FFT谱精度一. 实验目的1. 掌握几种典型窗函数的性质、特点,比较几种典型的窗函数对信号频谱的影响。
2. 通过实验认识它们在克服 FFT 频谱分析的能量泄漏和栅栏效应误差中的作用,以便在实际工作中能根据具体情况正确选用窗函数二. 实验原理当运用计算机进行处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。
做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号。
图1 信号的周期延拓周期延拓信号与真实信号是不同的,设信号x(t)在时域分布为无限长(- ∞,∞),当用窗函数w(t)与其相乘时,得到截断信号xT(t) =x(t)w(t)。
按频域卷积定理,截断信号xT(t) 的谱XT(ω)为:(1)信号被截断以后,频谱为圆信号频谱和窗函数频谱的卷积,发生了畸变。
若x(t)是频率为ω。
的余弦信号,其频谱X(ω)是位于ω。
处的δ函数,若窗函数w(t)是矩形窗,其频谱为sinc(ω)函数,截断信号频谱为:(2)将截断信号的谱XT(ω)与原始信号的谱X(ω)相比较可知,它已不是原来的两条谱线,而是两段振荡的连续谱.这表明原来的信号被截断以后,其频谱发生了畸变,原来集中在ω。
处的能量被分散到两个较宽的频带中去了,这种现象称之为频谱能量泄漏称之为能量泄漏。
对采样信号的频谱,为提高计算效率,通常采用FFT算法进行计算,设数据点数为:N = T/dt =T.Fs(3)式中T为观测的信号长度,dt为采样间隔,Fs为采样频率。
则计算得到的离散频率点为:Xs(fi) , Fi = i . Fs / N , i = 0,1,2,…,N/2 (4)这就相当于透过栅栏观赏风景,只能看到频谱的一部分,而其它频率点看不见,因此很可能使一部分有用的频率成分被漏掉,此种现象被称为栅栏效应。
信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。
基于加窗FFT 的频谱分析
设信号为x(t)=sin(ωt+10π/180)+0.5sin(3ωt+20π/180)+0.5sin(5ωt+40π/180)+0.4sin(7ωt+60π/180)+0.3sin(9ωt+80π/180)+0.2sin(11ωt+90π/180) ,ω=99π。
1、分别用矩形窗、汉宁窗、哈明窗、布莱克曼窗+FFT 对信号进行频谱分析,分析各窗函数对频谱分析的影响;
2、在采样频率一定时,增加截断时间长度,分析截断时间长度对频谱分析的影响;
3、在截断时间长度一定时,修改采样频率,分析采样频率对频谱分析的影响;
4、给出所有MATLAB 程序及相关频谱图.
1. 该信号的最高频率fc=544.5Hz,Tcmax=0.02s,为了分析各窗函数对频谱分析的影响,暂定采样频率fs=2048Hz=3.76f*fc, 截断时间Tp=Tcmax=0.02s, 所以采样周期T=1/fs;采样点数N=Tp/T=40 ,做4096点DFT 运算 首先观察各窗函数的时域和频域波形
当采样频率fs=2048Hz,截断时间Tp=0.02s,即采样点数N=40, 分别用矩形窗、汉宁窗、哈明窗、布莱克曼窗截取信号,并给出相关频谱图
矩形窗时域
矩形窗频域
2.令采样频率fs=2000Hz,增加截断时间,即采样点数N 从40,160,320变化观察频谱变化,频率分辨率为 50 12.5 6.25
X k [N ]
X k [4*N
]
X k [8*N
]
X k [N
]
X k [4*N
]
X k [8*N
]
X k [N
]
X k [4*N
]
X k [8*N
]
X k [N
]
X k [4*N
]
X k [8*N ]
令采样频率fs=2000Hz,增加截断时间,即采样点数N 从20,80,160变化观察频谱变化,频率分辨率为 100 25 12.5
令采样频率fs=2000Hz,增加截断时间,即采样点数N 从10,40,80变化观察频谱变化,频率分辨率为 200 50 25
由图可见,随着截断时间的增加,主瓣脉宽越窄,旁瓣峰值越大,虽然频谱泄露越来越小,但谱间干扰也越来越严重
X k [N ]
X k [4*N ]
X k [8*N ]
X k [N ]
X k [4*N ]
X k [8*N ]
X k [N ]
X k [4*N ]
X k [8*N ]
X k [N ]
X k [4*N ]
X k [8*N ]
X k [N ]
X k [4*N ]
X k [8*N ]
X k [N ]
X k [4*N ]
X k [8*N ]
X k [N ]
X k [4*N ]
X k [8*N ]
X k [N ]
X k [4*N ]
X k [8*N ]
采样点数为40,160,320观察频谱变化。
频率分辨率为50Hz 观察频谱在全频范围内:
观察频谱在4000Hz 范围内:
F s [f s ]
F s [4*f s ]
x 10
4
F s [8*f s ]
F s [f s ]
F s [4*f s ]
x 10
4
F s [8*f s ]
F s [f s ]
F s [4*f s ]
x 10
4
F s [8*f s ]
F s [f s ]
F s [4*f s ]
x 10
4
F s [8*f s
]
F s [f s
]
F s [4*f s
]
F s [8*f s
]
F s [f s
]
F s [4*f s
]
F s [8*f s
]
F s [f s
]
F s [4*f s
]
F s [8*f s
]
F s [f s
]
F s [4*f s
]
F s [8*f s ]
采样点数为20,80,160观察频谱变化,频率分辨率为50Hz
令截断时间Tp=0.02s,增加采样频率,fs=500Hz, fs 分别等于fs,4*fs,8*fs ,采样点数为10,40,80观察频谱变化,频率分辨率为50Hz
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
观察频谱在1000Hz 范围内:
矩形窗截取
F s [f s ]
矩形窗截取
F s [4*f s ]
矩形窗截取
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]
F s [f s ]
F s [4*f s ]
F s [8*f s ]。