⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spectrumcorrect.m

📁 在FFT后信号的频率往往与谱线不相重合
💻 M
字号:
%离散频谱比值校正法  
%
%xf为FFT后的复数谱
%CorrectNum为校正的谱线条数,即校正最大的CorrectNum条
%WindowType为加窗类型,1为矩形窗,2为Hanning窗
%
%SpectrumCorrect.m
function XfCorrect=SpectrumCorrect(xf,CorrectNum,WindowType)
XfCorrect=zeros(CorrectNum,3);
for i=1:CorrectNum
    A=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)./(Amax+A(index-1))-(1-indsecL).*(2*A(index+1)-Amax)./(Amax+A(index+1));
        XfCorrect(i,1)=index-1-df;
        XfCorrect(i,2)=(1-df^2)*Amax/sinc(df);
        XfCorrect(i,3)=(phmax+pi*df)*180/pi;
        
        xf(index-4:index+4)=zeros(1,9);
    end
    XfCorrect(i,3)=mod(XfCorrect(i,3),360);
    XfCorrect(i,3)=XfCorrect(i,3)-(XfCorrect(i,3)>180)*360;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -