数字信号处理第三章知识小结

引言

  1. 连续傅里叶变换(FT):连续时间,连续频率的傅里叶变换
  2. 傅里叶级数(FS):连续时间,离散频率的傅里叶变换
  3. 序列的傅里叶变换(DTFT):离散时间,连续频率的傅里叶变换
  4. 离散傅里叶变换(DFT):离散时间,离散频率的傅里叶变换

前三种变换总有一个域不是离散的,计算机不能直接计算;希望的变换:不仅在时间域上离散,在频率域上也离散(DFT)

离散时间信号级数及其性质(DFS)

离散傅里叶级数(DFS)

周期序列表示

\[ 1.\widetilde{x}(n)=\widetilde{x}(n+kN)\\\widetilde{x}(n)=x((n))_N\\\widetilde{x}(n)=\sum_{r=-\infty}^\infty x(n-rN) \]

其中k,r为任意整数,N-周期,其ZT不收敛

在《信号与线性系统》中,用傅里叶级数表示连续时间周期信号。对应地,可用离散傅里叶级数表示离散周期序列,即用周期为N的复指数序列来表示

\[ \widetilde{x}(n)=\frac{1}{N}\sum_{k=0}^{N-1}\widetilde{X}(k)e^{j\frac{2\pi}{N}kn} \]

两边\(\times e^{-j\frac{2\pi}{N}nr}\)并从0-N-1求和并交换左右求和次序得:

\[ \sum_{k=0}^{N-1}\widetilde{x}(n)e^{-j\frac{2\pi}{N}nr}=\widetilde{X}(r) \]

用k置换r 得到

\[ \sum_{k=0}^{N-1}\widetilde{x}(n)e^{-j\frac{2\pi}{N}nk}=\widetilde{X}(k) \]

\(W_N=e^{-j\frac{2\pi}{N}}\)(旋转因子),可得周期序列的傅里叶级数变换对

\[ \widetilde{x}(n)=IDFS[\widetilde{X}(k)]=\frac{1}{N}\sum_{k=0}^{N-1}\widetilde{X}(k)W_N^{-kn},-\infty<n<\infty\\\widetilde{X}(k)=DFS[\widetilde{x}(n)]=\sum_{k=0}^{N-1}\widetilde{x}(n)W_N^{kn},-\infty<k<\infty \]

注:\(\widetilde{x}(n),\widetilde{X}(K)\)都是离散和周期性的,且周期为N,DFS只取k次谐波分量中N个谐波分量;n为离散时间变量,理解为nT;k是离散频率变量,理解为\(\Delta wk\),DFS和IDFS具有唯一性

离散傅里叶级数的性质

  1. 线性性

  2. 周期序列的移位: \[ 设DFS[\widetilde{x}(n)]=\widetilde{X}(k),则:DFS[\widetilde{x}(n-m)]=W_N^{mk}\widetilde{X}(k)\\IDFS[\widetilde{X}(k-l)]=W_N^{-nl}\widetilde{x}(n) \]

  3. 周期卷积:设\(\widetilde{x_1}(n),\widetilde{x_2}(n)\)都为周期为N的周期序列,且 \[ \widetilde{X_1}(k)=\sum_{m=0}^{N-1}\widetilde{x_1}(m)W_N^{km},\\\widetilde{X_2}(k)=\sum_{r=0}^{N-1}\widetilde{x_1}(m)W_N^{kr},\\\widetilde{Y}(k)=\widetilde{X_1}(k)\widetilde{X_2}(k),\\则\widetilde{y}(n)=IDFS[\widetilde{X_1}(k)\widetilde{X_2}(k)]=\sum_{m=0}^{N-1}\widetilde{x_1}(m)\widetilde{x_2}(n-m) \]

    结论:周期卷积的操作步骤与非周期序列的线性卷积相同,不同的是周期卷积仅在一个周期内求和。周期卷积中\(\widetilde{x_1}(m),\widetilde{x_2}(n-m)\)对m是周期性的,周期为N,\(\widetilde{y}(n)\)周期为N,且周期卷积满足交换律

    同理可得:如果\(\widetilde{y}(n)=\widetilde{x_1}(n)\widetilde{x_2}(n)\),则有\(\widetilde{Y}(k)=DFS[\widetilde{x_1}(n)\widetilde{x_2}(n)]=\frac{1}{N}\widetilde{X_1}(k)*\widetilde{X_2}(k)\)

