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

2017-04-02  本文已影响2685人  constant007

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

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仿真
上一篇下一篇

猜你喜欢

热点阅读