1.AM解調(diào)概論
AM解調(diào)中一般的方式是進(jìn)行全波整流或者半波整流,然后經(jīng)過(guò)一個(gè)低通濾波器即可。
本文為數(shù)字AM解調(diào)。本文采取全波整流加FIR低通濾波器的方式進(jìn)行解調(diào)。
在數(shù)字通信系統(tǒng)中一般全波整流實(shí)現(xiàn)方式就是取絕對(duì)值,半波整流就是直接舍棄負(fù)值。
下面一小段代碼就是取絕對(duì)值的。
那為什么取絕對(duì)值,然后經(jīng)過(guò)低通濾波器就能出來(lái)包絡(luò)信號(hào)呢?關(guān)于此處的理論推導(dǎo)。去看書(shū)吧。
2.FIR濾波器概述
FIR濾波器是什么樣的結(jié)構(gòu),有什么樣的特性等等等為了避免大家煩我在這里就不抄課本了。接下來(lái)我們就簡(jiǎn)單的理解下FIR濾波器。
注意本說(shuō)法僅僅為新手入門(mén)了解。直觀了解FIR濾波器的特性。許多定義和概念可能存在紕漏。希望廣大讀者理性參考。
FIR濾波器的結(jié)構(gòu)如下:
我們假設(shè)圖中的n就為10。接下來(lái)我們拋開(kāi)FIR這個(gè)概念。假設(shè)我就是要實(shí)現(xiàn)10個(gè)數(shù)字取個(gè)平均數(shù)。那么我只要讓h(0),h(1),h(2)……h(huán)(9),均為0.1。那么每個(gè)數(shù)字進(jìn)來(lái)被乘以0.1。然后把10個(gè)數(shù)字加起來(lái)。這就是一個(gè)均值濾波。(這種把兩組數(shù)據(jù)對(duì)應(yīng)相乘然后再加載一起的操作就是卷積的概念)。
依據(jù)經(jīng)驗(yàn)我們知道,當(dāng)取的數(shù)字越多(即n越大)這個(gè)濾波器的輸出值就更穩(wěn)定。消耗的資源對(duì)應(yīng)著也會(huì)越多。
上述舉得例子為求均值。但是假設(shè)說(shuō)我們現(xiàn)在要做更復(fù)雜的需求,比如濾除一定頻率的波形。那就需要更加準(zhǔn)確的計(jì)算各個(gè)參數(shù)。所幸我們生于偉大的時(shí)代,有很多工具可以代替我們算出更合適的抽頭系數(shù)。例如matlab的FDATools以及FilterSolutions 2015。
3. FIR濾波器 參數(shù)計(jì)算
打開(kāi)Filter Solutions這個(gè)軟件。選擇數(shù)字濾波器(這個(gè)工具功能十分強(qiáng)大,可以設(shè)計(jì)有源,無(wú)源,微帶線(xiàn),數(shù)字等等不同種類(lèi)的濾波器)。
打開(kāi)軟件設(shè)置如下,因?yàn)樵賹?shí)現(xiàn)的時(shí)候FIR濾波器采用了完全對(duì)稱(chēng)的結(jié)構(gòu)。我們選擇一個(gè)125階的FIR濾波器。選一個(gè)合適的窗函數(shù),至于不同的窗函數(shù)有什么不同的性能表現(xiàn)在這里就不贅述了。
由于我們的包絡(luò)信號(hào)是1M。選擇一個(gè)2M的低通濾波器。
左上方有各種選項(xiàng),我們來(lái)查看一下它的頻率響應(yīng)。看起來(lái)還是可以的。
然后點(diǎn)擊右上角的SynthesizeFilter、
點(diǎn)擊選項(xiàng)卡的Vec選項(xiàng),然后Copy Num/Den ,FIR濾波器的抽頭系數(shù)就復(fù)制到剪切板上了。
4. FIR濾波器 XILINX IP核實(shí)現(xiàn)
添加一個(gè)FIR濾波器,把系數(shù)復(fù)制進(jìn)去(注意只復(fù)制括號(hào)內(nèi)的內(nèi)容)。
可以看到左側(cè)的頻率相應(yīng)圖。其中紅色線(xiàn)為設(shè)計(jì)的參數(shù)。藍(lán)色線(xiàn)為經(jīng)過(guò)定點(diǎn)量化后的抽頭系數(shù)的頻率響應(yīng)。圖中的橫坐標(biāo)為歸一化的頻率(不知道什么叫歸一化頻率的自行百度),縱坐標(biāo)為幅度的衰減??梢钥吹皆O(shè)計(jì)效果還是可以的。
濾波器也可以選則抽取或者插值或者希爾伯特或者最簡(jiǎn)單的單速率濾波器。關(guān)于抽取核插值我會(huì)在后面更新的文章中寫(xiě)出,希望大家持續(xù)關(guān)注。
為了節(jié)約資源我們可以設(shè)計(jì)成抽取濾波器。但是為了避免造成大家的困惑,本文中依然采用單速率的濾波器。
我們進(jìn)行第二頁(yè)的設(shè)置
時(shí)鐘頻率核輸入采樣頻率均為100M。
接下來(lái)進(jìn)行第三頁(yè)的設(shè)置最上面的哪個(gè)就是抽頭系數(shù)的相關(guān)設(shè)置,在這里我們可以調(diào)節(jié)量化(定點(diǎn)化)的參數(shù)。從而讓前文提到的紅線(xiàn)和藍(lán)線(xiàn)更接近(即實(shí)現(xiàn)效果更接近設(shè)計(jì)效果)。當(dāng)然調(diào)節(jié)不同的參數(shù),其資源占用和性能表現(xiàn)也會(huì)有所不同。下面的幾個(gè)選項(xiàng)大家可以自行研究。
后面兩頁(yè)內(nèi)容是設(shè)計(jì)實(shí)現(xiàn)時(shí)的面積或者速度優(yōu)化啥的。大家自行研究在本設(shè)計(jì)中不做修改。
在implementation Details (實(shí)現(xiàn)細(xì)節(jié)中)可以看到數(shù)據(jù)的輸出格式。其中定點(diǎn)數(shù)為[34:17]。也可以發(fā)現(xiàn)資源占用為63個(gè)乘法器,因?yàn)楸驹O(shè)計(jì)中的FIR濾波器為對(duì)稱(chēng)結(jié)構(gòu)。所以可以省下一半的資源。
這樣我們的FIR濾波器就基本設(shè)計(jì)完成了。
5. FIR濾波器 XILINX 實(shí)現(xiàn)與驗(yàn)證。
這部分的代碼比較簡(jiǎn)單,我們講上節(jié)課的Modout信號(hào)接出來(lái)后進(jìn)行取絕對(duì)值。得到的信號(hào)是20bit的。我們選取其中的高16bit送入FIR濾波器。然后就可以得到輸出了,F(xiàn)IR濾波器的輸入輸出信號(hào)還有一些有效,握手信號(hào)之類(lèi)的,大家自行查閱手冊(cè)了解。
接下來(lái)進(jìn)行仿真,仿真中我們把FIR輸出的[33:17]位單獨(dú)拿出來(lái)進(jìn)行顯示即可。最終效果如圖。
-
FPGA
+關(guān)注
關(guān)注
1620文章
21510瀏覽量
598930 -
低通濾波器
+關(guān)注
關(guān)注
13文章
470瀏覽量
47212 -
數(shù)字信號(hào)處理
+關(guān)注
關(guān)注
15文章
539瀏覽量
45691 -
fir濾波器
+關(guān)注
關(guān)注
1文章
93瀏覽量
18960 -
半波整流
+關(guān)注
關(guān)注
0文章
52瀏覽量
12424
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論