數(shù)字匹配濾波器的優(yōu)化設(shè)計(jì)與FPGA實(shí)現(xiàn)_第1頁(yè)
數(shù)字匹配濾波器的優(yōu)化設(shè)計(jì)與FPGA實(shí)現(xiàn)_第2頁(yè)
數(shù)字匹配濾波器的優(yōu)化設(shè)計(jì)與FPGA實(shí)現(xiàn)_第3頁(yè)
數(shù)字匹配濾波器的優(yōu)化設(shè)計(jì)與FPGA實(shí)現(xiàn)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)字匹配濾波器的優(yōu)化設(shè)計(jì)與FPGA實(shí)現(xiàn)摘要:介紹在直接序列擴(kuò)頻通信中應(yīng)用數(shù)字匹配濾波器實(shí)現(xiàn)m序列同步,分析其具體結(jié)構(gòu),詳細(xì)討論了其基于FPGA(現(xiàn)場(chǎng)可編程門陣列)的性能優(yōu)化。結(jié)果表明,數(shù)字匹配濾波器用FPGA實(shí)現(xiàn)時(shí),能夠大大減少資源占用,并提高工作效率。關(guān)鍵詞:FPGA;數(shù)字匹配濾波器;直接序列擴(kuò)頻 1 引言 在通信系統(tǒng)中,匹配濾波器的應(yīng)用十分廣泛,尤其在擴(kuò)頻通信如在CDMA系統(tǒng)中,用于偽隨機(jī)序列(通常是m序列)的同步捕獲。 匹配濾波器是擴(kuò)頻通信中的關(guān)鍵部件,它的性能直接影響到通信的質(zhì)量。本文從數(shù)字匹配濾波器的理論及結(jié)構(gòu)出發(fā),討論了它在數(shù)字通信直擴(kuò)系統(tǒng)中的應(yīng)用,并對(duì)其基于FPGA的具體實(shí)現(xiàn)進(jìn)行

2、了優(yōu)化。2 數(shù)字匹配濾波捕獲技術(shù) 在直接序列擴(kuò)頻解擴(kuò)系統(tǒng)中,數(shù)字匹配濾波器的捕獲是以接收端擴(kuò)頻碼序列作為數(shù)字FIR濾波器的抽頭系數(shù),對(duì)接收到的信號(hào)進(jìn)行相關(guān)濾波,濾波輸出結(jié)果進(jìn)入門限判決器進(jìn)行門限判決,如果超過(guò)設(shè)定門限,表明此刻本地序列碼的相位與接收擴(kuò)頻序列碼的相位達(dá)到同步。如果并未超過(guò)設(shè)定門限,則表明此刻本地序列碼的相位與接收到的擴(kuò)頻序列碼的相位不同步,需要再次重復(fù)相關(guān)運(yùn)算,直到同步為止,如圖l所示。 數(shù)字匹配濾波器由移位寄存器、乘法器和累加器組成,這只是FIR濾波器的結(jié)構(gòu)形式,只不過(guò)偽碼寄存器中的系數(shù)為-1或+1,實(shí)際并不是真正意義上的乘法。偽碼寄存器中的數(shù)據(jù)可以由一種偽隨機(jī)序列發(fā)生器產(chǎn)生。

3、 數(shù)字匹配濾波器的表達(dá)式為: 其中,x(n)為輸入信號(hào);h(-i)為濾波系數(shù),由接收端擴(kuò)頻碼決定,取值-1或+1,m序列碼元為1,取值為+l,m序列碼元為O,取值為-1。匹配濾波器的長(zhǎng)度N等于擴(kuò)頻比,也就是對(duì)于每一信息符號(hào)的擴(kuò)頻碼元數(shù),即Tb/Tc。當(dāng)輸入信號(hào)x(n)與本地?cái)U(kuò)頻碼h(-i)匹配時(shí),時(shí)輸出Z達(dá)到最大,超出預(yù)先設(shè)定的門限,表示捕獲成功。 很顯然,數(shù)字匹配濾波器中的關(guān)鍵部件是乘法器和累加器,而移位寄存器可以由信號(hào)的相互移位來(lái)實(shí)現(xiàn),例如要實(shí)現(xiàn)8 bit串行數(shù)據(jù)的移位。假設(shè)輸入數(shù)據(jù)序列為din,移位寄存器中的信號(hào)為dO,d1,d2,d3,d4,d5,d6,d7,用VHDL語(yǔ)言中的進(jìn)程語(yǔ)句

