LOGO

NELSON's CORNER: 神奇的 DSP

No.44   1996 Sep.   p52~57,   by 陳錫棋 Nelson Chen, BV6ER, P.O. Box 20-71 Tainan



    在競爭劇烈的無線電收發機市場堙A曾經一度獨領風騷的旗艦機型,如 Kenwood 的 TS-950SDX、Icom 的 IC-781、Yaesu 的 FT-1000D,都正在淡出業餘市場的舞台,兩年來,三大收發機製造廠商分別推出新一代的主力機種,如 Kenwood 的 TS-870S、Icom 的 IC-775DSP、Yaesu 的 FT-1000MP,準備取代上一代的機種。

    長江後浪推前浪,江山代有才人出,本來就是自然界千古不變的道理,不足為奇。倒是新一代機種和上一代機種之間,究竟有何不同?做何改進?這就值得我們詳加探討了。細察這些新一代主力機種的廣告型錄,不難發現,DSP 功能乃是主要的宣傳重點,除此之外,別無新意。雖然 TS-950SDX 已具備 DSP 功能,可是 TS-8705 更大大地增強功力,將 DSP 推進到中頻級。到底這個 DSP 是何方神聖?有何魅力?居然能在短短的幾年之內,一路竄昇,躍居火腿界的新寵。

    其實早在這些新一代主力機種推出之前,就已經有廠商以 DSP 技術設計出外接的雜訊消除器,如 JFS 的 NRF-7、NIR-10、NF-60,還有 Timewave Technology 的 DSP-9、DSP-59 等。這些以軟體控制的 DSP 式雜訊消除器,具有比類比電子的傳統硬體電路式雜訊消除器更佳的性能。雖然只安裝在收發機的聲頻輸出和揚聲器之間,已經足夠讓使用者嘆為觀止了。一旦再被設計成收發機內建式的功能,則不但可以處理聲頻的訊號,還可以往前推到中頻級,對中頻訊號加以處理,甚至訊號的調變和解調,也不成問題。這種內建式的 DSP 功能 ,將大幅提高接收和發射訊號的品質,也相對地提昇訊號的可讀性,的確是一種非常有用的工具。


何謂 DSP

    數位訊號處理 (Digital Signal Processing) 簡稱 DSP,是一種以數位方式處理訊號的方法,有別於傳統類比電子的處理方式。

    DSP 的方法首先要以一定的週期來取樣 (Sampling) 要處理的類比訊號,將取樣到的瞬間類比訊號電壓位準,經由一個類比到數位轉換器 (ADC),轉換成一連串順序的二進位數字。再使用一部電腦去執行二進位數字的計算工作,電腦則輸出經過計算的二進位數字。經由一個數位到類比轉換器 (DAC),再轉換回類比的電壓位準,完成對輸入訊號的處理過程。所以 DSP 主要是以軟體程式設定演算法,去控制處理器的計算工作,以此來處理輸入訊號,與類比電子的傳統硬體電路處理訊號的方式,有很大的不同。對於訊號處理功能的改變,軟 體的程式當然要比硬體的電路來得有彈性;可是對於線上 (In-line) 系統的即時 (Real Time) 操作而言,處理器的運算速度必須足夠快,才能處理連續不斷送到的訊號取樣數字,以免造成訊號資料擁塞,讓處理器失去正常功能而輸出不正確的訊號。

    典型的 DSP 系統包含了輸入次系統、電腦 (處理器)、和輸出次系統等三個部份,其關係如圖 1 所示。輸入次系統執行對輸入類比訊號的取樣,和電壓位準到二進位數字的轉換,並送出一連串的二進位數字到處理器。處理器則處理二進位數字的計算工作。輸出次系統接受處理器送出的二進位數字,並轉換回到類比的電壓位準。當然,也有一些 DSP 系統沒有訊號輸入 (如訊號產生器),或沒有訊號輸出 (如解調器)。

