0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機(jī)和EP3C25E144C8N芯片實(shí)現(xiàn)FIR濾波器的設(shè)計(jì)方案

電子設(shè)計(jì) ? 來源:現(xiàn)代電子技術(shù) ? 作者:胡紫英,周維龍,聶 ? 2021-03-24 09:18 ? 次閱讀

數(shù)字濾波(idgital filter)是由數(shù)字乘法器、加法器和延時(shí)單元組成的一種計(jì)算方法。其功能是對(duì)輸入離散信號(hào)的數(shù)字代碼進(jìn)行運(yùn)算處理,以達(dá)到改變信號(hào)頻譜的目的。數(shù)字濾波器根據(jù)頻域特性可分為低通、高通、帶通和帶阻4個(gè)基本類型;根據(jù)時(shí)域特性可分為無限脈沖響應(yīng)(infinite impulse response,IIR)濾波器和有限脈沖響應(yīng)(finite impulse response,F(xiàn)IR)濾波器。FIR濾波器不存在穩(wěn)定性和是否可實(shí)現(xiàn)的問題,容易做到線性相位,故在數(shù)據(jù)通信、圖像處理等領(lǐng)域廣泛應(yīng)用。

目前,F(xiàn)IR濾波器的硬件實(shí)現(xiàn)有以下幾種方式:一種是使用通用數(shù)字濾波器集成電路,這種電路使用簡單,但是由于字長和階數(shù)的規(guī)格較少,不易完全滿足實(shí)際需要;雖然可采用多片擴(kuò)展來滿足要求,但會(huì)增加體積和功耗,因而在實(shí)際應(yīng)用中受到限制。另一種是使用DSP芯片,DSP芯片有專用的數(shù)字信號(hào)處理函數(shù)可調(diào)用,實(shí)現(xiàn)FIR濾波器相對(duì)簡單,但是由于程序順序執(zhí)行,速度受到限制。而且,就是同一公司不同系統(tǒng)的DSP芯片,其編程指令也會(huì)有所不同,開發(fā)周期較長。還有一種是使用可編程邏輯器件,如FPGA(field programmable gate array),即現(xiàn)場(chǎng)可編程門陣列,有著規(guī)整的內(nèi)部邏輯塊整列和豐富的連線資源,特別適合用于細(xì)粒度和高并行度結(jié)構(gòu)的FIR濾波器實(shí)現(xiàn),相對(duì)于串行運(yùn)算主導(dǎo)的通用DSP芯片來說,并行性和可擴(kuò)展性都更好。

本文介紹一種基于SoPC的FIR濾波器設(shè)計(jì)方案,設(shè)計(jì)流程如圖l所示。該設(shè)計(jì)方法程序簡單,調(diào)試方便,得到的FIR濾波器精確度高。

基于單片機(jī)和EP3C25E144C8N芯片實(shí)現(xiàn)FIR濾波器的設(shè)計(jì)方案

1 FIR濾波器原理

FIR數(shù)字濾波器是一種非遞歸系統(tǒng),其沖激響應(yīng)總是有限長的,其系統(tǒng)函數(shù)可以記為:

,最基本的FIR濾波器可用下式表示

輸入采樣序列;h(m)是濾波器系數(shù);N是濾波器的階數(shù);y(n)表示濾波器的輸出序列。也可以用卷積來表示輸出序列y(n)與x(n),h(n)的關(guān)系:

y(n)=x(n)*h(n)

圖2顯示了一個(gè)典型的直接T型3階FIR濾波器,其輸出序列y(n)滿足下列等式:

在該FIR濾波器中,總共存在3個(gè)延時(shí)結(jié),4個(gè)乘法單元,1個(gè)4輸入的加法器。如果采用普通的數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn),只能用串行的方式順序地執(zhí)行延時(shí)、乘加操作,不可能在1個(gè)DSP處理器指令周期內(nèi)完成,必須用多個(gè)指令周期來完成。但如果采用FPGA來實(shí)現(xiàn),就可以采用并行結(jié)構(gòu),在1個(gè)時(shí)鐘周期內(nèi)得到1個(gè)FIR濾波器的輸出。不難發(fā)現(xiàn),圖2的電路結(jié)構(gòu)是一種流水線結(jié)構(gòu),這種結(jié)構(gòu)在硬件系統(tǒng)中有利于并行高速運(yùn)行。

2 FIR濾波器的實(shí)現(xiàn)

Altera提供的FIR Complier是結(jié)合Altera FPGA器件的FIR Filter Core,DSP Builder與FIR Compiler可以緊密結(jié)合起來。DSP Builder提供了FIR Core的應(yīng)用環(huán)境和仿真驗(yàn)證環(huán)境。

2.1 建立模型文件

為了調(diào)用FIR IP Core,在Simulink環(huán)境中新建模型文件,放置Sigtlal Compiler模塊和FIR模塊。啟動(dòng)Simulink的方法:打開Matlab,在主命令窗口直接鍵入Simulink,按回車即可。然后打開Altera DSP Builder模塊,在MegaCore Functions調(diào)出fir_compiler_v7_0。

2.2 配置FIR濾波器核

