美文网首页
数字信号处理中的各种频率

数字信号处理中的各种频率

作者: constant007 | 来源:发表于2017-04-02 15:09 被阅读2685次

    在学习数字信号处理时,很多种频率很容易搞混淆,有模拟/数字/频率/角频率等等,也不是特别清楚不同频率之间的关系,希望这篇文件可以为各种频率来个了结.

    4种频率及其数量关系

    实际物理频率表示物理信号的真实频率; fs为采样频率,表示ADC采集物理信号的频率,由奈奎斯特采样定理可以知道,fs必须≥信号最高频率的2倍才不会发生信号混叠,因此fs能采样到的信号最高频率为fs/2。
    角频率Ω是物理频率的2π倍, 这个也称模拟频率。
    归一化频率是将物理频率按fs归一化之后的结果,最高的信号频率为fs/2对应归一化频率0.5(ω=π),这也就是为什么在matlab的fdatool工具中归一化频率为什么最大只到0.5的原因。归一化频率中不含fs的信息.
    圆周频率是归一化频率的2*pi倍,这个也称数字频率ω

    image.png image.png

    举个例子:
    我们设定fs=30.72MHz,使用3个cw信号的合成信号代表一个BW=8MHz的宽带信号,使用实际频率来表示信号,看到BW没有变化,使用数字频率w来表示信号,信号的BW似乎被压缩了.

    Q: 为什么要在归一化频率下来分析信号?

    image.png 归一化频率
    clear all;
    close all;
    
    fs = 30.72e6;
    ts = 1/fs;
    nFFT=4096;
    %nFFT=32768;
    t=0:ts:(nFFT-1)*ts;
    
    d0=100*sin(2*pi*10e6*t);
    d1=50*cos(2*pi*5e6*t);
    d2=10*cos(2*pi*2e6*t);
    dSum=d0+d1+d2;
    
    dFFT = abs(fftshift(fft(dSum,nFFT)))/(nFFT/2);
    %dFFT = abs(fft(dSum,nFFT))/(nFFT/2);
    fAxis = (-1/2*nFFT:(1/2*nFFT-1))/nFFT*fs;
    figure(1)
    subplot(2,1,1)
    plot(fAxis,dFFT)
    title('original signal')
    subplot(2,1,2)
    dSumI= zeros(1,2*nFFT);
    for k =1:nFFT
        dSumI(2*k) = dSum(k);
    end
    dFFTI = abs(fftshift(fft(dSumI,2*nFFT)))/(nFFT);
    fAxisI = (-nFFT:(nFFT-1))/(2*nFFT)*fs*2;  %fs double
    plot(fAxisI,dFFTI)
    title('interpolated signal')
    figure(2)
    
    subplot(2,1,1)
    wAxis = 2*pi*(-1/2*nFFT:(1/2*nFFT-1))/(nFFT);
    plot(wAxis,dFFT)
    set(gca,'XTick',-2*pi:pi/2:2*pi)  
    title('original signal normalize')
    subplot(2,1,2)
    wAxisI = 2*pi*(-nFFT:(nFFT-1))/(2*nFFT);
    plot(wAxisI,dFFTI)
    set(gca,'XTick',-2*pi:pi/2:2*pi) 
    title('interpolated signal normalize')
    

    参考:

    1. 数字信号处理中的归一化频率
    2. 阿英讲频率f,角频率Ω和数字频率w的物理含义--附MATLAB仿真

    相关文章

      网友评论

          本文标题:数字信号处理中的各种频率

          本文链接:https://www.haomeiwen.com/subject/bpdgottx.html