Fig 01
圖 1:DSP 系統方塊圖。

    在輸入次系統執行對輸入訊號的取樣時,每隔一個固定時間做一次取樣的動作,這種取樣的速率稱為取樣頻率 (Sampling Frequency)。在學理上,根據尼奎士 (Nyquist) 取樣定理,取樣頻率至少要為訊號頻率的兩倍,才不會產生假化 (Aliasing)。為了確保輸入訊號不會超出此限制,就必須在取樣電路之前加上一個反假化 (Anti-alias) 的低通濾波器。

    取樣一個訊號之後所產生的頻譜,有點像把訊號頻率和取樣頻率及其諧波加以混頻所產生的結果,如圖 2 所示。當取樣頻率大於或等於兩倍的訊號頻率時,因為沒有假化現象發生,可以使用濾波器分離出所要的訊號。其中低於取樣頻率的較低邊帶 (Lower Sideband) 將不能與輸入訊號有所區別。例如,取樣頻率為 10KHz,訊號頻率為 7KHz,則取樣後的較低邊帶為 10KHz - 7KHz=3KHz。因為 3KHz 低於取樣頻率 10KHz,所以對處理器來說,這個 3KHz 的訊號就是輸入訊號。

Fig 02
圖 2:取接後之頻諳。

    由於處理器的輸出本身也是一個經過取樣的訊號,所以 DSP 系統的輸出不只包含所要的已處理訊號,也包含了在取樣頻率及其諧波產生的上下兩個邊帶。通常這些額外的訊號是不需要的,因此,輸出次系統的重組 (Re-construction) 低通濾波器能夠將高於取樣頻率一半以上的成份去除,僅留下所要的訊號。


取樣訊號的處理

    在 DSP 系統中,如何處理取樣訊號是整個系統堻抻ぞ曭熙‘驉C因為要完全了解這個理論,會牽涉到一些相當深奧的數學。然而,正如你可以應用運算放大器但不一定需要會設計 IC 一樣,你也可以去實做 DSP 的演算法,但不必一定要會開發它。如果僅要達到這種地步,你只要去了解 DSP 系統堜狴峔鴘滌禰賑[構即可。

    DSP 系統堨]含:加法、乘法、延遲等三種主要的運算。加法和乘法非常直接了當,就跟任何電腦堶捱熉く璊 (ALU) 的加法和乘法運算沒有兩樣;而延遲運算則是一個新玩意,但也是非常簡單的,就是訊號在時間上延緩一個或數個取樣的週期時間。當每次有新的輸入樣本到達時,處理器就執行 DSP 演算法。通常演算法不僅使用新的輸入樣本,同時也會使用到以前的輸入樣本,或以前輸入樣本經過計算後之值。要描述這樣動作的 DSP 演算法,可以表示在一個流程圖堶情A例如圖 4 的濾波器演算法。而表示流程圖的元素就如圖 3 所示。

    (a) 加法運算有時會往輸入端標上「+」或「-」符號,可以表示訊號的相加或相減。(b) 乘法運算堛 K 表示乘數,如果代之以 1/K 的話,則 K 表示除數,也可以代替除法。(c) 延遲運算則表示樣本取樣時間的前移,在輸出端的訊號為比輸入端訊號還前一次取樣的樣本訊號。

    例如:以 X(n) 表示第 n 次取樣的樣本訊號,X(n-1) 則表示第 n-1 次取樣的樣本訊號,也就是比第 n 次取樣還前一次的樣本訊號,X(n-2) 則表示比第 n 次取樣還前兩次的樣本訊號……,依此類推。如果第一次取樣的樣本訊號為 X(1),第二次的樣本訊號則為 X(2),第三次的樣本訊號則為 X(3) ……

Fig 03
圖 3:DSP 流程圖的元素。

Fig 04
圖 4:FIR 濾波器流程圖。



