名称:数字信号处理及FIR滤波设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
数字信号处理及FIR滤波
首先通过DDS产生50K的sin信号,再将sin 50K信号乘以输入的(30~70K)信号下变频到(-20K~20K),再通过截止频率为20KHz的Fir低通滤波器滤波,得到滤波后的波形。
若输入的信号频率为20KHz,40KHz,100KHz的混合信号。20K与50K混频后得到30K和70KHz;40K与50K混频后得到10K和90KHz;100K与50K混频后得到50K和150KHz;混频后信号经过截止频率为20KHz的Fir低通滤波器,可以得到40K的混频信号10K,其他信号均被滤除。
Fir滤波器阶数为128。阶数32与64都试过,没有128的效果好。阶数更高应该还会好一点,但是对应消耗的FPGA资源会越多,考虑到性能和资源的平衡,选择128阶。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 设计思路
首先通过DDS产生50K的sin信号,再将sin 50K信号乘以输入的(30~70K)信号下变频到(-20K~20K),再通过截止频率为20KHz的Fir低通滤波器滤波,得到滤波后的波形。
若输入的信号频率为20KHz,40KHz,100KHz的混合信号。20K与50K混频后得到30K和70KHz;40K与50K混频后得到10K和90KHz;100K与50K混频后得到50K和150KHz;混频后信号经过截止频率为20KHz的Fir低通滤波器,可以得到40K的混频信号10K,其他信号均被滤除。
Fir滤波器阶数为128。阶数32与64都试过,没有128的效果好。阶数更高应该还会好一点,但是对应消耗的FPGA资源会越多,考虑到性能和资源的平衡,选择128阶。
2. 工程文件
3. 程序文件
4. RTL图
5. Testbench
先分别产生20K,40K,100KHz的信号,再产生20KHz,40KHz,100KHz三个信号的混合信号。该混叠信号作为激励,输入到所设计的模块内仿真。验证代码功能,若最终输出信号为10K则表示仿真正确,代码正确。
6. 仿真图
备注
FIR滤波器系数设计
1. 打开matlab
2. 输入fdatool回车,打开滤波器设计工具fdatool
3. 设置如下
导出coe文件即可
部分代码展示:
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2020/08/10 22:48:07 // Design Name: // Module Name: FIR_process // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module FIR_process( input clk,//10MHz input [15:0] data_in,//16bit有符号数(30K~70K) output [31:0] data_out//输出波形 ); wire tvalid_1; wire [31:0] tdata_1; //调用dds,输出50KHz正弦波 //输出频率f=10M*N/2^16,N为频率控制字,N=327时,计算出频率为50K dds1 i_dds1 ( .aclk(clk), // input wire aclk .s_axis_config_tvalid(1'b1), // input wire s_axis_config_tvalid .s_axis_config_tdata(16'd327), // input wire [15 : 0] s_axis_config_tdata .m_axis_data_tvalid(tvalid_1), // output wire m_axis_data_tvalid .m_axis_data_tdata(tdata_1) // output wire [31 : 0] m_axis_data_tdata ); wire [15:0]
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=878
892