<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計(jì)應(yīng)用 > Lattice用中檔FPGA實(shí)現(xiàn)多相濾波器

          Lattice用中檔FPGA實(shí)現(xiàn)多相濾波器

          作者: 時(shí)間:2010-04-06 來源:網(wǎng)絡(luò) 收藏

          引言

          本文引用地址:http://www.ex-cimer.com/article/261094.htm

          在現(xiàn)代電子系統(tǒng)中,到處都可以看到數(shù)字信號(hào)處理( DSP )的應(yīng)用,從MP3播放器、數(shù)碼相機(jī)到手機(jī)。DSP設(shè)計(jì)人員的工具箱的支柱之一是有限脈沖響應(yīng)( FIR )濾波器。FIR濾波器越長(有大量的抽頭),濾波器的響應(yīng)越好。然而這里有折衷的情況,由于大量的抽頭增加了對(duì)邏輯的需求、增加了計(jì)算的復(fù)雜性,增加了功耗,以及可能引起飽和/溢出。

          多相技術(shù)可以用于實(shí)現(xiàn)濾波器,擁有與傳統(tǒng)FIR濾波器可比的結(jié)果,而且使用了較少的邏輯、需要較少的計(jì)算資源、更低的功耗,并減少了可能的飽和/溢出??捎萌缃裥滦偷男∫?guī)模、中檔的FPGA,如LATTICEECP3 來實(shí)現(xiàn)這些濾波器。

          基本概念

          進(jìn)入DSP世界可能會(huì)有些令人生畏,因此,讓我們首先介紹一些簡(jiǎn)單的概念。對(duì)于數(shù)字系統(tǒng),如音頻,視頻和無線領(lǐng)域,形成信號(hào)的結(jié)果是與采樣率相關(guān)的。舉例來說,以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è)原來以另外某個(gè)速率采樣的信號(hào)(轉(zhuǎn)換專業(yè)音頻到消費(fèi)者的CD音頻就是一個(gè)例子)。在這種情況下,原始信號(hào)的速率必須根據(jù)需要增加或減少。

          或者針對(duì)特定的用途,也可能以比實(shí)際需要更高的速率對(duì)原來的數(shù)據(jù)進(jìn)行了采樣。因此,降低采樣率,然后運(yùn)行所得到的數(shù)據(jù)就可以大幅度降低數(shù)據(jù)吞吐量的要求,降低對(duì)存儲(chǔ)器的要求,提高處理效率并降低功耗。

          向下采樣和抽取

          讓我們首先考慮降低采樣率的問題。假設(shè)我們有一個(gè)信號(hào),原來以我們稱之為fHz的某一頻率進(jìn)行采樣,如如圖1所示。

          圖1 用f Hz采樣率對(duì)原始信號(hào)采樣

          現(xiàn)在假設(shè)我們要降低采樣率至原來頻率的1/4。達(dá)到此目的一個(gè)方法來就是簡(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)不同于原來的連續(xù)信號(hào)。

          如果我們丟棄了如上文所討論的一些樣本,由此得到的信號(hào)會(huì)含有混疊現(xiàn)象的贗品。作為一個(gè)簡(jiǎn)單的例子,考慮一個(gè)音頻信號(hào),可能含有人耳聽不見的高頻分量的樂曲。如果我們以過低的速率對(duì)這個(gè)信號(hào)采樣(當(dāng)我們丟棄一些樣本時(shí),實(shí)際上是我們正在做的事情),然后用數(shù)字模擬轉(zhuǎn)換器重構(gòu)這個(gè)樂曲,我們可以聽到欠采樣高頻分量的低頻混疊。

          為了避免這種情況,常見的做法是在丟棄不想要的樣本之前,用低通濾波器去除不要的高頻,如圖3所示。

          圖3 在丟棄任何樣本前對(duì)這個(gè)信號(hào)進(jìn)行濾波

          一般而言, “向下采樣”只是指丟棄樣本的處理而不執(zhí)行濾波的操作。相比之下, “抽取”指的是降低采樣率的整個(gè)過程,即執(zhí)行濾波操作,然后丟棄樣本。實(shí)際上, “向下采樣” 、“下變頻”和“抽取”往往交替使用。

          “抽取因子”是指輸入采樣率與輸出采樣率之比。通常用字母M來表示。在上面的例子中,輸入速率是輸出速率的4倍,所以M=4。

          向上采樣和內(nèi)插

          現(xiàn)在考慮的情況是,我們希望提高采樣率。這樣做的原因是為了使系統(tǒng)的另一部分與信號(hào)運(yùn)行在更高的采樣速率。假設(shè)我們從一個(gè)信號(hào)開始,即原來以我們稱為fHz的某個(gè)頻率進(jìn)行采樣的信號(hào),如圖4所示。

          圖4 采樣率為f Hz的原始信號(hào)

          現(xiàn)在假設(shè)我們要增加采樣率為原來頻率的4倍。我們開始在原始樣本之間插入零值樣本,以提高采樣率,如圖5所示。

          圖5 用零值樣本對(duì)原始信號(hào)進(jìn)行擴(kuò)充

          但現(xiàn)在有一個(gè)問題,因?yàn)樾碌牧阒禈悠诽砑恿瞬灰念l譜分量至信號(hào)。為了解決此問題,我們對(duì)這個(gè)新的信號(hào)進(jìn)行了濾波,除去了不想要的分量,產(chǎn)生了更合適的采樣值,如圖6所示。

          圖6采樣率為4倍 fHz的最終信號(hào)

          從技術(shù)上講, “ 向上采樣 ”只是指插入零值樣本的過程。相比之下, “內(nèi)插”指的是增加采樣率的整個(gè)過程,即插入零值樣本,然后進(jìn)行濾波操作1。實(shí)際上, “向上采樣 ”、“向上轉(zhuǎn)換”和“內(nèi)插”往往交替使用。

          “內(nèi)插因子”指的是輸出采樣率對(duì)輸入采樣率的比例。這通常用字母L來表示。在上面的例子中,輸出速率4倍于輸入速率,因此,L = 4 。這個(gè)過程的圖形說明參見圖7。

          圖7 插入零值樣本后對(duì)這個(gè)信號(hào)進(jìn)行濾波

          重采樣

          前面的討論中,應(yīng)該指出的是,抽取和內(nèi)插因子可以假設(shè)為只有整數(shù)值。也就是說,我們只可以抽取或內(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)插的組合,這樣的過程稱之為重采樣。

          例如,如果用2.5因子進(jìn)行重采樣,首先我們用插值因子為5 ,然后用抽取因子2產(chǎn)生輸出對(duì)輸入采樣率為5/2 = 2.5的采樣率,如圖8所示。

          圖8 重采樣(L= 5、M= 2 )

          在實(shí)踐中,如圖8所示的內(nèi)插和抽取濾波器將組合在一起。術(shù)語“重采樣因子”是指輸出采樣率和輸入采樣率之間的比例。不考慮涉及的頻率,這可以表示為內(nèi)插和抽取因子L/M之間的比例,在上面的例子中就是5/2 = 2.5。

          作為另一個(gè)例子,考慮重采樣專業(yè)音頻信號(hào)的過程,采樣率為48千赫,對(duì)于消費(fèi)者的音頻設(shè)備,需要的采樣率為44.1千赫。在這種情況下,重采樣因子等于輸出速率對(duì)輸入速率之比: 44.1 kHz /48 kHz = 0.91875 。

          看看另一種方法,采樣速率必須由48,000Hz改變到44100Hz,這意味著輸入輸出比為44100/48,000 = = 441 / 480 = 147 / 160。由于在147和160中沒有公共的因子,我們只好就此止步,這意味著我們需要的內(nèi)插因子為147 ,然后抽取因子為160,如圖9所示。

          圖9 對(duì)商業(yè)音頻重采樣(L= 147、M= 160 )

          再次說明,重采樣因子可表示為內(nèi)插和抽取因子L/M之間的比例,就是147/160 =0.91875 。毫不意外,這正是我們得到的與輸入和輸出采樣率的比例完全相同的值,因?yàn)樗璧膬?nèi)插和抽取因子源于這些比率。

          介紹FIR濾波器

          有兩種基本類型的數(shù)字濾波器:有限脈沖響應(yīng)( FIR )和無限脈沖響應(yīng)( IIR)。

          IIR濾波器使用反饋,而且往往是模仿傳統(tǒng)的模擬濾波器的響應(yīng)。反饋的用途意味著他們的脈沖響應(yīng)是遞歸的,并延伸到無限的時(shí)段。雖然可以用比FIR濾波器更少的計(jì)算來實(shí)施IIR濾波器,IIR濾波器可能有穩(wěn)定性的問題,他們可能與用FIR濾波器完成的性能不匹配。

          相比之下, FIR濾波器沒有反饋,這意味著它的脈沖響應(yīng)在一個(gè)有限的時(shí)間范圍之內(nèi)。 FIR濾波器擁有優(yōu)于IIR濾波器的幾個(gè)優(yōu)點(diǎn),其中包括一個(gè)事實(shí),即在整個(gè)頻譜范圍,他們有完全恒定的群時(shí)延,在所有頻率范圍內(nèi),不論濾波器的大小,他們是完全穩(wěn)定的。

          通用FIR濾波器的圖形表示如圖10所示。在這種情況下,輸入樣本xn通過一系列的緩沖寄存器(這些都標(biāo)記為z-1,對(duì)應(yīng)延時(shí)單元的Z變換)。

          圖10 經(jīng)典FIR濾波器的通用表示

          濾波器的工作原理是用一系列的常數(shù)(稱為抽頭系數(shù))乘以一系列最新的n個(gè)數(shù)據(jù)采樣,并對(duì)所得到的數(shù)組的單元進(jìn)行求和。通過改變系數(shù)和濾波器抽頭數(shù)目的加權(quán)(值),F(xiàn)IR濾波器實(shí)際上可實(shí)現(xiàn)幾乎任何所需的頻率響應(yīng)特性。

          問題是FIR濾波器可能需要大量的抽頭(有時(shí)數(shù)百個(gè)),以實(shí)現(xiàn)其預(yù)定的目標(biāo)。每一個(gè)抽頭需要消耗邏輯資源的乘法器累加器( Mac )單元。另外在每個(gè)時(shí)鐘,每個(gè)抽頭執(zhí)行消耗功率2的乘法和加操作。

          用多相FIR濾波器進(jìn)行抽取

          的基本概念是把FIR濾波器分割成若干較小的單元,然后組合這些單元的結(jié)果。首先,讓我們考慮一個(gè)基于常規(guī)8抽頭FIR濾波器的抽取子系統(tǒng)的符號(hào)表示,如圖11所示(為了使用這些例子,我們假設(shè)抽取因子為M = 4 )。

          圖11 基于傳統(tǒng)的8抽頭FIR濾波器的抽取器的符號(hào)表示

          現(xiàn)在讓我們假設(shè)主時(shí)鐘正在以某一頻率fHz運(yùn)行。像往常一樣,在濾波操作之后任何不要的樣本將被丟棄,但這樣做是低效率的,因?yàn)檫@意味著是以完全的時(shí)鐘頻率在進(jìn)行濾波。用另一種方式來看這種操作,即在每個(gè)時(shí)鐘時(shí)刻,每個(gè)抽頭級(jí)執(zhí)行乘法和加運(yùn)算。

          相比多相實(shí)現(xiàn)的情況,我們可以將原來的8抽頭FIR濾波器分為四個(gè)2抽頭子濾波器,如圖12所示。

          圖12 基于4 × 2抽頭的抽取器的符號(hào)表示

          假設(shè)同樣的主時(shí)鐘以f Hz的頻率運(yùn)行,我們可以想象輸入數(shù)據(jù)流被送入一個(gè)旋轉(zhuǎn)開關(guān)(當(dāng)然,這可用標(biāo)準(zhǔn)的邏輯技術(shù)來實(shí)現(xiàn))。第一個(gè)數(shù)據(jù)值送入第一個(gè)子濾波器;第二個(gè)數(shù)據(jù)值送入第二個(gè)子濾波器;第三個(gè)數(shù)據(jù)值送入第三個(gè)子濾波器;第四個(gè)數(shù)據(jù)值送入第四個(gè)子濾波器。然后,我們進(jìn)行“循環(huán)”操作,以便第五個(gè)數(shù)據(jù)值送入第一個(gè)子濾波器;第六個(gè)數(shù)據(jù)值送入第二個(gè)子濾波器;等等。

          使用子濾波器減少了可能的飽和/溢出(發(fā)生任何飽和/溢出通常只需要在最后的函數(shù)求和時(shí)進(jìn)行處理)。另外,使用子濾波器具有一個(gè)直接有效的優(yōu)點(diǎn),因?yàn)樵趫?zhí)行濾波操作之前,我們有效地“抽取”了數(shù)據(jù)。這也意味著,我們的四個(gè)子濾波器中的每個(gè)都能有效地以F ÷ 4Hz的頻率運(yùn)行,如圖13所示。

          圖13 4 × 2抽頭的運(yùn)行情況

          除了任何寄存器和一般用途的邏輯,常規(guī)8抽頭FIR濾波器中的每個(gè)抽頭包含一個(gè)乘法器和一個(gè)加法器,當(dāng)然為我們提供了總共8個(gè)乘法器和8個(gè)加法器。濾波器之后需要一些額外的邏輯,以便丟棄任何不想要的樣本。

          同樣,在我們最初的4 × 2抽頭多相實(shí)現(xiàn)中的每一個(gè)抽頭含有一個(gè)乘法器和一個(gè)加法器,再次為我們提供了總共8個(gè)乘法器和8個(gè)加法器。在多相實(shí)現(xiàn)中,需要實(shí)現(xiàn)“旋轉(zhuǎn)開關(guān)”送入濾波器的邏輯數(shù)量大約相當(dāng)于在常規(guī)8抽頭FIR濾波器中丟棄不要的樣本所需的邏輯。

          當(dāng)然,多相實(shí)現(xiàn)還需要一些額外的邏輯和一個(gè)加法器累加來自四個(gè)子濾波器的結(jié)果。因此,最終的結(jié)果是,最初的多相實(shí)現(xiàn)需要比傳統(tǒng)的8抽頭FIR濾波器更多一點(diǎn)的邏輯。

          然而,對(duì)于傳統(tǒng)的8位FIR濾波器,在每個(gè)時(shí)鐘都要執(zhí)行8次乘和8次加。相比最初的多相實(shí)現(xiàn)的情況,在任何主時(shí)鐘時(shí)刻,只有一個(gè)子濾波器是工作的。由于在這個(gè)例子中每個(gè)子濾波器含有兩個(gè)抽頭,這意味著這個(gè)功能的濾波器部分在每個(gè)時(shí)鐘只進(jìn)行兩次乘法和兩次加法。

          當(dāng)然,從四個(gè)子濾波器收集結(jié)果的求和功能還必須在每個(gè)主時(shí)鐘進(jìn)行加(在每4時(shí)鐘周期開始時(shí),這個(gè)累加器清零;它從四個(gè)子濾波器收集結(jié)果; 在每4時(shí)鐘周期結(jié)束時(shí),它產(chǎn)生一個(gè)新的值)。

          這意味著,最初的多相實(shí)現(xiàn)的每個(gè)子濾波器有效地以常規(guī)8抽頭FIR濾波器1/ 4的頻率運(yùn)行。反過來,這意味著最初多相實(shí)現(xiàn)只在每個(gè)主時(shí)鐘進(jìn)行兩次乘法和三次加法(包括加法器的加操作),從而大大節(jié)省了功耗。

          此外,在最初的多相實(shí)現(xiàn)中,由于四個(gè)子濾波器的每個(gè)只用了1/4的時(shí)間,這意味著在任何特定時(shí)間,我們實(shí)際上只需要其中的一個(gè),這使我們更加完善了實(shí)現(xiàn)方法,如圖14所示。

          圖14 更完善的基于多相濾波器的抽取器實(shí)現(xiàn)方案

          在這種情況下,我們采用了單一的2抽頭子濾波器,每個(gè)抽頭含有乘法器和加法器。在每個(gè)主時(shí)鐘,我們選擇合適的系數(shù)對(duì)。每一個(gè)抽頭需要額外的寄存器和用于維護(hù)的邏輯,但與減少的乘法器和加法器相比,與我們的最初多相實(shí)現(xiàn)相比,這是微不足道的。

          當(dāng)然,在我們?cè)瓉淼亩嘞鄬?shí)現(xiàn)中,我們?nèi)匀灰诿總€(gè)主時(shí)鐘時(shí)刻執(zhí)行兩次乘法和三次加法,。這些抽取實(shí)現(xiàn)例子的總結(jié)如表1所示。

          表1抽取實(shí)現(xiàn)實(shí)例的總結(jié)

          利用多相FIR濾波器進(jìn)行內(nèi)插

          現(xiàn)在讓我們來考慮內(nèi)插的情況。首先讓我們先考慮一個(gè)基于常規(guī)8抽頭FIR濾波器的內(nèi)插子系統(tǒng)的符號(hào)表示,如圖15所示。

          圖15傳統(tǒng)的基于8抽頭FIR濾波器的內(nèi)插器的符號(hào)表示

          針對(duì)這些例子的用途,我們假設(shè)內(nèi)插因子為L = 4,主時(shí)鐘頻率為FHz。正如先前所討論的,向上采樣(插入零值樣本的過程)發(fā)生在濾波操作之前。

          現(xiàn)在讓我們來考慮一個(gè)最初的多相實(shí)現(xiàn),我們?cè)瓉淼?抽頭FIR濾波器被分成四個(gè)2 抽頭子濾波器,如圖16所示。

          圖16 基于4 × 2抽頭多相濾波器的內(nèi)插器的符號(hào)表示

          在這種情況下,相同的輸入數(shù)據(jù)流面向所有的四個(gè)子濾波器,在子濾波器輸出之間輪流產(chǎn)生主輸出數(shù)據(jù)流。最終的結(jié)果是,多相實(shí)現(xiàn)含有如同我們的常規(guī)8抽頭FIR濾波器相同數(shù)量的乘法器和加法器。然而,因?yàn)樵趦?nèi)插之前進(jìn)行了濾波,子濾波器只需要以1 / 4的主時(shí)鐘頻率運(yùn)行,從而大大節(jié)省了功耗(這里主時(shí)鐘用于子濾波器輸出之間的采樣)。

          此外,多相實(shí)現(xiàn)不需要向上采樣(零值插入)的邏輯。當(dāng)然,我們可以用完全運(yùn)行于主時(shí)鐘頻率和復(fù)用系數(shù)的單個(gè)2抽頭子濾波器取代原來的多相濾波器實(shí)現(xiàn)。

          內(nèi)插實(shí)現(xiàn)的這些例子的總結(jié)見表2 。

          表2內(nèi)插實(shí)現(xiàn)實(shí)例的總結(jié)

          總結(jié)

          DSP設(shè)計(jì)人員的工具箱的支柱之一是有限脈沖響應(yīng)( FIR )濾波器。FIR濾波器越長(有大量的抽頭),濾波器的響應(yīng)越好。但是更多的抽頭增加了邏輯要求、增加了計(jì)算的復(fù)雜性,增加了功耗,以及有更大可能的飽和/溢出。

          多相技術(shù)3可用于實(shí)現(xiàn)濾波器,提供可比較的結(jié)果,而使用較少的邏輯,需要更少的計(jì)算資源、消耗更低的功率,并減少了可能的飽和/溢出。

          所有這一切都意味著,多相基于濾波器的抽取器、內(nèi)插器和重采樣功能是非常適合用更小的來實(shí)現(xiàn),如LATTICE半導(dǎo)體公司的擁有SERDES功能的LATTICEECP3系列,它具有高性能的sysDSP模塊。它的特點(diǎn)是有dual-slice結(jié)構(gòu),具有級(jí)聯(lián)/鏈接DSP slice和模塊的功能,增強(qiáng)的DSP指令集使LATTICEECP3系列能夠引人注目地用于范圍廣泛的數(shù)字信號(hào)處理的應(yīng)用,包括那些需要傳統(tǒng)的FIR和基于多相的濾波功能。

          注釋:

          1 DSP的插值形式不同于傳統(tǒng)的數(shù)學(xué)插值方法,從現(xiàn)有的數(shù)據(jù)點(diǎn)構(gòu)建新的數(shù)據(jù)點(diǎn),但它的概念是相同的,因?yàn)樗婕暗綇默F(xiàn)有的值產(chǎn)生新的值。

          2 顯然,在第一個(gè)抽頭與0 (零)相加可以省略。然而在實(shí)踐中,由MAC實(shí)行每對(duì)加和乘的操作,因此即使我們與0相加,邏輯仍然存在。

          3 應(yīng)該指出的是,本文對(duì)多相濾波器專題只提供一個(gè)高層次的介紹;文中的例子都做了簡(jiǎn)化。



          關(guān)鍵詞: Lattice 中檔FPGA 多相濾波器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();