雙擊模型中的FIR模塊,在彈出來的選擇窗口中有:關(guān)于這個(gè)核(about this core)、程序說明書(documentation)、顯示元件(display symb01)、步驟1確定參數(shù)(Stepl:Parameterize)和步驟2生成(Step2:Generate)等4個(gè)不同的選項(xiàng)。點(diǎn)擊stepl,便打開了FIR濾波器核的參數(shù)設(shè)置窗口,如圖3所示。

由圖3可見,濾波器的系數(shù)精度為32位,器件為CycloneⅢ,結(jié)構(gòu)為并行濾波器,結(jié)構(gòu)選擇了1級(jí)流水線,濾波器由LC邏輯宏單元構(gòu)成,系數(shù)數(shù)據(jù)存于FPGA的M9K模塊中,1個(gè)輸入通道,32位有符號(hào)并行輸入,全精度數(shù)據(jù)輸出。設(shè)定后會(huì)直接顯示濾波器的頻率響應(yīng)(frequency res-ponse)或時(shí)域響應(yīng)及系數(shù)值(timeresponse & coefficeient values)。由其頻率響應(yīng)圖可以看出,此FIR濾波器為低通濾波器。如果不符合設(shè)計(jì)要求,則可以通過對(duì)Edit Coefficient Set選項(xiàng),對(duì)濾波器進(jìn)行重新配置。

2.3 生成VHDL語言

完成FIR濾波器核配置后,便可得到設(shè)計(jì)好的濾波器,加入輸入/輸出信號(hào),形成如圖4所示電路。點(diǎn)擊SignalCompiler,再選擇Anal-yze,選擇Sigle step compilation中的Convert MDL to VHDL,就可以生成對(duì)應(yīng)的VHDL語言。

QuartusⅡ中打開編譯后生成的fir.qpf工程文件,可以得到濾波器的VHDL語言,其部分代碼如下:

編譯成功后,可以將其轉(zhuǎn)換成元件。

2.4 系統(tǒng)功能仿真

在Matlab中,建立M文件,運(yùn)用前面設(shè)置好參數(shù)所生成的FIR濾波器,打開FIR濾波器時(shí)域響應(yīng)與系數(shù)值(time response & coefficeient vahles)。得到該濾波器的時(shí)域響應(yīng)和系數(shù)值如圖5所示,由該系數(shù)表確定濾波器,并進(jìn)行算法級(jí)仿真,得到如圖6所示的波形。

圖6(a)為濾波前信號(hào),圖6(b)為濾波后信號(hào)。從仿真波形可以看出,經(jīng)過FIR濾波器之后,高次諧波信號(hào)被很好地濾除了,達(dá)到了預(yù)定的設(shè)計(jì)目標(biāo)。

3 基本FPGA片上系統(tǒng)的功能測(cè)試

設(shè)計(jì)目標(biāo)器件選用美國Altera公司Cyclone系列FPGA器件中的EP3C25E144C8N芯片,通過開發(fā)工具QuartusⅡ?qū)Ω鱾€(gè)模塊的VHDL源程序及頂層電路進(jìn)行編譯、邏輯綜合、電路的糾錯(cuò)、驗(yàn)證、自動(dòng)布局布線及仿真等各種測(cè)試,最終將設(shè)計(jì)編譯的數(shù)據(jù)下載到芯片中,同時(shí)與單片機(jī)AT89C51結(jié)合,進(jìn)一步進(jìn)行數(shù)據(jù)的快速處理和控制,實(shí)現(xiàn)鍵盤可設(shè)置參數(shù)及LCD顯示。經(jīng)實(shí)際電路測(cè)試驗(yàn)證,達(dá)到了設(shè)計(jì)的要求。

4 結(jié)語