离散傅里叶变换及其性质

有限长序列的Fourier变换称为离散Fourier变换(DFT),定义方法:由DFS导出DFT。

  1. 将有限长序列\(x(n)\)延拓成周期序列\(\widetilde{x}(n)\)
  2. 求周期序列\(\widetilde{x}(n)\)的DFS得\(\widetilde{X}(k)\)
  3. 取出\(\widetilde{X}(k)\)的一个周期作为\(x(n)\)的DFT \[ X(k)=\widetilde{X}(k)R_N(k) \]

经由上诉步骤可由DFS得出有限长序列的DFT为

\[ x(n)=IDFT[X(k)]=\frac{1}{N}\sum_{k=0}^{N-1}X(k)e^{j\frac{2\pi}{N}kn}=\begin{cases} \frac{1}{N}\sum_{k=0}^{N-1}X(k)W_N^{-kn},0\le n\le N-1\\ 0,others \end{cases}\\ X(k)=DFT[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}kn}=\begin{cases} \sum_{n=0}^{N-1}x(n)W_N^{kn},0\le k\le N-1\\ 0,others \end{cases} \]

注:\(x(n),X(K)\)都是有限长的,取值范围为\(0\sim N-1\),n为离散时间变量,理解为nT,k是离散频率变量,理解为\(\Delta wk\),DFT与DFS无本质区别,DFT是DFS的主值,且隐含周期性,具有唯一性。

用矩阵计算N点DFT

DFT的性质

旋转因子的性质

  1. 对称性:\((W_N^k)^*=W_N^{N-k}\)
  2. 周期性:\(W_N^{k+mN}=W_N^k\)
  3. 换底:\(W_N^k=W_{mN}^{mk}\)

\(\frac{N}{2},\frac{N}{4}\)点DFT为

\[ X(k)=\sum_{n=0}^{N/2-1}x(n)W_{N/2}^{kn},k=0,1,...,N/2-1\\X(k)=\sum_{n=0}^{N/4-1}x(n)W_{N/4}^{kn},k=0,1,...,N/4-1 \]

DFT与ZT/FT的关系:有限长序列\(x(n)\)的DFT系数\(X(k)\)可看作其ZT在单位圆上等角距取样的样本值:\(X(k)=X(z)|_{z=W_N^{-k}}\),有限长序列\(x(n)\)的DFT系数\(X(k)\)可看作其FT在一个周期\(2\pi\)中等间距取样的样本值,取样间隔\(\Delta w=\frac{2\pi}{N}:X(k)=X(e^{jw})|_{w=\frac{2\pi}{N}k}=X(e^{j\frac{2\pi}{N}k})\)

