引言
在現代電子系統中,到處都可以看到數字信號處理( DSP )的應用,從MP3播放器、數碼相機到手機。DSP設計人員的工具箱的支柱之一是有限脈沖響應( FIR )濾波器。FIR濾波器越長(有大量的抽頭),濾波器的響應越好。然而這里有折衷的情況,由于大量的抽頭增加了對邏輯的需求、增加了計算的復雜性,增加了功耗,以及可能引起飽和/溢出。
多相技術可以用于實現濾波器,擁有與傳統FIR濾波器可比的結果,而且使用了較少的邏輯、需要較少的計算資源、更低的功耗,并減少了可能的飽和/溢出??捎萌缃裥滦偷男∫幠!⒅袡n的FPGA,如LatticeECP3 來實現這些濾波器。
基本概念
進入DSP世界可能會有些令人生畏,因此,讓我們首先介紹一些簡單的概念。對于數字系統,如音頻,視頻和無線領域,形成信號的結果是與采樣率相關的。舉例來說,以48 kHz(即每秒48000個樣本)對專業音頻信號進行采樣。相比之下,消費者的CD播放機則使用44.1 kHz的采樣率。
多速率系統
多速率系統使用多個采樣速率。在某些情況下,運行于某個速率的系統的一部分需要一個原來以另外某個速率采樣的信號(轉換專業音頻到消費者的CD音頻就是一個例子)。在這種情況下,原始信號的速率必須根據需要增加或減少。
或者針對特定的用途,也可能以比實際需要更高的速率對原來的數據進行了采樣。因此,降低采樣率,然后運行所得到的數據就可以大幅度降低數據吞吐量的要求,降低對存儲器的要求,提高處理效率并降低功耗。
向下采樣和抽取
讓我們首先考慮降低采樣率的問題。假設我們有一個信號,原來以我們稱之為fHz的某一頻率進行采樣,如如圖1所示。
|
圖1 用f Hz采樣率對原始信號采樣 |
現在假設我們要降低采樣率至原來頻率的1/4。達到此目的一個方法來就是簡單地扔掉每四個原始采樣中的三個,如圖2所示。
|
圖2 用1/4 f Hz采樣率得到新的信號 |
在數字信號處理中, “混疊現象”是指采樣時造成不同的連續信號彼此難以區分的情況,它們互相“混疊”。 混疊現象也稱為失真,或贗品,即源于采樣重構的信號不同于原來的連續信號。
如果我們丟棄了如上文所討論的一些樣本,由此得到的信號會含有混疊現象的贗品。作為一個簡單的例子,考慮一個音頻信號,可能含有人耳聽不見的高頻分量的樂曲。如果我們以過低的速率對這個信號采樣(當我們丟棄一些樣本時,實際上是我們正在做的事情),然后用數字模擬轉換器重構這個樂曲,我們可以聽到欠采樣高頻分量的低頻混疊。
為了避免這種情況,常見的做法是在丟棄不想要的樣本之前,用低通濾波器去除不要的高頻,如圖3所示。
|
圖3 在丟棄任何樣本前對這個信號進行濾波 |
一般而言, “向下采樣”只是指丟棄樣本的處理而不執行濾波的操作。相比之下, “抽取”指的是降低采樣率的整個過程,即執行濾波操作,然后丟棄樣本。實際上, “向下采樣” 、“下變頻”和“抽取”往往交替使用。
“抽取因子”是指輸入采樣率與輸出采樣率之比。通常用字母M來表示。在上面的例子中,輸入速率是輸出速率的4倍,所以M=4。
向上采樣和內插
現在考慮的情況是,我們希望提高采樣率。這樣做的原因是為了使系統的另一部分與信號運行在更高的采樣速率。假設我們從一個信號開始,即原來以我們稱為fHz的某個頻率進行采樣的信號,如圖4所示。
|
圖4 采樣率為f Hz的原始信號 |
現在假設我們要增加采樣率為原來頻率的4倍。我們開始在原始樣本之間插入零值樣本,以提高采樣率,如圖5所示。
|
圖5 用零值樣本對原始信號進行擴充 |
但現在有一個問題,因為新的零值樣品添加了不要的頻譜分量至信號。為了解決此問題,我們對這個新的信號進行了濾波,除去了不想要的分量,產生了更合適的采樣值,如圖6所示。
|
圖6采樣率為4倍 fHz的最終信號 |
從技術上講, “ 向上采樣 ”只是指插入零值樣本的過程。相比之下, “內插”指的是增加采樣率的整個過程,即插入零值樣本,然后進行濾波操作1。實際上, “向上采樣 ”、“向上轉換”和“內插”往往交替使用。
“內插因子”指的是輸出采樣率對輸入采樣率的比例。這通常用字母L來表示。在上面的例子中,輸出速率4倍于輸入速率,因此,L = 4 。這個過程的圖形說明參見圖7。
|
圖7 插入零值樣本后對這個信號進行濾波 |