大话DFT频谱分析(二)

上篇matlab的代码;

N   = 60 ;     % vector length
idx = [0:N-1].';% index column vector
f0 = 1000    ;   % sine signal freq, in Hz
fs = 32E3   ;   % sample rate, in Hz
x1 = sin(2*pi*f0/fs*idx);   % sampled sine signal
figure;     % open new figure
subplot(2,2,1:2);
set(gca,'fontsize',14);
stem(x1);   % plot(x1)
grid on;    % draw grid on figure
title1_str = sprintf(...
  '采样正弦信号, 频率 %dHz, 采样率 %dHz', f0, fs);
title(title1_str, 'fontsize',14);
y1     = fft(x1);
y1_abs = abs(y1);
subplot(2,2,3); stem(y1_abs,'LineWidth',1,'MarkerSize',6);
grid on; set(gca,'fontsize',12);
title('DFT 线性幅度', 'fontsize',14);
y1_abs_dB = 20*log10(y1_abs);
min_y1 = min(y1_abs_dB);
subplot(2,2,4); 
stem(y1_abs_dB, 'LineWidth',1,'MarkerSize',6,'BaseValue',min_y1); 
grid on; set(gca,'fontsize',12);
title('DFT 对数幅度', 'fontsize',14);

频谱为什么会发生泄露

下面是理论分析:频谱泄露是因为截断效应,DFT是有限长序列。
         

xN(n)=x(n)wN(n)

XN(ejw)=1/2πX(ejw)WN(ejw)

|WN(ejw)|=|sinwNsinwN/2|

矩形窗和它的的频谱:
大话DFT频谱分析(二)_第1张图片
很容易知道任何一个 X(ejw) 与这个矩形窗相乘,结果必然受到旁瓣
的影响。

  1. 频谱泄露了,原来的谱线展宽了。我们把这种谱线的展宽成为频谱泄露。它显然使得物理分辨率降低。
  2. 谱间干扰出现了。旁瓣就是干扰的原因。

显然,N越大,旁瓣越小,影响越小。
大话DFT频谱分析(二)_第2张图片

我们先说下两个很重要的概念:物理分辨率和分析分辨率

物理分辨率:简单来说就是用算法能区分两个谱峰的能力。
下面通过例子来说明这个概念:
假设有这样一个信号: xa(t)=cos(2pif0t);f0=1kHz 我们来分析一下他的频谱:

T0=1f0=1ms;fs,T=1/fs=1/6ms;

x(n)=xa(nT)=cos(2πf0Tn)=cos(ω0n)=cos(3πn);

下面是重要分析:
这里的N = 2π/(π/3) = 6= T0/T , 那么一个周期的数据长度 T0=NT=1ms 。注意:这里就可以看出什么是物理分辨率(频率分辨率)了: F0=1/T0=fs/N 冲着式子我们可以看出:增加采样率,分子分母同时等比例增加,结果不变。*
因此:我们得出的结论是:提高物理分辨率的唯一办法:增加 T0

下篇我们从实验上说明。

你可能感兴趣的:(信号的世界)