語音訊號處理入門系列(2)——訊號處理中的幾個關鍵概念

凌逆戰發表於2020-12-21

數字訊號

  訊號是資訊的物理載體,資訊是訊號的具體內容。

連續時間訊號:在連續時間範圍內定義的訊號,訊號的幅度可以是連續的(模擬訊號),也可以是離散的

離散時間訊號時間為離散變數的訊號,即獨立變數時間被量化了,而幅度仍是連續變化的

數字訊號時間離散而幅度量化的訊號

從模擬訊號到數字訊號

我們經常處理語音的時候會發現兩個常用的格式:“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
Transform

連續
非週期

$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
Series

連續
週期

$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後的頻譜是共軛對稱的。

 

相關文章