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

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

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

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

FPGA學(xué)習(xí)交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-06-08 09:41 ? 次閱讀


203537ag09vfggf80289rg.png


本例程實(shí)現(xiàn)8階濾波器,9個(gè)系數(shù),由于系數(shù)的對(duì)稱性,h(0)=h(8),h1(1)=h(7),h(2)=h(6),h(3)=h(5),h(4)為中間單獨(dú)一個(gè)系數(shù)。根據(jù)公式:203540r0khhz1gypbzzey1.png


實(shí)現(xiàn)框圖:

203538ahze28diee2n8ueh.png



203538b2c33032tdjdtd2r.png



推導(dǎo)出當(dāng)系數(shù)N為偶數(shù)時(shí),例如N=4:y(n)=h(0)*{x(0)+x(n-3)}+h(1)*{x(n-1)+x(n-2)}

當(dāng)系數(shù)N為奇數(shù)時(shí),例如N=5:

y(n)=h(0)*{x(0)+x(n-1)}+h(1)*{x(n-1)+x(n-3)}+h(2)*x(n-2)


1、用matlab生成和量化濾波器系數(shù)

203539zlmaen6dihdlvkoi.png


設(shè)置參數(shù)后,點(diǎn)擊“Design Filter”按鈕,“file”—“export”,把濾波器系數(shù)導(dǎo)出到workspace,如下圖:

203539gi83i88dj88mqxd2.png



執(zhí)行命令:Num=Num’ ,把濾波器系數(shù)拷貝到文件COFFICIENT.dat中。

量化系數(shù):在matlab中運(yùn)行quantization.m

2、說明

用matlab程序sin_1MHz_gen.m生成正弦波波形表,改變變量f0 = 1.5e6可以生成不同頻率的波形。把第一個(gè)周期的波形數(shù)據(jù)存入signal_1m.dat文件中,存入的數(shù)據(jù)個(gè)數(shù)為Fs/Fo的最小正整數(shù)之比的分子,比如Fs=25MHz,F(xiàn)o=0.3MHz,Fs/Fo=250/3(Fs=25/24MHz),則存入文件signal_1m.dat的波形數(shù)據(jù)個(gè)數(shù)為開頭的250個(gè)數(shù)據(jù)。相應(yīng)的signal_gen0.v中的語句if(i0<50)相應(yīng)的改為if(i0<250)。仿真時(shí)signal_1m.dat放在仿真目錄下

3、濾波器的multisim仿真

運(yùn)行matlab,用sin_1MHz_gen.m產(chǎn)生5MHz(f0 =5e6)正弦波信號(hào),F(xiàn)s/Fo=5,把數(shù)據(jù)hex_sin_data的前5個(gè)數(shù)據(jù)存入signal_1m.dat文件,相應(yīng)的signal_gen0.v中的語句if(i0<50)相應(yīng)的改為if(i0<5)。

仿真的波形如下圖(fir濾波器的輸入輸出信號(hào)):

203539zz6zcgp2f8rqpr23.png



運(yùn)行matlab,用sin_1MHz_gen.m產(chǎn)生1MHz(f0 =1e6)正弦波信號(hào),F(xiàn)s/Fo=25,把數(shù)據(jù)hex_sin_data的前5個(gè)數(shù)據(jù)存入signal_1m.dat文件,相應(yīng)的signal_gen0.v中的語句if(i0<5)相應(yīng)的改為if(i0<25)。

仿真的波形如下圖(fir濾波器的輸入輸出信號(hào)):

203540jihbwh92xi8bwpii.png


由此可見FIR對(duì)帶外信號(hào)起到衰減的作用。

部分代碼:

