• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

FIR濾波器低通濾波器線性相位結(jié)構(gòu)Verilog/VHDL代碼

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-231022225149162.doc

共1個文件

名稱:FIR濾波器低通濾波器(代碼在文末付費下載)

軟件:Quartus

語言:Verilog/VHDL

本資源含有verilog及VHDL兩種語言設(shè)計的工程,每個工程均可實現(xiàn)以下FIR濾波器的功能。

e2b3a0bc-46e4-4418-921e-482c7e86db23.png

代碼功能:

設(shè)計一個8階FIR濾波器(低通濾波器),要求截止頻率為20KHz,使用線性相位結(jié)構(gòu)。

參數(shù)設(shè)計方法:

使用matlab軟件設(shè)計濾波器系數(shù)

濾波器系數(shù)設(shè)計:

打開Matlab軟件在指令窗口中鍵入:m=fir1(7,0.2),即可得到如下的系數(shù):

0.009、0.048、0.164、0.279、0.279、0.164、0.048、0.009

將系數(shù)放大1000倍即:9,48,164,279;乘加計算計算完成后再除以1000.

演示視頻(以VHDL工程文件為例,verilog同理):

FPGA代碼Verilog/VHDL代碼資源下載網(wǎng):www.hdlcode.com

部分代碼展示

verilog代碼:

//濾波器
module?FIR_filter(
input?clk_in,//50MHz
input?reset_p,//高電平復(fù)位
output?[9:0]fir_data//濾波后結(jié)果
);
wire?[9:0]?data_in;
wire?clk_100K;
//分頻模塊,50M分頻到100K
div_clk?i_div_clk(
.?clk_in(clk_in),
.?clk_out(clk_100K)
);
//產(chǎn)生帶噪聲的正弦波
sin_noise?i_sin_noise(
.?clk_in(clk_in),//50MHz
.?reset_p(reset_p),//高電平復(fù)位
.?sin_and_noise(data_in)//產(chǎn)生帶噪聲的正弦波
);
//8階線性相位結(jié)構(gòu)FIR
FIR?i_FIR(
.?clk(clk_100K),//100K
.?reset_p(reset_p),//高電平復(fù)位
.?data_in(data_in),//周期1K,噪聲頻率30K左右
.?fir_data(fir_data)//濾波后結(jié)果
);
endmodule

VHDL代碼:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--濾波器
ENTITY?FIR_filter?IS
???PORT?(
??????clk_in????:?IN?STD_LOGIC;--50MHz
??????reset_p???:?IN?STD_LOGIC;--高電平復(fù)位
??????fir_data??:?OUT?STD_LOGIC_VECTOR(9?DOWNTO?0)--濾波后結(jié)果
???);
END?FIR_filter;
ARCHITECTURE?behave?OF?FIR_filter?IS
--產(chǎn)生帶噪聲的正弦波
???COMPONENT?sin_noise?IS
??????PORT?(
?????????clk_in????:?IN?STD_LOGIC;
?????????reset_p???:?IN?STD_LOGIC;
?????????sin_and_noise?:?OUT?STD_LOGIC_VECTOR(9?DOWNTO?0)
??????);
???END?COMPONENT;
???--分頻模塊
???COMPONENT?div_clk?IS
??????PORT?(
?????????clk_in????:?IN?STD_LOGIC;
?????????clk_out???:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
???--8階線性相位結(jié)構(gòu)FIR
???COMPONENT?FIR?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????reset_p???:?IN?STD_LOGIC;
?????????data_in???:?IN?STD_LOGIC_VECTOR(9?DOWNTO?0);
?????????fir_data??:?OUT?STD_LOGIC_VECTOR(9?DOWNTO?0)
??????);
???END?COMPONENT;
???
???--定義內(nèi)部信號
???SIGNAL?data_in????????:?STD_LOGIC_VECTOR(9?DOWNTO?0);
???SIGNAL?clk_100K???????:?STD_LOGIC;
BEGIN
??--分頻模塊,50M分頻到100K?
???i_div_clk?:?div_clk
??????PORT?MAP?(
?????????clk_in???=>?clk_in,
?????????clk_out??=>?clk_100K
??????);
???
???
??--產(chǎn)生帶噪聲的正弦波?
???i_sin_noise?:?sin_noise
??????PORT?MAP?(
?????????clk_in?????????=>?clk_in,--50MHz
?????????reset_p????????=>?reset_p,--高電平復(fù)位
?????????sin_and_noise??=>?data_in--產(chǎn)生帶噪聲的正弦波
??????);
???
???
???--8階線性相位結(jié)構(gòu)FIR
???i_FIR?:?FIR
??????PORT?MAP?(
?????????clk???????=>?clk_100K,--100K
?????????reset_p???=>?reset_p,--高電平復(fù)位
?????????data_in???=>?data_in,--周期1K,噪聲頻率30K左右
?????????fir_data??=>?fir_data--濾波后結(jié)果
??????);
???
END?behave;

設(shè)計文檔(以VHDL工程文件為例,verilog同理):

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. Testbench

6. 仿真圖

整體仿真

分頻模塊仿真

產(chǎn)生帶噪聲正弦波模塊仿真

濾波器模塊仿真

  • 1-231022225149162.doc
    下載

相關(guān)推薦