濾波器

    在圖 4 所表示的是一個四階的濾波器流程圖,在第 n 次取樣時的輸入樣本訊號 X(n),經過一次延遲後為樣本 X(n-1),二次延遲後為樣本 X(n-2),……,四次延遲後為樣本 X(n-4)。而輸出 Y(n) 為輸入樣本 X(n) 和其以前四次樣本 X(n-1)、X(n-2)、X(n-3)、X(n-4) 分別乘以權值 h0、h1、h2、h3、h4 的加權總和。像這個例子,系統的輸出只跟當時的輸入樣本和其前四次樣本有關,其輸出可以用一個差分方程式 (Difference Equation) 來表示:

    Y(n) = h0 x X(n) + h1 x X(n-1) + h2 x X(n-2) + h3 x X(n-3) + h4 x X(n-4)

    像這種輸出只往前追溯到有限個數樣本的 DSP 演算法,就稱為 FIR (Finite Impulse Responx; 有限脈衝反應) 系統。FIR 濾波器與「古典式」的 IIR 濾波器相較之下,最主要的優點是可以設計為具有固定的延遲時間。也就是對於輸入訊號的任何頻率成分,其輸出都會在經過某一段相同的時間之後同時出現。這種效果能保證訊號在經過濾波器之後,並無相位的失真。換句話說,就是這種濾波器具有線性的相位響應 (Linear Phase Reponsea)。

    在圖 5 所表示的是另一種三階的濾波器流程圖,有一個中間的訊號 W(n) 是由輸入樣本訊號 X(n) 與和其一次延遲後的訊號 W(n-1)、二次延遲後的訊號 W(n-2) 所合成。訊號 W(n) 本身的值就須利用到其前兩次取樣時間的訊號 W(n-1)、W(n-2) 來計算,這是一種須要重覆計算的遞歸 (Recurssive) 過程。輸出 Y(n) 又為中間的訊號 W(n) 和其前兩次取樣時間的訊號 W(n-1)、W(n-2) 之加權總和。整個 DSP 系統的輸出和輸入的關係,可以用一組差分方程式來表示:

    W(n) = X(n) - B1 x W(n-1) - B2 x W(n-2)

    Y(n) = A0 x W(n) + A1 x W(n-1) + A2 x W(n-2)

    由於這個系統須要一直重覆計算,假設開始取樣之前的時間 n<0,各訊號的起始值都為零,X(n)=0、W(n)=0、Y(n)=0,開始取樣 n=0 之後的 W(n)、Y(n) 值的計算都須追溯到起始的輸入樣本 X(0)。像這種輸出必須往前追溯到包含起始樣本的無限個數樣本的 DSP 演算法,就稱為 IIR (Infinite Impulse Response; 無限脈衝反應) 系統。IIR 濾波器在數學上相當於一個類比濾波器。事實上,這種 IIR 濾波器的設計,通常是先設計成一個相同規格的類比濾波器,再轉換為數位濾波器;也就是說,IIR 濾波器能執行類比濾波器所能做到的任何功能。

Fig 05
圖 5:IIR 濾波器流程圖。

    FIR 濾波器不只依據大小 (對應於頻率) 響應 (Magnitude Response) 的規格來設計之外,通常還可以設計成線性相位響應 (Linear Phase Reponse),具有較佳的規格彈性 (Flexibility)。相對的,IIR 濾波器卻只能考慮大小響應來設計而已,對於一般濾波器的應用是足以勝任,可是無法再考慮到相位響應,其規格彈性較差。考量全盤的成本,包含硬體電路的複雜性 (Complexity)、晶片的面積、和運算的速度,IIR 濾波器較低成本。可是 FIR 濾波器的規格彈性,也值回所花費的成本。所以就 FIR 和 IIR 濾波器而言,並無絕對的優 劣之分,僅能從其要求的規格和成本這兩方面去做抉擇。

    不論是類比濾波器或數位濾波器的設計,其要訣都在於根據所定的頻域 (Frequency Domain) 規格,先找出濾波器所需的階數 (Order) (轉移函數中分母或分子多項式的最高次方),再計算出達到規格所需的各項係數和求出輸出與輸入之間關係的轉移函數 (Transfer Function)。

    當然,要求出這些答案必須用到相當份量的數學計算。幸好,市面上已有成本不高的電腦程式可供使用,像 PC-DSP,就可以很方便地用來設計數位濾波器。


