0%

如何得到模拟信号的频谱

现实中的信号大部分是模拟信号,即时间和信号的幅值都能取连续值。计算机无法直接处理模拟信号,要先将它转换为数字信号,然后通过DFT得到离散的频谱,而且这个频谱要能反映真实信号的频谱特性。本文将介绍整个过程。

将模拟信号记为\(x_a(t)\),假设它是非周期连续时间信号,这是最常见到的一种信号。它的频谱用连续时间傅里叶变换描述,为了区分,用\(\Omega\)表示频率变量

\[ \begin{equation} X_a(j \Omega) = \int_{-\infty}^{+\infty} x_a(t) e^{-j \Omega t} d t \end{equation} \]

计算机不擅长符号运算,擅长数值运算,所以要通过采样和量化将其转化为数字信号,这个过程一般通过ADC(模拟/数字转换器)完成。记转换得到的数字信号为\(x_d(n)\),假设量化误差可以忽略不计,采样周期为\(T_s\),采样频率\(F_s=1/T_s\),那么

\[ \begin{equation} x_d(n) = x_a(nT_s) \end{equation} \]

\(x_d(n)\)的DTFT为\(X_d(e^{j\omega})\)\(X_d(e^{j\omega})\)\(X_a(j\Omega)\)之间的关系为

\[ \begin{equation} X_d(e^{j\omega}) = \frac{1}{T_s} \sum_{k=-\infty}^{+\infty} X_a \left[ j \left( \frac{\omega}{T_s} - \frac{2\pi}{T_s} k \right) \right] \end{equation} \]

\((3)\)式可知,\(X_d(e^{j\omega})\)是由一组移位的\(X_a(j \Omega)\)叠加而成,周期为\(2\pi\)(当然,这是任何DTFT的特性),在幅度上有\(1/T_s\)的变化,频率轴也有\(T_s\)倍的变化,即

\[ \begin{equation} \omega = \Omega T_s \end{equation} \]

根据采样定理,为了避免互相移位的\(X_a(j \Omega)\)之间有重叠,要求采样频率\(F_s\)大于两倍的带宽\(F_0\),即

\[ \begin{equation} F_s > 2F_0 \end{equation} \]

这就是著名的采样定理。

从对\((3)\)式的分析可知,从\(X_d(e^{j\omega})\)可以得到\(X_a(j\Omega)\)的特性。设\(x_d(n)\)的DFT为\(X_d(k)\),从离散信号的傅里叶分析一文可知,\(X_d(k)\)的包络线就是\(X_d(e^{j\omega})\)在一个\(2\pi\)周期内的图像,如果\(X_d(k)\)的点足够多,包络线非常光滑,可以看成是\(X_d(e^{j\omega})\)的图像,所以从\(X_d(k)\)就可以得到\(X_a(j\Omega)\)的特性 。所以,对\(x_a(t)\)经ADC得到的数字信号做DFT,就能到\(x_a(t)\)的真正频谱\(X_a(j \Omega)\)

至此就介绍完了分析真实世界模拟信号频谱的全过程。从中我们可以看到DFT的重要性,所以快速傅里叶变换FFT作为DFT的高效实现,是极其重要的算法。

参考资料

  1. 信号与系统(奥本海姆)
  2. 数字信号处理(MATLAB版)