新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2016-10-29 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:有限沖擊響應(yīng)(FIR)濾波器是數(shù)字通信系統(tǒng)中常用的基本模塊。文章設(shè)計(jì)了一種,通過(guò)對(duì)其進(jìn)行硬什加速控制。仿真結(jié)果驗(yàn)證了所設(shè)計(jì)的FIR濾波器功能的正確性。

本文引用地址:http://2s4d.com/article/201610/308484.htm

0 引言

隨著數(shù)字通信技術(shù)的快速發(fā)展,高質(zhì)量的信息處理對(duì)濾波器的性能和資源占有量提出了更高的要求。有限沖擊響應(yīng)(FIR)數(shù)字有限沖激響應(yīng)濾波器在語(yǔ)音、譜分析等數(shù)字信號(hào)處理領(lǐng)域有著廣泛的應(yīng)用,是信號(hào)處理系統(tǒng)中重要的組成部分,其性能往往對(duì)整個(gè)系統(tǒng)的性能和功耗產(chǎn)生至關(guān)重要的影響。因此,如何最大程度地優(yōu)化的性能成了電路實(shí)現(xiàn)中需要特別關(guān)注的問(wèn)題。

現(xiàn)代應(yīng)用程序的核心計(jì)算函數(shù)一般通過(guò)軟件編程在處理機(jī)上執(zhí)行,處理速度慢,當(dāng)核心函數(shù)較復(fù)雜時(shí),需要較長(zhǎng)處理時(shí)間,采用硬件處理,能夠減少處理器占用時(shí)間,提高處理器的利用率,從而提高系統(tǒng)的性能?,F(xiàn)代數(shù)字系統(tǒng)中廣泛使用現(xiàn)場(chǎng)可編程邏輯器件()作為實(shí)現(xiàn)平臺(tái),本文提出一種基于設(shè)計(jì),充分利用硬件電路固有的快速特性,替代傳統(tǒng)的軟件算法,減少占用處理機(jī)的資源,提高了FIR濾波器的性能。

1 FIR濾波器設(shè)計(jì)

FIR濾波器具有有限沖擊響應(yīng)系統(tǒng)穩(wěn)定收斂、線性相位的優(yōu)越特性,不會(huì)產(chǎn)生相位失真。FIR數(shù)字濾波器有直接型結(jié)構(gòu)和轉(zhuǎn)置型結(jié)構(gòu)(如圖1所示)等多種實(shí)現(xiàn)結(jié)構(gòu),為提高電路的執(zhí)行效率、簡(jiǎn)化電路,本文采用分布式算法結(jié)構(gòu)或者轉(zhuǎn)置結(jié)構(gòu)的FIR濾波器加以實(shí)現(xiàn)。與基本結(jié)構(gòu)FIR濾波器不同,采樣數(shù)據(jù)同時(shí)進(jìn)入乘法器,先計(jì)算乘積和,再進(jìn)行延遲,通過(guò)流水線的加法器鏈將乘積結(jié)果流水相加,最終得到濾波輸出,優(yōu)化后其硬件邏輯基本單元結(jié)構(gòu)如圖2所示。

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

設(shè)FIR濾波器單位脈沖響應(yīng)h(n)長(zhǎng)度為N,其輸入序列和輸出序列的差分方程為:

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

其中,ωp為歸一化通帶截止角頻率,ωs為歸一化阻帶截止角頻率,δp為峰值通帶紋波,δs為峰值阻帶紋波。由于FIR濾波器階數(shù)N必須為整數(shù),以N=8為例,可得到FIR濾波器的系數(shù)h(n)。如表1所示。

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

2 FPGA自動(dòng)控制設(shè)計(jì)

FIR自動(dòng)化控制過(guò)程見(jiàn)圖3所示。為了解決內(nèi)外時(shí)鐘不同速率問(wèn)題,采用異步FIFO作為緩沖的存儲(chǔ)器。當(dāng)外部數(shù)據(jù)開(kāi)始進(jìn)入時(shí),數(shù)據(jù)依次進(jìn)入異步FIFO;當(dāng)異步FIFO狀態(tài)為滿時(shí),則FPGA開(kāi)始工作,控制異步FIFO中的數(shù)據(jù)依次進(jìn)入FIR流水結(jié)構(gòu)進(jìn)行運(yùn)算,并將計(jì)算結(jié)果依次按順序輸出至后級(jí)同步FIFO中,等待CPU進(jìn)行讀取工作。整個(gè)數(shù)據(jù)處理過(guò)程主要由異步FIFO深度進(jìn)行控制,當(dāng)其狀態(tài)為空且前一幀數(shù)據(jù)處理完全結(jié)束后,整個(gè)系統(tǒng)將保持現(xiàn)有狀態(tài),進(jìn)入休眠過(guò)程,等待下一個(gè)數(shù)據(jù)的進(jìn)入才開(kāi)始喚醒工作。

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

3 實(shí)驗(yàn)結(jié)果及分析

利用Matlab進(jìn)行仿真,假定輸入序列采樣為

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

即50Hz、370HZ、430Hz信號(hào)的混合信號(hào),其中n=1,2,3…100。設(shè)計(jì)N=8的低通FIR濾波器,截止頻率為100HZ。圖4為輸入序列,圖5為輸出濾波結(jié)果。

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

用Modelsim進(jìn)行邏輯仿真,F(xiàn)PGA控制信號(hào)時(shí)序如圖6所示。

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

FIR流水線結(jié)構(gòu)運(yùn)算輸出及運(yùn)算結(jié)果FIFO存儲(chǔ)過(guò)程仿真圖如圖7所示。

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

圖中為FIR流水結(jié)構(gòu)中各級(jí)寄存器狀態(tài)仿真圖,將其提取,并建立仿真表如表2所示。

一種基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

將FIR輸出序列邏輯值與仿真結(jié)果通過(guò)表2比較可知,仿真運(yùn)算結(jié)果一致。綜合上述一系列仿真圖與仿真表可知,F(xiàn)IR流水結(jié)構(gòu)功能正確,實(shí)現(xiàn)了FPGA控制的FIR濾波器設(shè)計(jì)。

4 結(jié)論

本文設(shè)計(jì)了一種基于FPGA的硬件加速器,實(shí)現(xiàn)了大量減少邏輯運(yùn)算單元的流水線的運(yùn)算方式,并通過(guò)Matlab與Modelsim的仿真,驗(yàn)證了所設(shè)計(jì)的FIR流水結(jié)構(gòu)濾波器功能的正確性。



評(píng)論


相關(guān)推薦

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

關(guān)閉