這種基于SoPC數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn),不僅利用Matlab中的Simulink與Alterl DSP Builder工具確定FIR濾波器系數(shù),不用編程,只需簡單的設(shè)置,而且通過VHDL層次化設(shè)計(jì)方法,同時(shí)使FPGA與單片機(jī)相結(jié)合,采用C51及VHDL語言模塊化設(shè)計(jì)思想進(jìn)行優(yōu)化編程,進(jìn)一步完善了數(shù)據(jù)的快速處理和有效控制,提高了設(shè)計(jì)的靈活性、可靠性,也增強(qiáng)了系統(tǒng)功能的可擴(kuò)展性。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423663
  • 濾波器
    +關(guān)注

    關(guān)注

    161

    文章

    7817

    瀏覽量

    178132
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于matlab FPGA verilog的FIR濾波器設(shè)計(jì)

    今天和大俠簡單聊一聊基于matlab FPGA verilog的FIR濾波器設(shè)計(jì),話不多說,上貨。 本次設(shè)計(jì)實(shí)現(xiàn)8濾波器,9個(gè)系數(shù)
    發(fā)表于 07-04 20:11

    請(qǐng)問altera芯片EP2C5T144C8C8N的區(qū)別?

    請(qǐng)問altera芯片EP2C5T144C8C8N的區(qū)別? 謝謝
    發(fā)表于 03-30 22:37

    EP3C25E144C8N JTTA口無法正常工作

    本人學(xué)生一枚,在畫的第一塊FPGA板上采用的EP3C25E144這個(gè)片子,實(shí)際調(diào)試中遇到了如下問題,焊上去之后整個(gè)JTAG口無法正常工作,TMS與TDI電壓時(shí)鐘與VCCIO存在一個(gè)壓降,VCCIO用的為3.3v,而這個(gè)量管腳的電壓為2.5v,各為幫忙看下JTAG口這部分電路是否存在問題,謝謝的了。
    發(fā)表于 03-30 21:24

    用proteus仿真單片機(jī)實(shí)現(xiàn)fir數(shù)字濾波器

    要做畢設(shè),用proteus仿真,單片機(jī)實(shí)現(xiàn)fir數(shù)字濾波器,我已經(jīng)用matlab設(shè)計(jì)出來了fir濾波器
    發(fā)表于 05-22 11:27

    EP1C3T144C8N

    誰有EP1C3T144C8N中文資料手冊(cè),可以給我發(fā)一份嗎?
    發(fā)表于 12-07 19:27

    請(qǐng)問哪位大神有EP3C5E144A7N或者EP3C5E144C7N的FPGA開發(fā)板原理圖?????跪求?。。?/a>

    請(qǐng)問哪位大神有EP3C5E144A7N或者EP3C5E144C7N的FPGA開發(fā)板原理圖?????跪求?。。?/div>
    發(fā)表于 08-14 17:58

    第37章 FIR濾波器實(shí)現(xiàn)

    轉(zhuǎn)dsp系列教程 本章節(jié)講解FIR濾波器的低通,高通,帶通和帶阻濾波器實(shí)現(xiàn)。 37.1 FIR濾波器
    發(fā)表于 09-29 08:32

    如何設(shè)計(jì)低通FIR濾波器

    此示例顯示如何設(shè)計(jì)低通FIR濾波器。這里介紹的許多概念可以擴(kuò)展到其他響應(yīng),如高通,帶通等。FIR濾波器被廣泛使用,因?yàn)樗鼈兙哂袕?qiáng)大的設(shè)計(jì)算法,以非遞歸形式
    發(fā)表于 08-23 10:00

    EP3C5E144I7N芯片是需要寫程序進(jìn)去的嗎

    請(qǐng)教各位大神:芯片EP3C5E144I7N是需要寫程序進(jìn)去才能用嗎?
    發(fā)表于 08-23 21:03

    基于單片機(jī)AT89C51的MP3播放系統(tǒng)的設(shè)計(jì)方案

    提出一種基于單片機(jī)AT89C51SND1C的MP3播放系統(tǒng)的設(shè)計(jì)方案。單片機(jī)集成了專用的解碼
    發(fā)表于 11-23 11:44 ?489次下載

    基于FPGA的FIR濾波器的性能研究

    目前FIR濾波器的一般設(shè)計(jì)方法比較繁瑣,開發(fā)周期長,如果采用設(shè)計(jì)好的FIR濾波器的IP核,則開發(fā)效率大為提高。本方案基于Altera公司的C
    發(fā)表于 05-06 16:01 ?84次下載
    基于FPGA的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的性能研究

    FIR數(shù)字濾波器設(shè)計(jì)方案

    文中基于分布式算法實(shí)現(xiàn)FIR數(shù)字濾波器設(shè)計(jì)方案。該方案分為3部分,首先是利用Mat-lab軟件
    發(fā)表于 12-07 16:22 ?6次下載
    <b class='flag-5'>FIR</b>數(shù)字<b class='flag-5'>濾波器</b><b class='flag-5'>設(shè)計(jì)方案</b>

    單片機(jī)程控濾波器設(shè)計(jì)詳解

    本文主要闡述了單片機(jī)程控濾波器設(shè)計(jì),分別從設(shè)計(jì)要求、設(shè)計(jì)方案、硬件設(shè)計(jì)以及軟件設(shè)計(jì)這幾個(gè)方面詳細(xì)介紹。
    發(fā)表于 04-13 11:06 ?1w次閱讀
    <b class='flag-5'>單片機(jī)</b>程控<b class='flag-5'>濾波器</b>設(shè)計(jì)詳解

    如何使用FPGA實(shí)現(xiàn)分布式算法的高階FIR濾波器

    提出一種新的高階FIR濾波器的FPGA實(shí)現(xiàn)方法。該方法運(yùn)用多相分解結(jié)構(gòu)對(duì)高階FIR濾波器進(jìn)行降階處理,采用改進(jìn)的分布式算法來
    發(fā)表于 03-23 15:44 ?31次下載
    如何使用FPGA<b class='flag-5'>實(shí)現(xiàn)</b>分布式算法的高階<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>

    STM8單片機(jī)CAN濾波器的設(shè)置

    STM8單片機(jī)CAN濾波器的設(shè)置
    的頭像 發(fā)表于 10-17 14:50 ?2449次閱讀
    STM<b class='flag-5'>8</b><b class='flag-5'>單片機(jī)</b>CAN<b class='flag-5'>濾波器</b>的設(shè)置