傅利葉轉換

    一旦已經有一個系統可以用數學的方法操控訊號時,你就會開始去想要做一些傳統的類比電子很困難或不可能做到的事情。DSP 有一種像這樣的應用,那就是傅利葉轉換 (Fourier Transform)。傅利葉轉換是一種數學的技術,可以根據訊號的波形,決定其頻率成分的內容。依照數學的語言來說,就是將訊號從時域 (Time Domain) 轉換到頻域 (Frequency Domain)。不幸的是,要做到絕對準確的話,就必須把從頭到尾的訊號加以處理。但是話說回來,只要有足夠時間處理訊號,就能得到近似的結果。那麼到底要處理多長時間的訊號才夠呢 ?這就要看你想得到多近似的結果而定。

    在 DSP 中,我們使用另外一種型式的傅利葉轉換,稱為離散傅利葉轉換 DFT (Discrete Fourier Transform)。當有許多訊號的樣本時,計算 DFT 就會得到許多的頻率「組」。即是計算 100 個樣本的 DFT,就會得到 100 個頻率組,第 0 組代表 0Hz,第 99 組代表正好低於取樣頻率的頻率。例如,以 20KHz 的頻率來取樣訊號 100 點的 DFT 為例,就會有在 0、200、400、600、、、19800Hz 等共 100 個頻率組。每一組都包含有一個代表出現在該頻率的複數。使用標準的複數數學,就可以用來計算出現在該頻率上訊號的大小和相位。 有一個邏輯上的問題「相位到底是相對於什麼而言?」其答案為「相對於取樣時間」。

    DFT 是一種非常簡單的演算法,但是執行計算所花費的時間,卻隨著所使用的樣本數而非常快速的增加。實際上,它是隨著樣本數目的平方而增加。擷取 DFT 中某些冗贅部份而簡化計算的好處,已經被發展出一些更有效的演算法,這些演算法就叫做快速傅利葉轉換 FFT (Fast Fourier Transform)。在一大堆的 FFT 演算法之中,最常見的型式為數基 -2 (Radix-2) 和數基 -4 (Radix-4) 演算法,他們共通的性質就是使用的樣本數為 2 的乘方。因此,如果我們想要運用這種 FFT 演算法,就要把 100 點樣本的 DFT 擴充到 128 點 (2 的 7 次方)。我們在先進接收機上所看到的頻譜 (Spectral) 顯示,就是應用 FFT 的技術做出來的。

    圖 6 表示單一頻率訊號被取樣的 4 種 128 點 FFT 結果。圖 6(a):輸入訊號頻率為取樣頻率的 13/128,因此出現在第 13 組。圖 6(b):輸入訊號頻率為取樣頻率的 13.5/128,因為這個頻率既不是在第 13 組,也不是在第 14 組。你可能會想像得到,會有部份出現在第 13 組,也有部份出現在第 14 組,但你可能會想像不到還會有一部份出現在鄰近的組上。這種現象稱為頻譜洩漏 (Spectral Leakage),這是因為我們假設樣本永遠都會重覆地取樣在每一回的 128 點樣本上,所以想像不出頻譜洩漏的現象。如果 DFT 所使用的樣本, 其開始和結束都在輸入波形的同一個位置 (如在輸入正弦波的 0°) 的話,就會得到圖 6(a) 的結果。但如果不是的話,就會得到圖 6(b) 的結果。