离散傅立叶变换的性质:

  1. 线性

  2. 复共轭序列的DFT \(DFT[x^*(n)]=X^*(N-k),0\le k \le N-1\) 由上式可知 \[\begin{cases} Re[X(k)]=Re[X(N-k)]\\ Im[X(k)]=-Im[X(N-k)] \end{cases}\] 进一步可以方便的由一个复序列的DFT求得两个实序列的DFT \[w(n)=x(n)+jy(n)\\W(k)=X(k)+jY(k)=Re[X(k)]-Im[Y(k)]+j(Im[X(k)]+Re[Y(k)])\\\because x(n)=\frac{1}{2}[w(n)+w^*(n)]\qquad y(n)=\frac{1}{2j}[w(n)-w^*(n)]\\\therefore X(k)=\frac{1}{2}[W(k)+W^*(N-k)]\qquad Y(k)=\frac{1}{2j}[W(k)-W^*(N-k)]\]

  3. 对称性

    • 有限长共轭对称序列\(x_{ep}(n)=x_{ep}^*(N-n)\),也可称为圆周共轭对称序列。
    • 有限长共轭反对称序列\(x_{op}(n)=-x_{op}^*(N-n)\)
    • 变换区间:\(0\le n \le N-1\),以n=N/2为对称点
    • 频域定义:共轭对称序列:\(X_{ep}(k)=X_{ep}^*(N-k)\),共轭反对称序列:\(X_{op}(k)=-X_{op}^*(N-k)\)
    • 序列分解:
      • \(x_{ep}(n)=\frac{1}{2}[x(n)+x^*(N-n)],x_{op}(n)=\frac{1}{2}[x(n)-x^*(N-n)]\)
      • \(DFT[jx_i(n)]=X_{op}(k) \quad DFT[x_r(n)]=X_{ep}(k)\\DFT[x_{ep}(n)]=X_R(k) \quad DFT[x_{op}(n)]=jX_I(k)\)
  4. 序列的循环移位:一个序列的循环移位定义为:\(y(n)=x((n+m)_N)\cdot R_N(n)\),序列循环移位后DFT为:\(Y(k)=DFT[x((n+m)_N)R_N(n)]=W_N^{-km}X(k)\),由时域频域的对偶关系,\(X(k)\)循环移位时,设\(Y(k)=X((k+l))_N\cdot R_N(k)\),则\(y(n)=IDFT[X((k+l))_NR_N(k)]=W_N^{nl}x(n)\)

  5. 循环卷积:对于两个长度均为N的序列\(x_1(n),x_2(n)\),其循环卷积定义为\(y(n)=\sum_{m=0}^{N-1}x_1(m)x_2((n-m))_NR_N(n)=\) 特点

    • 循环卷积的过程与周期卷积一样,只取周期卷积的主值
    • 循环卷积隐含周期性
    • 循环卷积在主值区间内进行,参与卷积的两个序列的长度和结果序列的长度均相等
    • 线性卷积与循环卷积计算步骤比较:
      • 线性卷积:反折、平移、相乘、积分(或相加)
      • 循环卷积:反折、周期化、平移、相乘、相加

利用循环卷积计算线性卷积

循环卷积与线性卷积的对比图

由循环卷积求线性卷积

  1. \(L<N+M-1\)其循环卷积的结果与线性卷积不相等,但满足一定关系
  2. \(L\ge N+M-1\)两个长度为M,N的序列的线性卷积可用长度均为L的循环卷积来代替

频率取样

序列的几种变换之间的关系

  1. ZT与FT:\(X(z)|_{z=e^{jw}}=X(e^{jw})\) 单位圆上的ZT等于序列的FT
  2. LT与ZT:\(X(z)|_{z=e^{sT}}=\hat{X}_a(s)\) S平面->Z平面:S平面上的宽度为\(\frac{2\pi}{T}\)的水平带映射为整个平面,左半带映射到单位圆内,右半带映射成单位圆外,虚轴映射为单位圆
  3. DFT与ZT:\(X(k)=X(z)|_{z=W_N^{-k}}\) DFT是ZT在单位圆上等角距\(\frac{2\pi}{N}\)取样的样本值
  4. DFT与FT:\(X(k)=X(e^{jw})|_{w=\frac{2\pi}{N}k}=X(e^{j\frac{2\pi}{N}k})\),DFT是FT在一个周期等间距取样值,取样间隔\(\Delta w=\frac{2\pi}{N}\)

从N个取样值恢复\(x(n)\)

频域取样是指对时域已是离散,频域仍是连续信号。现在频域上进行抽样处理,使其频域也离散化。

在Z平面的单位圆上对序列的ZT进行等角距取样,将导致时间序列的周期延拓 取样后序列主值序列为\(x_N(n)=x_p(n)R_N(n)=[\sum_{r=-\infty}^{\infty}x(n+rM)]R_N(n)\)

对于长度为N的有限长序列,ZT取样即频率取样不失真的条件是取样点数M应等于或大于原序列的长度N

从N个取样值恢复\(X(z),X(e^{jw})\)