//Date :2012-5-27
//Description : 8 階FIR濾波器 ,通帶2MH,阻帶8MHz ,帶外衰減80dB,通帶波動(dòng)1dB
//Uesedfor
//Taobao :
//E-mail :2352517093@qq.com
//==========================================================================
`timescale 1 ns / 1 ns

module fir_filter
(
i_fpga_clk ,
i_rst_n ,
i_filter_in,
o_filter_out
);

input i_fpga_clk ; //25MHz
input i_rst_n ;
input signed [7:0] i_filter_in ; //數(shù)據(jù)速率25Mh
output reg signed [7:0] o_filter_out; //濾波輸出

//==============================================================
//8階濾波器系數(shù),共9個(gè)系數(shù),系數(shù)對(duì)稱
//==============================================================
wire signed[15:0] coeff1 = 16'd239 ;
wire signed[15:0] coeff2 = 16'd1507;
wire signed[15:0] coeff3 = 16'd4397;
wire signed[15:0] coeff4 = 16'd7880;
wire signed[15:0] coeff5 = 16'd9493;

//===============================================================
//延時(shí)鏈
//===============================================================
reg signed [7:0] delay_pipeline1 ;
reg signed [7:0] delay_pipeline2 ;
reg signed [7:0] delay_pipeline3 ;
reg signed [7:0] delay_pipeline4 ;
reg signed [7:0] delay_pipeline5 ;
reg signed [7:0] delay_pipeline6 ;
reg signed [7:0] delay_pipeline7 ;
reg signed [7:0] delay_pipeline8 ;

always@(posedge i_fpga_clk or negedge i_rst_n)
if(!i_rst_n)
begin
delay_pipeline1 <= 8'b0 ;
delay_pipeline2 <= 8'b0 ;
delay_pipeline3 <= 8'b0 ;
delay_pipeline4 <= 8'b0 ;
delay_pipeline5 <= 8'b0 ;
delay_pipeline6 <= 8'b0 ;
delay_pipeline7 <= 8'b0 ;
delay_pipeline8 <= 8'b0 ;
end
else
begin
delay_pipeline1 <= i_filter_in ? ? ;

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

    關(guān)注

    1624

    文章

    21539

    瀏覽量

    600514
  • matlab
    +關(guān)注

    關(guān)注

    180

    文章

    2952

    瀏覽量

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

    關(guān)注

    159

    文章

    7664

    瀏覽量

    177194
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    matlabFPGA數(shù)字信號(hào)處理系列 Verilog 實(shí)現(xiàn)并行 FIR 濾波器

    )—— Matlab 與 Vivado 聯(lián)合仿真 FIR 濾波器?mp.weixin.qq.com/s/m2xXxyb1xO3K8T3HOnIxYQ 4. 仿真 (1)Verilog
    發(fā)表于 05-24 07:48

    基于matlab FPGA verilogFIR濾波器設(shè)計(jì)

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

    并行FIR濾波器Verilog設(shè)計(jì)

    濾波器系數(shù),量化后應(yīng)用到FPGA設(shè)計(jì)中。MATLAB提供了基于窗函數(shù)設(shè)計(jì)法的fir1函數(shù)、設(shè)計(jì)任意響應(yīng)濾波器
    發(fā)表于 09-25 17:44

    基于MATLAB和Quartus II 的FIR濾波器設(shè)計(jì)與

    本文綜合介紹了基于FPGA 軟件Quartus II 和MATLABFIR 濾波器的設(shè)計(jì)仿真,將兩大軟件綜合運(yùn)用后大大縮減了設(shè)計(jì)研發(fā)的時(shí)間,在算法結(jié)構(gòu)上利用了流水線等優(yōu)化方式。
    發(fā)表于 11-30 14:21 ?117次下載

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)證 FIR濾波器是一種應(yīng)用廣泛的基本數(shù)字信號(hào)處理元件。
    發(fā)表于 05-13 17:16 ?54次下載

    MATLAB設(shè)計(jì)FIR濾波器的方法

    MATLAB設(shè)計(jì)FIR濾波器的方法 摘? 要 介紹了利用MATLAB信號(hào)處理工具箱進(jìn)行FIR濾波器
    發(fā)表于 01-16 18:12 ?1.5w次閱讀
    用<b class='flag-5'>MATLAB</b>設(shè)計(jì)<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的方法

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)

    基于MATLAB與QUARTUS II的FIR濾波器設(shè)計(jì)與驗(yàn)證 1 引言    FIR數(shù)字濾波器能夠滿足
    發(fā)表于 12-12 11:23 ?2555次閱讀
    基于<b class='flag-5'>MATLAB</b>與QUARTUS II的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>設(shè)計(jì)與驗(yàn)

    基于MATLABFPGAFIR低通濾波器的設(shè)計(jì)

    充分利用有限沖擊響應(yīng)數(shù)字濾波器(Finite Impulse Response digital filter ,FIR)系數(shù)的對(duì)稱特性,借助于MATLAB語言和現(xiàn)場可編程門陣列(FPGA
    發(fā)表于 08-05 14:23 ?82次下載
    基于<b class='flag-5'>MATLAB</b>及<b class='flag-5'>FPGA</b>的<b class='flag-5'>FIR</b>低通<b class='flag-5'>濾波器</b>的設(shè)計(jì)

    基于MATLABFPGAFIR濾波器設(shè)計(jì)與仿真

    數(shù)字濾波器是數(shù)字信號(hào)處理領(lǐng)域內(nèi)的重要組成部分。FIR濾波器又以其嚴(yán)格的線性相位及穩(wěn)定性高等特性被廣泛應(yīng)用。本文結(jié)合MATLAB工具軟件介紹了FIR
    發(fā)表于 09-25 11:34 ?120次下載
    基于<b class='flag-5'>MATLAB</b>與<b class='flag-5'>FPGA</b>的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>設(shè)計(jì)與仿真

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

    基于Matlab/Simulink的FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)。
    發(fā)表于 01-15 15:16 ?39次下載

    基于matlabfpgaFIR濾波器設(shè)計(jì)

    基于matlabfpgaFIR濾波器設(shè)計(jì),有興趣的同學(xué)可以下載學(xué)習(xí)
    發(fā)表于 04-27 15:51 ?58次下載

    基于MATLABFIR濾波器設(shè)計(jì)與濾波

    基于MATLABFIR濾波器設(shè)計(jì)與濾波。
    發(fā)表于 12-14 22:08 ?64次下載

    基于MATLAB與QUARTUS+II的FIR濾波器設(shè)計(jì)與驗(yàn)證

    基于MATLAB與QUARTUS+II的FIR濾波器設(shè)計(jì)與驗(yàn)證
    發(fā)表于 09-18 10:17 ?11次下載
    基于<b class='flag-5'>MATLAB</b>與QUARTUS+II的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>設(shè)計(jì)與驗(yàn)證

    FIR濾波器FPGA設(shè)計(jì)與實(shí)現(xiàn)

    ,結(jié)合MATLAB軟件提供的專用數(shù)字濾波器設(shè)計(jì)工具包FDATOOL,以及QuartusⅡ軟件提供的FIR核實(shí)現(xiàn)快速、便捷的設(shè)計(jì)FIR濾波器
    發(fā)表于 12-21 14:53 ?14次下載
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的<b class='flag-5'>FPGA</b>設(shè)計(jì)與實(shí)現(xiàn)

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

    數(shù)字濾波器從實(shí)現(xiàn)結(jié)構(gòu)上劃分,有FIR和IIR兩種。FIR的特點(diǎn)是:線性相位、消耗資源多;IIR的特點(diǎn)是:非線性相位、消耗資源少。由于FIR系統(tǒng)的線性相位特點(diǎn),設(shè)計(jì)中絕大多數(shù)情況都采用
    的頭像 發(fā)表于 04-24 14:40 ?3159次閱讀