插值(上采样,upsampling)和抽取(下采样,downsampling)是数字前端中经常使用的操作。进行上采样时在信号间插入0,以提高信号的速率,相当于增加了采样率;进行下采样时,每隔一段信号进行抽取,相当于降低了信号的速率,降低了采样率。
上采样和下采样往往发生在数字前端,如DAC前和ADC后,主要目的是为了让信号的速率与DAC和DSP处理单元的速率匹配; 具体来说,ADC和DAC的采样速率往往较高,可能160MHz-480MHz不等,但是实际基带信号处理并不需要如此高的带宽,一般满足Nyquist采样率要求即可,即\(f_s\geq 2\times bandwidth\)。实际基带信号的带宽可能仅仅有20MHz、40MHz等,因此基带系统需要对ADC输出的信号降采样,或是在输入DAC之前上采样来满足DAC的采样速率。
下采样后频谱的变化情况
若对信号进行D倍抽取,采样率变为原来的\(\frac{1}{D}\), 即\(f_s\to \frac{f_s}{D}\),若原本信号为\(x(n)\),抽取后信号可以表示为:
\[x_D(n)=x(nD) \]对其求频谱:
\[\begin{align} X_D(e^{j\omega})&=\sum_{n=-\infty}^\infty x_D(n)\exp({-j\omega n})=\sum_{n=-\infty}^\infty x(nD)\exp({-j\frac{\omega}{D}nD})\\ \nonumber &= x(0)\exp({-j\frac{\omega}{D}0})+x(1)\times 0\times \exp(-j\frac{\omega}{D}1)\\ \nonumber & + x(D)\exp({-j\frac{\omega}{D}{D}})+\dots+x(nD)\exp({-j\frac{\omega}{D}nD}) \end{align} \]上式左半部分可以看做按照\(f_s/D\)的采样率下做的频谱分析,相当于只有\(N/D\)点,而右边我们可以看做变回\(f_s\)的采样率,只不过部分点的值是0,可以看出归一化的频率应该发生了变化,因为:
\[\omega_D=\frac{2\pi f}{f_s/D}=D\frac{2\pi f}{f_s}=D\omega \]\[\frac{\omega_D}{D}=\omega \]要想和原来的\(x(n)\)建立联系,构造出一个N点的函数,仅在nD倍处有值,其余值为零,很容易想到可以利用类似脉冲抽样序列的函数来实现:
\[x_1(n)=x(n)p(n)=x(n)\sum_{i=-\infty}^\infty \delta(n-Di) \]对\(p(n)\)求傅里叶级数展开,可以得到:
\[p(n)=\frac{1}{D}\sum_{k=0}^{D-1}\exp({j\frac{2\pi nk}{D}}) \]因此可以得到
\[X_D(e^{j\omega})=\sum_{n=-\infty}^\infty x_1(n)exp(-j\frac{\omega}{D}n)=X_1(e^{j\omega/D}) \tag{1.1} \]而\(X_1(e^{j\omega})\)可以求得:
\[X_1(e^{j\omega})=\frac{1}{D}\sum_{k=0}^{D-1}X(e^{j(\omega-2\pi k/D)}) \tag{1.2} \]因此将\((1.2)\)带入\((1.1)\)可以求出
\[X_D(e^{j\omega})=\frac{1}{D}\sum_{k=0}^{D-1}X(e^{j(\omega-2\pi k)/D}) \]可以看出,抽取后的信号的频谱是原来序列的频谱经过频移和D倍的展宽后的叠加和。
为了让抽取后的信号不发生混叠,因此需要在抽取前进行低通滤波,将\(|\omega|\leq\frac{\pi}{D}\)的信号滤除。
上采样后频谱的变化情况
上采样(插值)常常被看作是下采样的逆运算,但是实际上并不是,上采样插入0的操作并没有改变信号的能量,也没有使得信号的信息缺失。插值的方式也有很多,这里以最简单的插值方式——在信号之间插入零为例来分析。
若原始信号为\(x(n)\),进行I倍插值后,信号变为:
\[x_I(n)=\begin{cases} x(\frac{n}{I})&n=0,I,2I\dots\\ 0&others \end{cases} \]其归一化频率的变化为:
\[\omega_y=\frac{2\pi f}{I f_s}=\frac{\omega}{I} \]其频域表示可以通过下式求得
\[X_I(e^{j\omega_y})=\sum_{n=-\infty}^{\infty}x(\frac{n}{I})exp(-jn\omega_y)=X(e^{j\omega_yI})=X(e^{j\omega}) \]因为\(\omega\)的周期为\(2\pi\),所以\(\omega_I\)的周期为\(2\pi/I\),在周期内频谱与原来相同,但是相当于做了压缩。
采样率变换后能量变化情况
帕塞瓦尔定理Parseval's theorem表明了信号的能量在时域和频域相等。对于有限长、离散序列的情况,可以表示为:
\[\sum_{k=0}^{N-1}|x[k]|^2=\frac{1}{N}\sum_{m=0}^{N-1}|X[m]|^2 \]tips 注意,要对于频域的点求和后除以总共的点数N,这个N是采样增益。
- 对于下采样后的信号,频带内的频谱幅度变为原来的\(\frac{1}{D}\),但是发生了周期延拓,因此能量不变
- 对于上采样后的信号,频带内频谱幅度不变,但是滤波后会滤掉其余的\(I-1\)个带外信号,因此能量应该降低为原来的\(1/I^2\)
对此理解尚不清晰,之前书上是通过傅里叶变换前后的时域信号在0点出值不变得到的,对于上采样要乘上系数\(I\),下采样只需要低通滤波。