4、實(shí)現(xiàn)程序?yàn)椋?每來(lái)一個(gè)時(shí)鐘信號(hào),信號(hào)同時(shí)改變1次,這就實(shí)現(xiàn)了和移位寄存器相同的功能。這樣的進(jìn)程實(shí)現(xiàn)并不需要太多的邏輯單元。 所以影響資源占用和工作效率的主要是乘法器和累加器。下面討論就乘法器和累加器分別加以討論,研究其對(duì)資源和效率的影響。3 乘法器 由于此處采用的是0,1的二進(jìn)制系統(tǒng),所以將邏輯0映射為實(shí)際電平-l,邏輯l映射為實(shí)際電平+1也就是偽碼寄存器中的系數(shù)。 移位寄存器抽頭輸出為有符號(hào)二進(jìn)制補(bǔ)碼,采用乘法器實(shí)現(xiàn)相乘運(yùn)算時(shí),如果偽碼較長(zhǎng),則需要耗費(fèi)太多的邏輯單元且運(yùn)行速度過(guò)慢。 已經(jīng)知道,一個(gè)數(shù)乘以l不改變?cè)?,而乘?l則改變符號(hào),因?yàn)橐莆患拇嫫鞒轭^系數(shù)只能是1和-1,可以考慮用二進(jìn)制

5、的補(bǔ)碼運(yùn)算來(lái)代替相乘1和-1運(yùn)算,這就避免了相乘運(yùn)算對(duì)資源的大量耗費(fèi),并能提高運(yùn)算速度。 可以看到,偽碼寄存器中的系數(shù)為+1或-l,如對(duì)移位抽頭輸出進(jìn)行乘1運(yùn)算,相當(dāng)于不改變?cè)a(bǔ)碼值,而對(duì)移位抽頭輸出進(jìn)行乘-1運(yùn)算,則相當(dāng)于對(duì)原補(bǔ)碼數(shù)值改變符號(hào),并對(duì)低位二進(jìn)制碼元求其補(bǔ)碼值。下面證明上述結(jié)論。 假設(shè)二進(jìn)制補(bǔ)碼數(shù)為 最高位xn-1為符號(hào)位,其取值為0或1,0代表正數(shù),1代表負(fù)數(shù)。 不失一般性,設(shè)xn-2,xn-3,x1,x0均為l,x2到xn-4均設(shè)為0,則二進(jìn)制補(bǔ)碼數(shù)x的后n-1位代表的真值為 2n-2+2n-3+21+20 當(dāng)最高位xn-1=O時(shí),若移位抽頭輸出系數(shù)為1,則x代表的正數(shù)乘1后

6、仍然是xn-2+2n-3+21+20,正數(shù)的補(bǔ)碼表示還是x。 若移位抽頭輸出系數(shù)為-1x代表的正數(shù)和-1相乘后變?yōu)樨?fù)數(shù),取x的后n-1位的樸碼值,可以表示為2n-4+2n-3+23+20,改變x最高位的符號(hào)位為1取2n-4+2n-3+23+20的二進(jìn)制表示作為x的后(n-1)位,即為x與-l相乘的補(bǔ)碼表示; 當(dāng)最高位xn-1=1時(shí),若移位抽頭輸出系數(shù)為1,則x代表的負(fù)數(shù)乘l后的真值仍然是x的后n-l位的補(bǔ)碼值2n-4+2n-3+23+20,負(fù)數(shù)的補(bǔ)碼表示還是x。 若移位抽頭輸出系數(shù)為-1,x代表的負(fù)數(shù)和-l相乘后變?yōu)檎龜?shù),取x的后n-l位的補(bǔ)碼值,可以表示為2n-4+2n-3+23+20,改變

