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

數(shù)字信號處理的FPGA實(shí)現(xiàn)
輕松設(shè)計(jì)數(shù)字FIR濾波器

基于FPGA的硬件加速器的FIR流水結(jié)構(gòu)濾波器實(shí)現(xiàn)、設(shè)計(jì)及驗(yàn)證

FPGA的FIR抽取濾波器設(shè)計(jì)教程

基于FIR濾波器結(jié)構(gòu)實(shí)現(xiàn)級聯(lián)型信號處理器FPGA的設(shè)計(jì)

如何使用FPGA實(shí)現(xiàn)FIR抽取濾波器的設(shè)計(jì)

FIR濾波器代碼及仿真設(shè)計(jì)

IIR濾波器和FIR濾波器的區(qū)別
基于FPGA實(shí)現(xiàn)FIR數(shù)字濾波器

評論