數字訊號
訊號是資訊的物理載體,資訊是訊號的具體內容。
連續時間訊號:在連續時間範圍內定義的訊號,訊號的幅度可以是連續的(模擬訊號),也可以是離散的
離散時間訊號:時間為離散變數的訊號,即獨立變數時間被量化了,而幅度仍是連續變化的
數字訊號:時間離散而幅度量化的訊號
從模擬訊號到數字訊號
我們經常處理語音的時候會發現兩個常用的格式:“pcm”和“wav”,這兩種格式其實本質上是一樣的,pam是脈衝編碼調製(pulse code modulation)的一個縮寫,pcm的實質就是這三個步驟:取樣量化編碼。
數字訊號基本運算
移位:設某一序列x(n),當m>0 時,x(n-m) 表示序列x(n) 逐項依次延時(右移)m 位。(左加右減)
翻褶:設某一序列x(n),則x(-n) 是以n=0 的縱軸為對稱軸將x(n) 加以翻褶。
和:$z(n)=x(n)+y(n)$
積:$z(n)=x(n)·y(n)$
累加:$y(n)=\sum_{k=-\infty}^{n}x(k)$
差分 (一階):$y(n)=x(n)-x(n-1)$
尺度變換:對於序列$x(n)$, 形如x(mn)或者x(\frac{n}{m})(m為正整數)的序列為$x(n)$的尺度變換序列。
以$x(2n)$為例,是以低一倍的抽樣頻率從x(n)中每隔兩點取一點,這種運算稱為抽取,常用於語音訊號的下采樣,通常在抽取之前要加入一個防混疊的濾波器。
類似的,$x(\frac{n}{2})$ 稱為插值,在語音訊號每兩個點之間插入一個值,因為我們不知道這個插入的值是多少,一般插0,本身資訊並沒有增加,通常在插值之後我們還需要一個平滑,也就是在插入這些零點之後,後接一個平滑濾波器,利用相鄰取樣點之間的取值,把插入的值算出來,常用於語音升取樣。
線性卷積 (linear convolution) : $y(n)=\sum_{m=-\infty}^{\infty} x(m) h(n-m)=x(n) * h(n)$
由卷積的定義可知,卷積在圖形表示上可分為四步:翻褶、移位、相乘、相加。
$x_n$的長度為$N_1$,$h(n)$的長度為$N_2$,卷積之後訊號$y(n)$的長度為$N_1+N_2-1$
線性卷積的應用:模擬遠場資料
近講純淨語音訊號卷積一個房間衝擊響應(RIR)=遠場語音訊號(帶有混響)
圓周移位 (circular shift) :$x_{m}(n)=x((n+m))_{N} R_{N}(n)$
其中,$x((n+m))_N$表示$x(n)$經過週期( N )延拓後的序列,再移位$m$,$R_N(n)$為取主值序列$R_{N}(n)=\left\{\begin{array}{ll}1 & 0 \leqslant n \leqslant N-1 \\0 & \text { other } n\end{array}\right.$
圓周卷積 (circular convolution):
如果$x_1(n)$和$x_2(n)$都是長度為 N 的有限長序列$0\leq n\leq N-1$,並且
$\left\{\begin{matrix}D F T\left[x_{1}(n)\right]=X_{1}(k)\\ D F T\left[x_{2}(n)\right]=X_{2}(k)\end{matrix}\right.$==》$Y(k)=X_{1}(k) X_{2}(k)$
則$x_1(n)$和$x_2(n)$的圓周卷積定義為
$$\begin{aligned}
y(n)=I D F T[Y(k)] &=\left[\sum_{m=0}^{N-1} x_{1}(m) x_{2}((n-m))_{N}\right] R_{N}(n) \\
&=\left[\sum_{m=0}^{N-1} x_{2}(m) x_{1}((n-m))_{N}\right] R_{N}(n)
\end{aligned}$$
結論:在時域的圓周卷積相當於在頻域這兩個傅立葉變換的乘積
注意:與線性卷積相比,圓周卷積多了 週期延拓 和 取主值序列 兩個步驟。因此必須指定圓周卷積的點數 N 。
圓周卷積和線性卷積的關係
圓周卷積
$$\begin{aligned}
y(n)=I D F T[Y(k)] &=\left[\sum_{m=0}^{N-1} x_{1}(m) x_{2}((n-m))_{N}\right] R_{N}(n) \\
&=\left[\sum_{m=0}^{N-1} x_{2}(m) x_{1}((n-m))_{N}\right] R_{N}(n)
\end{aligned}$$
線性卷積
$$y(n)=\sum_{m=-\infty}^{\infty} x(m) h(n-m)=x(n) * h(n)$$
給定兩個有限長序列$x_1(n)$和$x_2(n)$,他們的長度分別為:$N_1=5$,$N_2=3$。相應的取值如下圖,我們重點研究$0\leq n\leq N-1$這個區間內,線性卷積和圓周卷積的關係。
一般的,如果兩個有限長序列的長度為$N_1$和$N_2$,且滿足$N_1\geq N_2$,則圓周卷積的後N_1-N_2+1個點,與線性卷積的結果一致。
線性相關(linear correlation) :$r_{x y}(m)=\sum_{n=-\infty}^{\infty} x(n) y^{*}(n-m)$
圓周相關(circular correlation):
如果:$R_{x y}(k)=X(k) Y^{*}(k)$
則$x(n)$和$y(n)$的圓周相關定義為:
$$r_{x y}(m)=I D F T\left[R_{x y}(k)\right]=\sum_{n=0}^{N-1} y^{*}(n) x((n+m))_{N} R_{N}(m)=\sum_{n=0}^{N-1} x(n) y^{*}((n-m))_{N} R_{N}(m)$$
圓周相關和線性相關的關係線:一般的,如果兩個有限長序列的長度為$N_1$和$N_2$,且滿足$N_1\geq N_2$,則有圓周相關的前$N_1-N_2+1$個點,與線性相關的結果一致。
取樣定理
模擬訊號的取樣:
取樣:利用週期性衝激函式序列,從連續訊號$x_a(t)$中抽取一系列的離散值,得到取樣訊號,即離散時間訊號 $\hat{x}_a(t)$。
衝激函式序列:$公式2.1:\delta_{T}(t)=\sum_{m=-\infty}^{\infty} \delta(t-m T)$
則,取樣訊號:$公式2.2:\hat{x}_{a}(t)=x_{a}(t) \cdot \delta_{T}(t)$
將(2.1)代入(2.2),得:$\hat{x}_{a}(t)=\sum_{m=-\infty}^{\infty} x_{a}(t) \delta(t-m T)$
由於$\delta(t-mT)$只在$t=mT$處於不為零,因此:
$$\hat{x}_{a}(t)=\sum_{m=-\infty}^{\infty} x_{a}(m T) \delta(t-m T)$$
取樣後訊號頻譜的變化
$$\hat{x}_{a}(t)=x_{a}(t) \cdot \delta_{T}(t)$$
等式兩端取DTFT之後
$$\hat{X}_{a}(j \Omega)=\frac{1}{2 \pi}\left[\Delta_{T}(j \Omega) * X_{a}(j \Omega)\right]=\frac{1}{T} \sum_{k=-\infty}^{\infty} X_{a}\left(j\left(\Omega-k \Omega_{s}\right)\right)$$
其中$\Delta_{T}(j \Omega)=D T F T\left[\delta_{T}(t)\right]$
結論:頻譜產生了週期延拓 ,週期為$\Omega_s$。因此,只要各延拓分量與原頻譜分量不發生頻率交疊,則可以恢復原訊號。
公式推導
$$\hat{X}_{a}(j \Omega)=\frac{1}{2 \pi}\left[\Delta_{T}(j \Omega) * X_{a}(j \Omega)\right]=\frac{1}{T} \sum_{k=-\infty}^{\infty} X_{a}\left(j\left(\Omega-k \Omega_{s}\right)\right)$$
其中$\Delta_{T}(j \Omega)=D T F T\left[\delta_{T}(t)\right]$,由於$\delta_T(t)$是週期訊號(週期為 T ),則可以表示成傅立葉級數
$$\delta_{T}(t)=\sum_{k=-\infty}^{\infty} A_{k} e^{j k \Omega_{s} t}$$
其中$\Omega_{s}=\frac{2 \pi}{T}$為取樣頻率,
$$\begin{aligned}
A_{k} &=\frac{1}{T} \int_{T} \delta_{T}(t) e^{-j k \Omega_{d} t} d t=\frac{1}{T} \int_{T} \sum_{m=-\infty}^{\infty} \delta(t-m T) e^{-j k \Omega_{c} t} d t \\
&=\frac{1}{T} \int_{T} \delta(t) e^{-j k \Omega_{s} t} d t=\frac{1}{T}
\end{aligned}$$
因為在一個積分割槽間T$[-\frac{T}{2}, \frac{T}{2}]$內,只有一個衝激函式。
奈奎斯特取樣定理
要想取樣後能夠無失真的還原出原訊號,則取樣頻率必須大於兩倍訊號譜的最高頻率。
$$f_{s}>2 f_{h}$$
空間“取樣定理
頻域 | 空域 | |
取樣 | 衝激函式序列 | 麥克風 |
取樣率 | $f_s$ | $d$ |
訊號的最高頻率 | $f_h$ | $\lambda_{min}$ |
防混疊條件 | $f_s>2f_h$ | $d<\frac{\lambda_{min}}{2}$ |
時頻分析與傅立葉變換
變換是一種常用的數學工具
其中$e_x$和$e_y$構成標準正交基 ,滿足如下條件前
$$\left\{\begin{array}{c}
\left\|\mathbf{e}_{x}\right\|=\left\|\mathbf{e}_{y}\right\|=1 \\
\left\langle\mathbf{e}_{x}, \mathbf{e}_{y}\right\rangle=0
\end{array}\right.$$
前面的係數表示平面中的點在這個基向量方向上有多少個單位長度。
利用正弦波模擬方波
何為“頻域”?
傅立葉級數 (Fourier Series)
如果$x(t)$是一個週期為$T_0$的週期性連續函式,則$x(t)$可展開成傅立葉級數:
$$\begin{array}{l}
x(t)=\sum_{k=-\infty}^{\infty} X\left(j k \Omega_{0}\right) e^{j k \Omega_{0} t} \\
X\left(j k \Omega_{0}\right)=\frac{1}{T_{0}} \int_{-T_{0} / 2}^{T_{0} / 2} x(t) e^{-j k \Omega_{0} t} d t
\end{array}$$
解讀:$\Omega_{0}=2 \pi F=\frac{2 \pi}{T_{0}}$傅立葉級數係數的計算,實質上是通過內積的方式,“抽取”對應頻率分量的係數。
連續傅立葉變換 (Fourier Transform)
連續非週期訊號$x(t)$的傅立葉變換可以表示為:
$$\begin{array}{l}
X(j \Omega)=\int_{-\infty}^{\infty} x(t) e^{-j \Omega t} d t \\
x(t)=\frac{1}{2 \pi} \int_{-\infty}^{\infty} X(j \Omega) e^{j \Omega t} d \Omega
\end{array}$$
解讀:這應該是大家在“訊號與系統”裡學到的第一個傅立葉變換公式。它仍然是通過內積的方式,“抽取”對應頻率分量的係數。與傅立葉級數不同的是,由於時域訊號非週期,因此頻域中是連續譜。
離散時間傅立葉變換 (Discrete Time Fourier Transform)
離散非週期訊號 x(n) 的 DTFT 可以表示為:
$$\begin{array}{l}
X\left(e^{j \omega}\right)=\sum_{n=-\infty}^{\infty} x(n) e^{-j \omega n} \\
x(n)=\frac{1}{2 \pi} \int_{-\pi}^{\pi} X\left(e^{j \omega}\right) e^{j \omega n} d \omega
\end{array}$$
解讀:DTFT 與傅立葉級數互為正反變換。
離散傅立葉變換 (Discrete Fourier Transform)
離散週期訊號 x(n) 的 DFT 可以表示為:
$$\begin{array}{l}
X(k)=\sum_{n=0}^{N-1} x(n) e^{-j \frac{2 \pi}{N} n k}=\sum_{n=0}^{N-1} x(n) W_{N}^{n k} \\
x(n)=\frac{1}{N} \sum_{k=0}^{N-1} X(k) e^{j \frac{2 \pi}{N} n k}=\frac{1}{N} \sum_{k=0}^{N-1} X(k) W_{n}^{-n k}
\end{array}$$
其中$W_{N}=e^{-j \frac{2 \pi}{N}}$
解讀:DFT 只針對有限長序列或週期序列。
DFT相當於對 DTFT 中的正變換加以取樣,造成時域訊號的週期性,因此時域訊號應限制在一個週期內。 凡是用到離散傅立葉變換的時候,有限長序列都是作為週期序列的一個週期來表示的,都隱含有周期性意義。
離散傅立葉變換的矩陣形式
定義Fourier 矩陣:
$$\mathbf{F}=\left[\begin{array}{ccccc}
1 & 1 & 1 & \ldots & 1 \\
1 & W_{N} & W_{N}^{2} & \ldots & W_{N}^{N-1} \\
\vdots & \vdots & \vdots & \vdots & \vdots \\
1 & W_{N}^{N-1} & W_{N}^{2(N-1)} & \ldots & W_{N}^{(N-1)(N-1)}
\end{array}\right] \quad W_{N=e^{-j \frac{2 \pi}{N}}}$$
Fourier矩陣的性質:$\mathbf{F}^{H} \mathbf{F}=\mathbf{F} \mathbf{F}^{H}=N \mathbf{I}$--->$\mathbf{F}^{-1}=\frac{1}{N} \mathbf{F}^{H}$
$$\begin{array}{l}
\mathbf{X}(k)=\mathbf{F x}(n) \\
\mathbf{x}(n)=\mathbf{F}^{-1} \mathbf{X}(k)
\end{array}$$
傅立葉變換的四種形式
時間函式 | 正變換 | 反變換 | 頻率函式 | |
Fourier |
連續 |
$X(j \Omega)=\int_{-\infty}^{\infty} x(t) e^{-j \Omega} d t$ | $x(t)=\frac{1}{2 \pi} \int_{-\infty}^{\infty} X(j \Omega) e^{i \Omega t} d \Omega$ |
非週期 |
Fourier |
連續 |
$X\left(j k \Omega_{0}\right)=\frac{1}{T_{0}} \int_{-T_{0} / 2}^{T_{0} / 2} x(t) e^{-j k \Omega_{0} t} d t$ | $x(t)=\sum_{k=-\infty}^{\infty} X\left(j k \Omega_{0}\right) e^{j k \Omega_{0} t}$ |
非週期 |
DTFT |
離散 |
$X\left(e^{j \omega}\right)=\sum_{n=-\infty}^{\infty} x(n) e^{-j \omega n}$ | $x(n)=\frac{1}{2 \pi} \int_{-\pi}^{\pi} X\left(e^{j \omega}\right) e^{j \omega n} d \omega$ |
週期 |
DFT |
離散 |
$X(k)=\sum_{n=0}^{N-1} x(n) W_{N}^{n k}$ | $x(n)=\frac{1}{N} \sum_{k=0}^{N-1} X(k) W_{n}^{-n k}$ |
週期 |
離散傅立葉變換的幾個問題
頻譜洩漏
頻譜洩漏是指由於訊號截斷造成的原始訊號頻譜擴散現象。
產生頻譜洩漏的原因是對訊號的截斷 。訊號的截斷相當於在原始訊號$x(n)$與一個窗函式$w(n)$相乘,在頻域中相當於各自頻譜的卷積過程。卷積的結果造成原始訊號頻譜的“擴散”(或拖尾、變寬),這就是頻譜洩漏。
柵欄效應
因為DFT 計算頻譜只限制在離散點上的頻譜,也就是$F_0$的整數倍處的譜,而無法看到連續頻譜函式,這就像通過一個“柵欄”觀看景象一樣,只能在離散點的地方看到真實景象。這種現象稱為“柵欄效應”。
減小柵欄效應的方法就是要是頻域抽樣更密,即增加頻域抽樣點數,就好像距離“柵欄”的距離邊遠一些。在不改變時域訊號的情況下,必然是在時域訊號末端 補零 。補零後的時域資料,在頻譜中的譜線更密,原來看不到的譜分量就有可能看到了。
語音訊號DFT的共軛對稱性
時域中的語音訊號,經過離散傅立葉變換DFT後的頻譜是共軛對稱的。