7、x最高位的符號(hào)位為0,取2n-4+2n-3+23+20的二進(jìn)制表示作為x的后(n-1)位,即為x與-1相乘的補(bǔ)碼表示。 結(jié)論成立,二進(jìn)制求補(bǔ)運(yùn)算代替乘法器的處理框圖為如圖2所示。 綜上所述,在數(shù)字匹配濾波器中,因?yàn)闉V波系數(shù)即移位抽頭系數(shù)取值只能為1或-1,所以將有符號(hào)數(shù)的二進(jìn)制補(bǔ)碼的乘法運(yùn)算變?yōu)榍笱a(bǔ)碼運(yùn)算是完全可行的,這就避免了乘法運(yùn)算對(duì)于資源的大量需求,運(yùn)算速度也可大大提高。 在補(bǔ)碼運(yùn)算中,對(duì)每個(gè)移位抽頭輸出同時(shí)并行運(yùn)算,并在后兩個(gè)時(shí)鐘得到并行求補(bǔ)碼運(yùn)算輸出數(shù)據(jù)。 傳統(tǒng)設(shè)計(jì)乘法器時(shí),輸入n1,n2位的2路有符號(hào)補(bǔ)碼,結(jié)果輸出為nl+n2位二進(jìn)制補(bǔ)碼數(shù)據(jù)。 隨著移位寄存器輸入有符號(hào)二進(jìn)制補(bǔ)碼矢

8、量數(shù)據(jù),時(shí)鐘改變一次,移位寄存器每個(gè)抽頭輸出均和相應(yīng)的抽頭系數(shù)做一次相乘運(yùn)算。 求補(bǔ)碼運(yùn)算代替乘法器時(shí),不同于傳統(tǒng)的乘法器設(shè)計(jì),寄存器中每一數(shù)據(jù)只需求其補(bǔ)碼即可,省略了相乘運(yùn)算。從根本上說(shuō)用求補(bǔ)代替相乘運(yùn)算只是功能相同,但可以大大減少資源浪費(fèi)并提高運(yùn)算速度,所以有很大的應(yīng)用優(yōu)勢(shì)。4 累加器 數(shù)字匹配濾波器的移位寄存器每一級(jí)抽頭進(jìn)行1次乘法運(yùn)算,結(jié)果輸出到累加器進(jìn)行累加,當(dāng)運(yùn)算到最后一級(jí)時(shí),輸出累加結(jié)果,送入門限判決器進(jìn)行判決。 當(dāng)對(duì)2個(gè)二進(jìn)制補(bǔ)碼相加時(shí),若2個(gè)加數(shù)都為B bit,考慮到數(shù)據(jù)可能溢出,則加法器的輸出只需要(B+1)bit;而當(dāng)3個(gè)bit二進(jìn)制補(bǔ)碼相加時(shí),輸出則需要(B+2)bit

9、。通過(guò)觀察可以發(fā)現(xiàn):2N個(gè)B bit二進(jìn)制補(bǔ)碼的值可以用(B+N)bit二進(jìn)制表示。4.1 傳統(tǒng)的累加器設(shè)計(jì) 考慮到傳統(tǒng)累加器數(shù)據(jù)可能溢出,故將數(shù)據(jù)位展寬,比如在本仿真中,63個(gè)4位有符號(hào)補(bǔ)碼求和,最后結(jié)果最多為4+6位,其中4為每一加數(shù)的位數(shù),因?yàn)?664,故擴(kuò)展位為6位。所以計(jì)算,如果數(shù)據(jù)位不足10位,正數(shù)在數(shù)據(jù)前加O,負(fù)數(shù)在數(shù)據(jù)前加1,這樣每一數(shù)據(jù)都是10位(包括符號(hào)位),不用考慮溢出問(wèn)題,完全用62個(gè)10位加法器可以實(shí)現(xiàn)。4.2 較優(yōu)的累加器設(shè)計(jì) 隨著移位級(jí)數(shù)的增加,加法器的位數(shù)當(dāng)然也要相應(yīng)增加,第1級(jí)加法器用(B+1)位,第2、3級(jí)用(B+2)位,第4級(jí)到第7級(jí)用(B+3)位,后面依

