多相濾波器的基本概念是把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(zhǎng) = 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é)
所有這一切都意味著,多相基于濾波器的抽取器、內(nèi)插器和重采樣功能是非常適合用更小的中檔FPGA來實(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和基于多相的濾波功能。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602977 -
濾波器
+關(guān)注
關(guān)注
161文章
7795瀏覽量
177990 -
多相濾波
+關(guān)注
關(guān)注
0文章
10瀏覽量
10312
原文標(biāo)題:FPGA進(jìn)行多路并行插值濾波(多相濾波)的實(shí)現(xiàn)原理
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論