离散频谱的全相位校正法
- 格式:pdf
- 大小:178.96 KB
- 文档页数:5
频谱校正方法
温馨提示:文档内容仅供参考
频谱校正是指对频谱信号进行校正以消除信号中的误差或非线性响应。
下面介绍几种常见的频谱校正方法:
线性插值法:该方法适用于频谱信号中的离散点不均匀分布的情况。
线性插值法通过在频率域上的两个离散点之间线性插值,获得一条直线,从而对频谱信号进行插值。
多项式拟合法:该方法适用于频谱信号中的误差具有一定的规律性。
多项式拟合法通过将原始信号拟合成一个多项式函数,从而对频谱信号进行校正。
傅里叶变换法:该方法适用于频谱信号中的非线性响应较为明显的情况。
傅里叶变换法通过将原始信号进行傅里叶变换,将频域中的非线性响应转换为时域中的线性响应,从而对频谱信号进行校正。
平滑法:该方法适用于频谱信号中存在噪声的情况。
平滑法通过对频谱信号进行平滑处理,从而减少噪声对频谱信号的影响。
需要根据实际情况选择适当的频谱校正方法进行使用。
华中理工大学博士学位论文第二章离散信号频谱的窗谱校正方法----基本理论§2.1 引言利用DFT可以对离散信号进行频谱分析,但是计算工作量相当大,因此,在快速算法没用发明之前,DFT并没用多大的实际意义。
直到1965年,Cooley-Tukey在《计算数学》杂志上首先提出FFT算法之后,DFT才得到广泛的应用。
这一快速算法的出现对数字信号分析领域的发展起到了极大的推动作用。
从此以后,它作为频谱分析的基础得到了广泛的应用[75,76,77,78]。
由于计算机只能对信号的有限多个样本进行计算,信号的FFT谱分析也只能在时域信号的有限区间内进行,这就不可避免地存在由于时域截断(加矩形窗)而产生泄漏[61],使谱峰值减小,精度降低,求得的信号相位更是面目全非。
在数字信号处理中,由DFT或FFT得到的幅值谱是离散谱,是信号与窗函数频谱卷积后,按频率分辨率Δfs=fs/ N( fs为信号采样频率,N为分析信号样本长度)等间隔频域抽样的结果(如图21所示)[78]。
A幅值f图2-1 频谱抽样的离散谱线如果周期信号的频率正好表2-1 离散频谱幅值、相位和频率误差表落在某一谱线上,经FFT后得矩形窗 Hanning窗Hamming窗幅值误差(%)0--36.4 0--15.3 0--18.3相位误差(0)±90 ±90 ±90频率误差(Hz)±05Δfs. ±05Δfs. ±05Δfs.到的频率、幅值和相位是准确的。
在一般情况下,信号频率落于两条相邻谱线之间,由于谱线不在主瓣中心,由峰值谱线反映的频率和幅值都不准10华中理工大学博士学位论文确,相位误差更大。
从理论上分析,加矩形窗时,最大误差可达36 4.%,即使加其他窗时,也不能完全消除这一影响,在加Hanning窗时,只进行幅值恢复时的最大幅值误差仍高达15 3.%,相位误差将更大,表2-1是离散频谱只进行幅值恢复,不进行其他处理时幅值、相位和频率误差[141]。
离散频谱分析误差产生的原因及离散频谱校正技术【建筑工程类独家文档首发】离散频谱校正理论和技术,不知道大家对这个名词熟不熟悉。
近来在声振论坛上看到一些帖子讨论为何经FFT得到的幅值、频率和相位不准的。
其实前面我也发过一篇介绍离散频谱校正的综述性的文章,可能大家都忙,没时间去看,呵呵,这里我就我的理解,把离散频谱分析的误差来源和校正方法做个简单的介绍。
离散频谱分析的误差产生的原因主要来自两方面,一方面是由于时域加窗截断产生的频域连续化,另一方面是由于计算机只能对有限的离散的频率进行计算,也即是频域离散化的结果。
其中,加窗截断的影响使一个无穷长单频率信号在频域对应的一根谱线,变成一个连续谱,以加矩形窗为例,则是变成一个sinc型函数的形状,其峰值对应的频率即为单频信号的频率。
但是由于频域的离散化,我们用FFT计算的频率一般都不会刚好会落在峰值处,这就是我们平时常说的泄露,这时我们就只能把计算得到的峰值谱线对应的频率做为估计的频率,如果以频率分辨率fs/N做归一 (即把频率分辨率看成1)的话,这个估计的频率的最大绝对值误差就是0.5,而幅值误差则依赖于加的窗的类型,由于矩形窗主瓣宽度为2,频谱开状较尖,幅值误差也就大。
至于相位的最大误差则会相应的达到正负90度,已经完全不能用了。
离散频谱校正就是针对这种误差提出的各种校正出实际的频率、幅值和相位的一门理论和技术。
国内现在比较常用的方法有比值(插值)法、能量重心法、FFT FT法和相位差法,都有其各自的特点和优缺点。
这里我给出一个比值校正法的程序供大家一起研究下。
当然,对于多频率成分的信号来说,离散频谱分析的另一个误差是来自于频率之间的相互干涉,这也是由于泄露所引起的,这个误差则主要靠加窗抑制旁瓣和减小频率分辨率、拉大频率间的距离(可通过ZFFT实现)来尽量减小。
%SpectrumCorrect_Test.mclose all;clear all;clc;fs=1024;N=1024;t=(0:N-1)/fs;x=4*cos(2*pi*80*t 30*pi/180) 3*cos(2*pi*150.232*t 80*pi/180)1*cos(2*pi*253.5453*t 240*pi/180);xf=fft(x);xf=xf(1:N/2)/N*2;XfCorrect=SpectrumCorrect(xf,3,1);XfCorrect(:,1)=XfCorrect(:,1)*fs/N;XfCorrectw=hann(N,’periodic’);xfw=fft(x.*w’);xfw=xfw(1:N/2)/N*4;XfCorrectW=SpectrumCorrect(xfw,3,2);XfCorrectW(:,1)=XfCorrectW(:,1)*fs/N;XfCorrectW%离散频谱比值校正法%by yangzj 2007.4.28%%xf为FFT后的复数谱%CorrectNum为校正的谱线条数%即校正最大的CorrectNum条%WindowType为加窗类型%1为矩形窗,2为Hanning窗%%SpectrumCorrect.mfunction XfCorrect=SpectrumCorrect(xf,CorrectNum,WindowType) XfCorrect=zeros(CorrectNum,3);for i=1:CorrectNumA=abs(xf);[Amax,index]=max(A);phmax=angle(xf(index));%比值法%加矩形窗if (WindowType==1)indsecL=A(index-1)>A(index 1);df=indsecL.*A(index-1)./(Amax A(index-1))-(1-indsecL).*A(index 1)./(Amax A(index 1));XfCorrect(i,1)=index-1-df;XfCorrect(i,2)=Amax/sinc(df);XfCorrect(i,3)=(phmax pi*df)*180/pi;xf(index-2:index 2)=zeros(1,5);end%比值法%加Hanning窗if (WindowType==2)indsecL=A(index-1)>A(index 1);df=indsecL.*(2*A(index-1)-Amax)./(AmaxA(index-1))-(1-indsecL).*(2*A(index 1)-Amax)./(Amax A(index 1)); XfCorrect(i,1)=index-1-df;XfCorrect(i,2)=(1-df )*Amax/sinc(df);XfCorrect(i,3)=(phmax pi*df)*180/pi;xf(index-4:index 4)=zeros(1,9);endXfCorrect(i,3)=mod(XfCorrect(i,3),360);XfCorrect(i,3)=XfCorrect(i,3)-(XfCorrect(i,3)>180)*360;end运行结果:XfCorrect =80.0014 4.0016 29.8261150.2333 2.9981 79.7127253.5397 0.9996 -118.7272XfCorrectW =80.0000 4.0000 30.0000150.2320 3.0000 80.0000253.5453 1.0000 -120.0002本文由声振论坛会员yangzj原创,结语:任何一个人,都要必须养成自学的习惯,即使是今天在学校的学生,也要养成自学的习惯,因为迟早总要离开学校的!自学,就是一种独立学习,独立思考的能力。