长度为N的序列\(x(n)\)的FT\(x(e^{jw})\)可通过Z平面单位圆上的N个取样值\(x(k)\),即N个频域取样值来恢复,其中用到了和第二章类似的思路通过内插函数\(\phi(z)\)\(x(k)\)相乘恢复

快速傅里叶变换

直接计算DFT对于计算机来说运算时间和资源占用非常大,因此本节将介绍两种常用的快速傅里叶变换算法(FFT)来用于DFT计算

时间抽取FFT算法

基本出发点:利用\(W_N^k\)的周期性和对称性,将DFT的计算分解成一些逐次减小的DFT计算;

分解规则::(1)对时间进行偶奇分(2)对频率进行前后分。

上面时间抽选FFT流图具有三个特点: ① 基本计算单元为一碟形; ② 输入为“混序”排列;输出为正序排列; ③ 具有“同址计算”特性。

  1. 蝶形计算: 对于任意\(N=2^M\),总可以通过M级分解成2点DFT计算,每次由\(\frac{N}{2}\)蝶形计算组成,如下图所示 计算方程为 \[\begin{cases} X_{m+1}(p)=X_m(p)+W_N^kX_m(q)\\ X_{m+1}(q)=X_m(p)-W_N^kX_m(q) \end{cases}\] 完成一次蝶形运算需要2次复加法和1次复乘法,因为完成\(N=2^M\)点的DFT计算需要\(log_2N\)级迭代计算,每级\(\frac{N}{2}\)个蝶形,蝶形数\(\frac{N}{2}log_2N\),完成N点的时间抽选FFT总计算量为:复乘法次数\(\alpha_F=\frac{N}{2}log_2N\),复加法次数\(\beta_F=Nlog_2N\),直接计算DFT需复乘法次数\(\alpha_D=N^2\),则\(\frac{\alpha_F}{\alpha_D}=\frac{log_2N}{2N}\)
  2. 同址计算: 蝶形计算的好处在于其是一个蝶形计算,输入的运算结果直接送到下一蝶形计算输入保存,中间不需要其他存储器,节省存储单元,N越大好处越明显
  3. 变址计算 从FFT流图可知,输入是混序排列,输出是正序排列,在实际计算中,输入的混序是通过输入正序排列按码位倒置的变址处理得到的,即 \[x(1)\rightarrow x(001)\Rightarrow x(100)\rightarrow x(4)\] 这样即可实现FFT的同址计算

频率抽取FFT算法

分解原则:(1)对时间前后分;(2)对频率偶奇分

N为合数的FFT算法

在前面两小节的讨论中,我们只涉及序列长度\(N=2^M\)的FFT算法,本节则将着重讨论如果序列长度\(N\neq2^M\)时的处理办法。通常有以下两种处理方法

  1. 用补零的办法将\(x(n)\)延长为\(2^M\),再使用基2FFT算法。由于有限长序列补零以后,只是频谱的取样点有所增加。
  2. 采用以任意数为基数的FFT算法。设N等于两个整数p和q的乘积,即\(N=p\cdot q\),则可将N点DFT分解成p个q点DFT或q个p点DFT来计算。

FFT应用

利用FFT对信号进行谱分析

所谓谱分析就是计算信号的频谱,包括振幅谱、相位谱和功率谱。设离散时间信号\(x(n)\)是从连续时间信号\(x_a(t)\)取样得到的,定义参数如下:

  1. T-取样周期(s)
  2. \(f_s\)-取样频率(Hz),\(f_s=\frac{1}{T}\)
  3. \(f_0\)-连续时间信号的最高频率(Hz)
  4. F-频率分辨率:指频域取样中两相邻点间的频率间隔(Hz)
  5. \(t_p\)-信号的最小记录长度(s),\(t_p=\frac{1}{F}\)
  6. N-一个记录长度中的取样数,\(t_p=NT\)

根据取样定理,为了避免混叠失真,要求

\[ f_s\ge2f_0\quad or \quad T\le \frac{1}{2f_0} \]

最小记录长度为:\(t_p=NT=\frac{1}{F}\),则取样点数N须满足条件\(N\ge\frac{2f_0}{F}\)