10、次類推。這樣設(shè)計(jì),每一級(jí)并沒(méi)有用考慮溢出結(jié)果的最多位的加法器,而是遞推增加,可以減少資源浪費(fèi)。4.3 優(yōu)化的累加器設(shè)計(jì) 將匹配濾波器的乘法器輸出數(shù)據(jù)進(jìn)行分組,并執(zhí)行加法運(yùn)算,第一級(jí)的加法器用(B+1)位,第二級(jí)用位,第三級(jí)用(B+3)位,后面依次類推。每一級(jí)的加法器數(shù)量是前面的大約一半,依幾何級(jí)數(shù)遞減,這樣的設(shè)計(jì)在低位相加時(shí)用了較多的加法器并以幾何級(jí)數(shù)遞減,也就避免了高位相加的資源浪費(fèi)。 以63位m序列為例,設(shè)有符號(hào)補(bǔ)碼數(shù)為B位: 將前62位輸入分為2組,每一組輸入和另一組中相應(yīng)輸入作相加運(yùn)算,總共用到31個(gè)(B+1)位加法器; 余l(xiāng)位輸入和31個(gè)(B+1)位加法器輸出再次分組,用到16個(gè)(B

11、+2)位加法器; 16個(gè)(B+2)位加法器輸出再次分組,用到8個(gè)(B+3)位加法器; 16個(gè)(B+2)位加法器輸出再次分組,用到8個(gè)(B+3)位加法器; 8個(gè)(B+2)位加法器輸出再次分組,用到4個(gè)(B+4)位加法器; 4個(gè)(B+4)位加法器輸出再次分組,用到2個(gè)(B+5)位加法器; 2個(gè)(B+5)位加法器輸出再次分組,用到1個(gè)(B+6)位加法器。 63位累加器占用加法器的比較如表1所示。 較優(yōu)累加器的運(yùn)算形式是串行,而優(yōu)化累加器的運(yùn)算形式是并行。 可以很明顯看出,優(yōu)化的累加器比較優(yōu)的累加器更能減少資源占用,運(yùn)行效率也可大大提高。4.4 Quatus模塊化設(shè)計(jì)法 Quatus仿真軟件的Mega

12、Wizard Plug-In Manag-er中提供了parallel_add模塊,用戶可以自由設(shè)計(jì)輸入數(shù)據(jù)位寬,累加數(shù)據(jù)個(gè)數(shù),定義累加輸入數(shù)據(jù)類型,模塊最終自動(dòng)生成適當(dāng)位寬的數(shù)據(jù)輸出(考慮了所有的數(shù)據(jù)溢出)。 與上面的累加器設(shè)計(jì)比較,這樣的設(shè)計(jì)很方便,可讀性強(qiáng),程序簡(jiǎn)練。實(shí)際中邏輯單元占用也不是很多,只比上面多出10左右。所以,如果不是特別關(guān)注資源占用問(wèn)題,這樣的設(shè)計(jì)也不失為一種好方法。5 仿真實(shí)驗(yàn) 筆者通過(guò)Quatus仿真實(shí)驗(yàn)驗(yàn)證了優(yōu)化數(shù)字匹配濾波器的性能。 仿真中采用Altera公司的FPGA,利用6級(jí)線性移位反饋寄存器生成長(zhǎng)度為63的m序列。 圖3是數(shù)字匹配濾波器的2個(gè)周期的相關(guān)同步過(guò)

13、程,圖4是放大后的相關(guān)同步。 在本次仿真中,clk為時(shí)鐘信號(hào),address為地址信號(hào),輸入信號(hào)為din,數(shù)字匹配濾波器抽頭信號(hào)為m。為了方便起見(jiàn),做了2個(gè)只讀存儲(chǔ)器din_rom和m_rom。din_rom中存儲(chǔ)了63 bit的m序列的二進(jìn)制補(bǔ)碼表示作為輸入,其中0表示11,l表示Ol,16進(jìn)制表示分別為3和l。m_rom中存儲(chǔ)了63 bit m序列的二進(jìn)制碼元,作為數(shù)字匹配濾波器的抽頭同步模塊的輸入。result為計(jì)算出的相關(guān)值,tongbu為同步信號(hào)。 每來(lái)一個(gè)時(shí)鐘脈沖,地址加1,依次讀取din_rom中的數(shù)據(jù),圖4中的地址為10進(jìn)制表示。m_rom地址始終置“0”,圖3和圖4中是m_rom中二進(jìn)制數(shù)據(jù)的16進(jìn)制表示。 63級(jí)移位濾波器同時(shí)做補(bǔ)碼運(yùn)算,當(dāng)m_rom輸出的二進(jìn)制矢量位為1時(shí),不改變相應(yīng)位原補(bǔ)碼值,矢量位為0時(shí),求其相反數(shù)(-1的相反數(shù)為1,1的相反數(shù)為-1)的補(bǔ)碼值。將相關(guān)門限設(shè)為63,當(dāng)同步未完成時(shí),相關(guān)值信號(hào)result的1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論