信号处理原理 笔记 5

离散时间信号的Fourier变换

DTFT

离散时间傅里叶变换

由于真实信号一般没有解析表达式,因此需要通过抽样值来计算出理想抽样信号的频谱密度函数:

F(ω)=TF^(ω)=Tn=f(nT)ejnωT,ω[ωs2,ωs2]F(\omega) = T\hat{F}(\omega) = T\sum\limits_{n=-\infty}^{\infty}f(nT)e^{-jn\omega T} ,\quad \omega\in[-\frac{\omega_{s}}{2}, \frac{\omega_{s}}{2}]

上式在满足奈奎斯特采样定理的时候严格成立,如果不满足则会导致混叠现象的发生,此时第一个等于号改为\approx

从中可以看出,f(nT)f(nT)实际上是F^(ω)\hat{F}(\omega)的FS系数,因此有:

f(nT)=1ωsωs/2ωs/2F^(ω)ejnωTdωf(nT) = \frac{1}{\omega_{s}}\int_{-\omega_{s}/2}^{\omega_{s}/2} \hat{F}(\omega)e^{jn\omega T}d\omega

注意指数上的符号

频率归一化

为了方便,将采样频率归一,也即将f(nT)f(nT)中的TT在数学上化简为1,将频率归一化的离散信号称为数字信号,将数字信号DTFT归一化频谱为数字频谱

在归一化之后,采样频率为ωs=2πT=2π\omega_{s} = \frac{2\pi}{T} = 2\pi

代入公式有:

X(ω)=DTFT[x(n)]=n=x(n)ejnωx(n)=12πππX(ω)ejnωdω\begin{align*} X(\omega) = \mathrm{DTFT}[x(n)] = \sum\limits_{n=-\infty}^{\infty}x(n)e^{-jn\omega} \\ x(n) = \frac{1}{2\pi} \int_{-\pi}^{\pi}X(\omega)e^{jn\omega}d\omega \end{align*}

我们将抽样时的真实频率(又称为模拟频率)记为Ω\Omega,引入归一化时间之后的数字频率为ω\omega,则:

  • 模拟频率的Nyquist区间为:[Ωs2,Ωs2][-\dfrac{\Omega_{s}}{2}, \dfrac{\Omega_{s}}{2}]
  • 数字频率的Nyquist区间为[π,π][-\pi, \pi]
  • 二者的关系为ω=ΩTs\omega = \Omega T_{s}

性质

周期性

X(ω)=X(ω+2π)X(\omega) = X(\omega + 2\pi)

证明是显然的

线性

DTFT(kakxk)=kakDTFT(xk)\mathrm{DTFT}(\sum\limits_{k} a_{k}x_{k}) = \sum\limits_{k} a_{k}\mathrm{DTFT}(x_{k})

原因是DTFT本质上其实是一种特殊频率的采样

平移特性

DTFT[x(nn0)]=ejωn0X(ω)DTFT[ejω0nx(n)]=X(ωω0)\begin{align*} \mathrm{DTFT}[x(n-n_{0})] &= e^{-j\omega n_{0}}X(\omega) \\ \mathrm{DTFT}[e^{j\omega_{0} n}x(n)] &= X(\omega - \omega_{0}) \end{align*}

证明和FT的证明是类似的

反褶与共轭

DTFT[x(n)]=X(ω)DTFT[x(n)]=X(ω)\begin{align*} \mathrm{DTFT}[x(-n)] &= X(-\omega) \\ \mathrm{DTFT}[x^{*}(n)] &= X^{*}(-\omega) \end{align*}

证明和FT的证明是类似的

频域与时域变化

DTFT[nxn]=j[ddωX(ω)]DTFT[xa(n)]=X(aω)\begin{align*} \mathrm{DTFT}[nx_{n}] &= j\bigl[\frac{d}{d\omega}X(\omega)\bigr] \\ \mathrm{DTFT}[x_{a}(n)] &= X(a\omega) \end{align*}

上式中,由于xnx_{n}的定义域为Z\mathbb{Z},所以我们定义其压缩后的结果为:

xa(n)={x(na)naZ0naZ\begin{align*} x_{a}(n) = \begin{cases} x(\frac{n}{a}) & \frac{n}{a} \in \mathbb{Z} \\ 0 & \frac{n}{a} \notin \mathbb{Z} \end{cases} \end{align*}

卷积定理

首先我们需要定义两种新的卷积形式:

离散序列线卷积:

x1(n)x2(n)=k=x1(nk)x2(k)x_{1}(n) * x_{2}(n) = \sum\limits_{k=-\infty}^{\infty}x_{1}(n-k)x_{2}(k)

连续序列圆卷积:

X1(ω)X2(ω)=ππX1(ω)X2(ωω)dωX_{1}(\omega) \otimes X_{2}(\omega) = \int_{-\pi}^{\pi}X_{1}(\omega')X_{2}(\omega - \omega')d\omega'

于是:

DTFT[x1(n)x2(n)]=X1(ω)X2(ω)DTFT[x1(n)x2(n)]=12πX1(ω)X2(ω)\begin{align*} \mathrm{DTFT}[x_{1}(n) * x_{2}(n)] &= X_{1}(\omega)\cdot X_{2}(\omega) \\ \mathrm{DTFT}[x_{1}(n) \cdot x_{2}(n)] &= \frac{1}{2\pi}X_{1}(\omega) \otimes X_{2}(\omega) \\ \end{align*}

注意乘法的DTFT\mathrm{DTFT}公式右边的12π\frac{1}{2\pi}

Parseval能量定理

n=x(n)2=12πππX(ω)2dω\sum\limits_{n=-\infty}^{\infty}|x(n)|^{2} = \frac{1}{2\pi}\int_{-\pi}^{\pi}|X(\omega)|^{2}d\omega

有限长DTFT

现实中无法获得无限长的时域频谱,于是我们需要一个窗函数进行截取

w(n)={10nL10else\begin{align*} w(n) = \begin{cases} 1 & 0 \leq n \leq L - 1 \\ 0 & \rm else \end{cases} \end{align*}

截取后的信号为:

xL(n)=x(n)w(n)={x(n)0nL10else\begin{align*} x_{L}(n) = x(n)w(n) = \begin{cases} x(n) & 0\leq n \leq L - 1 \\ 0 & \rm else \end{cases} \end{align*}

对应的频谱变为:

XL(ω)=n=xL(n)ejωn=n=0L1x(n)ejωnX_{L}(\omega) = \sum\limits_{n=-\infty}^{\infty}x_{L}(n)e^{-j\omega n} = \sum\limits_{n=0}^{L - 1}x(n)e^{-j\omega n}

另一种理解是,我们利用DTFT的卷积特性来理解

XL(ω)=DTFT[x(n)w(n)]=12πX(ω)W(ω)=12πππX(ω)W(ωω)dω\begin{align*} X_{L}(\omega) &= \mathrm{DTFT}[x(n)w(n)] \\ &= \frac{1}{2\pi}X(\omega)\otimes W(\omega) \\ &= \frac{1}{2\pi}\int_{-\pi}^{\pi}X(\omega')W(\omega - \omega')d\omega' \end{align*}

于是乎我们需要首先来求窗函数的频谱:

W(ω)=DTFT[w(n)]=n=w(n)ejnω=n=0L1ejnω=1ejLω1ejω=1cos(Lω)+jsin(Lω)1cos(jω)+jsin(jω)=2sin2(Lω2)+2jsin(Lω2)cosLω22sin2(ω2)+2jsin(ω2)cosω2=sin(Lω2)sin(ω2)cos(Lω2)jsin(Lω)cos(ω2)jsin(ω)=sin(Lω2)sin(ω2)ej(L1)ω2\begin{align*} W(\omega) &= \mathrm{DTFT}[w(n)] \\ &= \sum\limits_{n=-\infty}^{\infty}w(n)e^{-jn\omega} \\ &= \sum\limits_{n=0}^{L-1}e^{-jn\omega} \\ &= \frac{1 - e^{-jL\omega}}{1 - e^{-j\omega}} \\ &= \frac{1 - \cos(L\omega) + j\sin(L\omega)}{1 - \cos(j\omega) + j\sin(j\omega)} \\ &= \frac{2\sin^{2}(\frac{L\omega}{2}) + 2j\sin(\frac{L\omega}{2})\cos{\frac{L\omega}{2}}}{2\sin^{2}(\frac{\omega}{2}) + 2j\sin(\frac{\omega}{2})\cos{\frac{\omega}{2}}} \\ &= \frac{\sin(\frac{L\omega}{2})}{\sin(\frac{\omega}{2})}\cdot \frac{\cos(\frac{L\omega}{2}) - j\sin(L\omega)}{\cos(\frac{\omega}{2}) - j\sin(\omega)} \\ &= \frac{\sin(\frac{L\omega}{2})}{\sin(\frac{\omega}{2})} e^{-\frac{j(L-1)\omega}{2}} \end{align*}

我们来分析窗函数的幅度频谱函数W(ω)=sin(Lω2)sin(ω2)x(π,π)|W(\omega)| = \dfrac{\sin(\frac{L\omega}{2})}{\sin(\frac{\omega}{2})}\quad x\in(-\pi, \pi)

窗函数的幅度频谱函数的图像
窗函数的幅度频谱函数的图像

如上图所示,在(π,π)(-\pi, \pi)内,窗函数的频谱会有2L22\lfloor\dfrac{L}{2}\rfloor个零点,其中频谱强度最大的为原点,我们定义主瓣宽度为:

ΔωW=2πL\Delta \omega_{W} = \frac{2\pi}{L}

可以看到,绝对值为主瓣内的频谱占据了所有频谱的绝大部分能量,而旁瓣,也即频率绝对值在(2πL,π)(\dfrac{2\pi}{L}, \pi)之间的部分其实相当于能量的损耗,也即出现了频率泄露

分辨率问题

我们考虑下面这个例子:

x(n)=A1ejω1n+A2ejω2nx(n) = A_{1}e^{j\omega_{1}n} + A_{2}e^{j\omega_{2}n}

很明显其频谱为:

X(ω)=A1δ(ωω1)+A2δ(ωω2)X(\omega) = A_{1}\delta(\omega - \omega_{1}) + A_{2}\delta(\omega - \omega_{2})

画出图像可以看出,只要ω1ω2\omega_{1}\neq \omega_{2},这两个冲激函数就不会重叠,因此其实他的分辨率是无限高的

但是我们加窗之后有:

xL(n)=A1ejω1n+A2ejω2nn=0,1,L1x_{L}(n) = A_{1}e^{j\omega_{1}n} + A_{2}e^{j\omega_{2}n} \quad n = 0, 1, \dots L-1

频谱为:

XL(ω)=A1W(ωω1)+A2W(ωω2)X_{L}(\omega) = A_{1}W(\omega - \omega_{1}) + A_{2}W(\omega - \omega_{2})

加窗后的频谱函数
加窗后的频谱函数

也即Δω\Delta \omega越小,分辨的难度越大,我们定义不可分辨的范围是二者的零点进入了对方的主瓣内,也即可以分辨的范围是:

ΔωΔωW=2πL\Delta\omega \geq \Delta\omega_{W} = \frac{2\pi}{L}

因此在这个例子中,如果希望能清晰分辨,窗的宽度应该满足L2π/ΔωL \geq 2\pi/\Delta\omega

针对DTFT一题作业的思考

作业原题如下:

已知x(n)x(n)的DTFT为X(ω)X(\omega),试求x(2n+1)x(2n+1)的DTFT

常规做法为:

注意到:

X(ω)=n=x(n)ejnωX(ω+π)=n=x(n)ejn(ω+π)=n=x(n)ejnωejnπ=n=(1)nx(n)ejnω\begin{align*} X(\omega) &= \sum\limits_{n=-\infty}^{\infty}x(n)e^{-j n\omega} \\ X(\omega + \pi) &= \sum\limits_{n=-\infty}^{\infty}x(n)e^{-j n(\omega + \pi)} \\ &= \sum\limits_{n=-\infty}^{\infty}x(n)e^{-j n\omega}e^{-j n \pi} \\ &= \sum\limits_{n=-\infty}^{\infty}(-1)^{n}x(n)e^{-j n\omega}\end{align*}

因此我们有:

DTFT[x(2n+1)]=n=x(2n+1)ejnω=ejω2n=x(2n+1)ej(2n+1)ω2=ejω2X(ω/2)X((ω/2)+π)2\begin{align*} \mathrm{DTFT}[x(2n+1)] &= \sum\limits_{n=-\infty}^{\infty}x(2n+1)e^{-jn\omega} \\ &= e^{j\frac{\omega}{2}}\sum\limits_{n=-\infty}^{\infty}x(2n+1)e^{-j (2n + 1)\frac{\omega}{2}} \\ &= e^{j\frac{\omega}{2}}\frac{X(\omega/2) - X((\omega / 2) + \pi)}{2}\end{align*}

这题让我们不禁开始思考,我们能否求出采样频率经过任意线性变换之后得到的新信号x(an+b)x(an+b),其中a,bZa, b \in \mathbb{Z},其DTFT与之前的之间有什么关系呢

注意到,我们在上述过程,即a=2a = 2时,利用了X(ω+0)X(\omega + 0)X(ω+π)X(\omega + \pi)两个频谱函数进行叠加,而00π\pi恰好是z(c)=ej(2c)1z(c) = e^{j\cdot(2c)} - 1的两个零点!

记:

ck=2kπaλk=ejckk=0,1,,a1\begin{align*} c_{k} &= \frac{2k\pi}{a} \\ \lambda_{k} &= e^{jc_{k}} \\ k &= 0, 1, \dots, a - 1 \end{align*}

λk\lambda_{k}aa次单位根

此时有:

Xk(ω)=X(ωck)=n=x(n)ejn(ωck)=n=λknx(n)ejnω\begin{align*} X_{k}(\omega) &= X(\omega - c_{k}) \\ &= \sum\limits_{n=-\infty}^{\infty}x(n)e^{-j n(\omega - c_{k})} \\ &= \sum\limits_{n=-\infty}^{\infty}\lambda_{k}^{n}x(n)e^{-jn\omega} \end{align*}

我们知道对于MM次单位根与任意非负整数rr,存在:

m=0M1(λr)m={1λrM1λr=0r>0Mr=0\begin{align*} \sum\limits_{m=0}^{M-1}(\lambda^{r})^{m} &= \begin{cases}\frac{1 - \lambda^{rM}}{1 - \lambda^{r}} = 0 & r > 0 \\ M & r = 0 \end{cases} \end{align*}

n=qa+rn = qa + r,则Xk(ω)X_{k}(\omega)可变化为:

Xk(ωa)=n=λk(qa+r)x(n)ej(qa+r)ωa=λkrn=x(n)ejqω+rωa\begin{align*} X_{k}(\frac{\omega}{a}) &= \sum\limits_{n=-\infty}^{\infty}\lambda_{k}^{(qa + r)}x(n)e^{-j(qa + r)\frac{\omega}{a}} \\ &= \lambda_{k}^{r}\sum\limits_{n=-\infty}^{\infty}x(n)e^{-jq\omega + \frac{r\omega}{a}} \end{align*}

于是乎,我们有:

k=0a1Xk(ωa)=n=((k=0a1λkr)x(n)ejqωjrωa)=aq=x(qa)ejqω=aDTFT[x(an)]\begin{align*} \sum\limits_{k=0}^{a-1}X_{k}(\frac{\omega}{a}) &= \sum\limits_{n=-\infty}^{\infty}\bigg(\Big(\sum\limits_{k=0}^{a-1}\lambda_{k}^{r}\Big)x(n)e^{-jq\omega - \frac{jr\omega}{a}}\bigg) \\ &= a\sum\limits_{q=-\infty}^{\infty}x(qa)e^{-jq\omega} \\ &= a\mathrm{DTFT}[x(an)] \end{align*}

我们便得到了DTFT[x(an)]\mathrm{DTFT}[x(an)]的表达式

DTFT[x(an)]=1ak=0a1X(ω2kπa)\begin{align*} \mathrm{DTFT}[x(an)] &= \frac{1}{a}\sum\limits_{k=0}^{a-1}X(\frac{\omega - 2k\pi}{a} ) \\ \end{align*}

那怎么对应的求出DTFT[x(an+b)]\mathrm{DTFT}[x(an + b)]的表达式呢,显然不能直接套用时移的公式,因为我们不能保证aba \,|\, b,我们观察上述推导过程中将Xk(ωa)X_{k}(\frac{\omega}{a})求和的一步,这一步通过单位根等比求和筛选出了所有满足ana \,|\, n的n,而我们现在需要的是筛选出n mod ban\text{ mod }b\equiv a的部分,于是我们可以对前面的等比数列做一个变换:

k=0a1λkbXk(ωa)=n=((k=0a1λkrb)x(n)ejqωjrωa)=aq=x(aq+b)ejqωjbωa=aejbωaDTFT[x(an+b)]\begin{align*} \sum\limits_{k=0}^{a-1}\lambda_{k}^{-b}X_{k}(\frac{\omega}{a}) &= \sum\limits_{n=-\infty}^{\infty}\bigg(\Big(\sum\limits_{k=0}^{a-1}\lambda_{k}^{r-b}\Big)x(n)e^{-jq\omega - \frac{jr\omega}{a}}\bigg) \\ &= a\sum\limits_{q=-\infty}^{\infty}x(aq+b)e^{-jq\omega-\frac{jb\omega}{a}} \\ &= ae^{-\frac{jb\omega}{a}}\mathrm{DTFT}[x(an + b)] \end{align*}

即得:

DTFT[x(an)]=1ak=0a1X(ω2kπa)DTFT[x(an+b)]=1aejωbak=0a1λkbX(ω2kπa)\begin{align*} \mathrm{DTFT}[x(an)] &= \frac{1}{a}\sum\limits_{k=0}^{a-1}X(\frac{\omega - 2k\pi}{a} ) \\ \mathrm{DTFT}[x(an + b)] &= \frac{1}{a}e^{j\omega \frac{b}{a}}\sum\limits_{k=0}^{a-1}\lambda_{k}^{-b}X(\frac{\omega - 2k\pi}{a}) \\\end{align*}