Fig 06
圖 6:單一頻率的 4 種 128 點 FFT 結果。

    頻譜洩漏最麻煩的地方就是在對於不同的輸入頻率,DFT 的結果也會大不相同。你可能情願看到訊號散佈在一些相鄰的組上,但你可能更喜歡讓他們以相同的方式散佈在相同數目的組上,不論輸入訊號的頻率是否正好在某一個頻率組上。

    窗口 (Windowing) 法是能夠趨近這種理想的一種步驟,窗口功能可以預先將輸入的樣本變形,使正好散佈在組上的訊號多些,使散佈不在組上的訊號少些。因此對於不同輸入頻率 DFT 響應的變動會減至最小。在執行 DFT 之前先將樣本經過窗口處理的結果,就顯示在圖 6(c) 和圖 6(d)。事實上已經發展出許多種類的窗口功能,其間的取捨就是對於不同的頻率要得到最少的變動,可是你必須要能夠接受對所有頻率都會有變寬 (分佈更散開) 的結果。


DSP 的其他應用

    當然,濾波器和頻譜分析並不是 DSP 僅有的應用,大部份類比電子所能做的 (像是:調變、解調、功率量測、和訊號產生……等),在 DSP 都可能做到。但是 DSP 同樣也能使一些以類比電子技術很困難做到的應用變為可能,最廣為人知的 (至少在業餘圈子),就要算是隨適濾波 (Adaptive Filtering) 了。隨適濾波器是一種會根據輸入訊號的情況,而自行調整操作的濾波器。 在業餘無線電中,通常用在自動陷波濾波器 (Automatic Notch Filter) 之中,它幾乎能夠在瞬間以 DFT 方式在頻譜上偵測出干擾訊號的頻率,再自動調整濾波器的陷波頻率到干擾訊號的頻率上,消除單音的干擾訊號。還有雜訊消除濾波器 (Noise Eliminating Filter),它能自行調整參數消除雜訊訊號,而仍相對的保持所要的訊號不動。


結語

    DSP 的功能誠然要比傳統的類比電子強得多,一旦硬體結構安裝好之後,只要改變軟體程式即可改變 DSP 的功能,非常有彈性,不像類比電子的硬體電路,一旦安裝上去,就不容易改變其功能了。然而就成本的觀點來說,DSP 方式遠比類比電子的成本昂貴。DSP 專用處理器和其他相關的配備都不便宜,所以要求 DSP 所要達到的功能,就不像對類比電子那麼簡單了。

    此外,不論收發機內建的 DSP 或外加的 DSP 功能,都必須配合收發機做線上的即時操作,所以處理器的運算速度,就是關鍵所在。早期甚至連外加的 DSP 雜訊消除器也看不到,是因為沒辦法得到低成本的高速運算處理器。一個能處理到聲頻 3KHz 訊號的 DSP 系統,其取樣頻率至少必須在 6KHz 以上,亦即每 0.17 毫秒就取出一個樣本,而處理器也必須在這段時間之內完成所有加減乘除的運算,否則下一個樣本又將送到。如果 DSP 系統必須處理高達 100KHz 或 455KHz 中頻訊號的話,則處理一個樣本的時間就只有 5 微秒或 1.1 微 秒而已,處理器的運算速度必須要更快才配合得上。這也就是為什麼早期的 DSP 系統只能處理聲頻訊號,而無法處理中頻訊號的原因了。幸好近年來半導體和電腦技術的進步神速,拜科技進展之賜,夢寐以求的高速度低成本 DSP 處理器,已經能夠很容易的在市面上取得,而且運算速度越來越快,成本越來越低,因此才能從先前的外加式雜訊消除器,再進而有新近推出具有內建式中頻 DSP 功能的收發機。這種收發機功能的大幅提升,對於我們業餘無線電人員來說,真是一大福音。 END

參考資料:
1. ARRL Handbook, 1994 editiion
2. Digital Signal Proessing, by Alan V. Oppenheim & Ronald W. Schafer



雜誌目錄 依順序 雜誌目錄 依主題分類