用中檔FPGA實(shí)現(xiàn)多相濾波器
在現(xiàn)代電子系統(tǒng)中,到處都可以看到數(shù)字信號(hào)處理( DSP )的應(yīng)用,從MP3播放器、數(shù)碼相機(jī)到手機(jī)。DSP設(shè)計(jì)人員的工具箱的支柱之一是有限脈沖響應(yīng)( FIR )濾波器。FIR濾波器越長(zhǎng)(有大量的抽頭),濾波器的響應(yīng)越好。然而這里有折衷的情況,由于大量的抽頭增加了對(duì)邏輯的需求、增加了計(jì)算的復(fù)雜性,增加了功耗,以及可能引起飽和/溢出。
多相技術(shù)可以用于實(shí)現(xiàn)濾波器,擁有與傳統(tǒng)FIR濾波器可比的結(jié)果,而且使用了較少的邏輯、需要較少的計(jì)算資源、更低的功耗,并減少了可能的飽和/溢出。可用如今新型的小規(guī)模、中檔的FPGA,如LatticeECP3 來(lái)實(shí)現(xiàn)這些濾波器。
基本概念
進(jìn)入DSP世界可能會(huì)有些令人生畏,因此,讓我們首先介紹一些簡(jiǎn)單的概念。對(duì)于數(shù)字系統(tǒng),如音頻,視頻和無(wú)線領(lǐng)域,形成信號(hào)的結(jié)果是與采樣率相關(guān)的。舉例來(lái)說(shuō),以48 kHz(即每秒48000個(gè)樣本)對(duì)專業(yè)音頻信號(hào)進(jìn)行采樣。相比之下,消費(fèi)者的CD播放機(jī)則使用44.1 kHz的采樣率。
多速率系統(tǒng)
多速率系統(tǒng)使用多個(gè)采樣速率。在某些情況下,運(yùn)行于某個(gè)速率的系統(tǒng)的一部分需要一個(gè)原來(lái)以另外某個(gè)速率采樣的信號(hào)(轉(zhuǎn)換專業(yè)音頻到消費(fèi)者的CD音頻就是一個(gè)例子)。在這種情況下,原始信號(hào)的速率必須根據(jù)需要增加或減少。
或者針對(duì)特定的用途,也可能以比實(shí)際需要更高的速率對(duì)原來(lái)的數(shù)據(jù)進(jìn)行了采樣。因此,降低采樣率,然后運(yùn)行所得到的數(shù)據(jù)就可以大幅度降低數(shù)據(jù)吞吐量的要求,降低對(duì)存儲(chǔ)器的要求,提高處理效率并降低功耗。
向下采樣和抽取
讓我們首先考慮降低采樣率的問(wèn)題。假設(shè)我們有一個(gè)信號(hào),原來(lái)以我們稱之為fHz的某一頻率進(jìn)行采樣,如如圖1所示。
圖1 用f Hz采樣率對(duì)原始信號(hào)采樣
現(xiàn)在假設(shè)我們要降低采樣率至原來(lái)頻率的1/4。達(dá)到此目的一個(gè)方法來(lái)就是簡(jiǎn)單地扔掉每四個(gè)原始采樣中的三個(gè),如圖2所示。
圖2 用1/4 f Hz采樣率得到新的信號(hào)
在數(shù)字信號(hào)處理中, “混疊現(xiàn)象”是指采樣時(shí)造成不同的連續(xù)信號(hào)彼此難以區(qū)分的情況,它們互相“混疊”。 混疊現(xiàn)象也稱為失真,或贗品,即源于采樣重構(gòu)的信號(hào)不同于原來(lái)的連續(xù)信號(hào)。
如果我們丟棄了如上文所討論的一些樣本,由此得到的信號(hào)會(huì)含有混疊現(xiàn)象的贗品。作為一個(gè)簡(jiǎn)單的例子,考慮一個(gè)音頻信號(hào),可能含有人耳聽(tīng)不見(jiàn)的高頻分量的樂(lè)曲。如果我們以過(guò)低的速率對(duì)這個(gè)信號(hào)采樣(當(dāng)我們丟棄一些樣本時(shí),實(shí)際上是我們正在做的事情),然后用數(shù)字模擬轉(zhuǎn)換器重構(gòu)這個(gè)樂(lè)曲,我們可以聽(tīng)到欠采樣高頻分量的低頻混疊。
為了避免這種情況,常見(jiàn)的做法是在丟棄不想要的樣本之前,用低通濾波器去除不要的高頻,如圖3所示。
圖3 在丟棄任何樣本前對(duì)這個(gè)信號(hào)進(jìn)行濾波
一般而言, “向下采樣”只是指丟棄樣本的處理而不執(zhí)行濾波的操作。相比之下, “抽取”指的是降低采樣率的整個(gè)過(guò)程,即執(zhí)行濾波操作,然后丟棄樣本。實(shí)際上, “向下采樣” 、“下變頻”和“抽取”往往交替使用。
“抽取因子”是指輸入采樣率與輸出采樣率之比。通常用字母M來(lái)表示。在上面的例子中,輸入速率是輸出速率的4倍,所以M=4。
向上采樣和內(nèi)插
現(xiàn)在考慮的情況是,我們希望提高采樣率。這樣做的原因是為了使系統(tǒng)的另一部分與信號(hào)運(yùn)行在更高的采樣速率。假設(shè)我們從一個(gè)信號(hào)開(kāi)始,即原來(lái)以我們稱為fHz的某個(gè)頻率進(jìn)行采樣的信號(hào),如圖4所示。
圖4 采樣率為f Hz的原始信號(hào)
現(xiàn)在假設(shè)我們要增加采樣率為原來(lái)頻率的4倍。我們開(kāi)始在原始樣本之間插入零值樣本,以提高采樣率,如圖5所示。
圖5 用零值樣本對(duì)原始信號(hào)進(jìn)行擴(kuò)充
但現(xiàn)在有一個(gè)問(wèn)題,因?yàn)樾碌牧阒禈悠诽砑恿瞬灰念l譜分量至信號(hào)。為了解決此問(wèn)題,我們對(duì)這個(gè)新的信號(hào)進(jìn)行了濾波,除去了不想要的分量,產(chǎn)生了更合適的采樣值,如圖6所示。
圖6采樣率為4倍 fHz的最終信號(hào)
從技術(shù)上講, “ 向上采樣 ”只是指插入零值樣本的過(guò)程。相比之下, “內(nèi)插”指的是增加采樣率的整個(gè)過(guò)程,即插入零值樣本,然后進(jìn)行濾波操作1。實(shí)際上, “向上采樣 ”、“向上轉(zhuǎn)換”和“內(nèi)插”往往交替使用。
“內(nèi)插因子”指的是輸出采樣率對(duì)輸入采樣率的比例。這通常用字母L來(lái)表示。在上面的例子中,輸出速率4倍于輸入速率,因此,L = 4 。這個(gè)過(guò)程的圖形說(shuō)明參見(jiàn)圖7。
圖7 插入零值樣本后對(duì)這個(gè)信號(hào)進(jìn)行濾波
重采樣
前面的討論中,應(yīng)該指出的是,抽取和內(nèi)插因子可以假設(shè)為只有整數(shù)值。也就是說(shuō),我們只可以抽取或內(nèi)插整數(shù)因子,而不是分?jǐn)?shù)因子。例如,如果進(jìn)行抽取,我們只能丟棄整數(shù)的樣本(2個(gè)中的1個(gè)、3個(gè)中的1個(gè)、3個(gè)中的2個(gè)、3個(gè)4個(gè)中的3個(gè),等等)。
假設(shè)我們要修改信號(hào)的采樣率,以便在兩個(gè)子系統(tǒng)之間進(jìn)行接口。如果子系統(tǒng)的采樣率的比率是一個(gè)整數(shù)值,那么我們只需要執(zhí)行抽取或內(nèi)插。但是,如果采樣率的比率是一個(gè)分?jǐn)?shù)值,那么我們需要進(jìn)行抽取和內(nèi)插的組合,這樣的過(guò)程稱之為重采樣。
例如,如果用2.5因子進(jìn)行重采樣,首先我們用插值因子為5 ,然后用抽取因子2產(chǎn)生輸出對(duì)輸入采樣率為5/2 = 2.5的采樣率,如圖8所示。
圖8 重采樣(L= 5、M= 2 )
在實(shí)踐中,如圖8所示的內(nèi)插和抽取濾波器將組合在一起。術(shù)語(yǔ)“重采樣因子”是指輸出采樣率和輸入采樣率之間的比例。不考慮涉及的頻率,這可以表示為內(nèi)插和抽取因子L/M之間的比例,在上面的例子中就是5/2 = 2.5。
來(lái)源:車舞飛揚(yáng)0次