目标:
实现带阻滤波器。参数如下:
 阻带频率1:100KHz;
 阻带频率2:300KHz;
 通过频率1:50KHz;
 通过频率2:350KHz;
 通带波动:<1dB;
 阻带衰减:>40dB。

ip核coe 文件:
; XILINX CORE Generator™Distributed Arithmetic FIR filter coefficient (.COE) File
; Generated by MATLAB® 9.2 and the DSP System Toolbox 9.4.
; Generated on: 07-Jun-2020 11:37:46
Radix = 16;
Coefficient_Width = 16;
CoefData = 02ec,
fee3,
ff5b,
0017,
00d5,
010b,
0066,
ff49,
fe92,
fed8,
ffc4,
0045,
ff8e,
fdfb,
fce4,
fd62,
ff2b,
00a3,
005b,
fe91,
fd41,
fe62,
01db,
0534,
05a5,
02e8,
000b,
011f,
0745,
0e98,
1045,
07b9,
f6fc,
e66a,
5f84,
e66a,
f6fc,
07b9,
1045,
0e98,
0745,
011f,
000b,
02e8,
05a5,
0534,
01db,
fe62,
fd41,
fe91,
005b,
00a3,
ff2b,
fd62,
fce4,
fdfb,
ff8e,
0045,
ffc4,
fed8,
fe92,
ff49,
0066,
010b,
00d5,
0017,
ff5b,
fee3,
02ec;

详细实现步骤可参考之前的博文。

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/06/07 11:43:39
// Design Name:
// Module Name: bandstop
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module bandstop(input clk,input s_axis_data_tvalid,input s_axis_data_tvalid_1,output [15:0]m_axis_data_tdata_0,output [15:0]m_axis_data_tdata_1,output [15:0]m_axis_data_tdata_2,output [16:0]s1,//44+200output [16:0]s2,//200+400output [39:0]m_axis_data_tdata_fir,output [39:0]m_axis_data_tdata_fir1);wire event_pinc_invalid_0,event_pinc_invalid_1,event_pinc_invalid_2;wire event_poff_invalid_1,event_poff_invalid_0,event_poff_invalid_2;wire m_axis_phase_tvalid_0,m_axis_phase_tvalid_1,m_axis_phase_tvalid_2;wire m_axis_phase_tdata_0,m_axis_phase_tdata_1,m_axis_phase_tdata_2;wire m_axis_data_tvalid1,m_axis_data_tvalid2,m_axis_data_tvalid0;//44kHzdds_compiler_0 dds0 (.aclk(clk),                                // input wire aclk.m_axis_data_tvalid(m_axis_data_tvalid0),    // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_0),      // output wire [15 : 0] m_axis_data_tdata.m_axis_phase_tvalid(m_axis_phase_tvalid_0),  // output wire m_axis_phase_tvalid.m_axis_phase_tdata(m_axis_phase_tdata_0),    // output wire [15 : 0] m_axis_phase_tdata.event_pinc_invalid(event_pinc_invalid_0),    // output wire event_pinc_invalid.event_poff_invalid(event_poff_invalid_0)    // output wire event_poff_invalid
);//200kHzdds_compiler_1 dds1 (.aclk(clk),                                // input wire aclk.m_axis_data_tvalid(m_axis_data_tvalid1),    // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_1),      // output wire [15 : 0] m_axis_data_tdata.m_axis_phase_tvalid(m_axis_phase_tvalid_1),  // output wire m_axis_phase_tvalid.m_axis_phase_tdata(m_axis_phase_tdata_1),    // output wire [15 : 0] m_axis_phase_tdata.event_pinc_invalid(event_pinc_invalid_1),    // output wire event_pinc_invalid.event_poff_invalid(event_poff_invalid_1)    // output wire event_poff_invalid
);//400kHzdds_compiler_2 dds2(.aclk(clk),                                // input wire aclk.m_axis_data_tvalid(m_axis_data_tvalid2),    // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_2),      // output wire [15 : 0] m_axis_data_tdata.m_axis_phase_tvalid(m_axis_phase_tvalid_2),  // output wire m_axis_phase_tvalid.m_axis_phase_tdata(m_axis_phase_tdata_2),    // output wire [15 : 0] m_axis_phase_tdata.event_pinc_invalid(event_pinc_invalid_0),    // output wire event_pinc_invalid.event_poff_invalid(event_poff_invalid_1)    // output wire event_poff_invalid
);
c_addsub_0 add1 (.A(m_axis_data_tdata_0),  // input wire [15 : 0] A.B(m_axis_data_tdata_1),  // input wire [15 : 0] B.S(s1)  // output wire [16 : 0] S
);
c_addsub_1 add2 (.A(m_axis_data_tdata_1),  // input wire [15 : 0] A.B(m_axis_data_tdata_2),  // input wire [15 : 0] B.S(s2)  // output wire [16 : 0] S
);
wire s_axis_data_tready;
wire m_axis_data_tvalid_f1;
wire m_axis_data_tvalid_f0;
fir_compiler_0 fir1 (.aclk(clk),                              // input wire aclk.s_axis_data_tvalid(s_axis_data_tvalid_1),  // input wire s_axis_data_tvalid.s_axis_data_tready(s_axis_data_tready),  // output wire s_axis_data_tready.s_axis_data_tdata(s1),    // input wire [23 : 0] s_axis_data_tdata.m_axis_data_tvalid(m_axis_data_tvalid_f0),  // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_fir)    // output wire [39 : 0] m_axis_data_tdata
);
fir_compiler_1 fir2 (.aclk(clk),                              // input wire aclk.s_axis_data_tvalid(s_axis_data_tvalid),  // input wire s_axis_data_tvalid.s_axis_data_tready(s_axis_data_tready),  // output wire s_axis_data_tready.s_axis_data_tdata(s2),    // input wire [23 : 0] s_axis_data_tdata.m_axis_data_tvalid(m_axis_data_tvalid_f1),  // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_fir1)    // output wire [39 : 0] m_axis_data_tdata
);endmodule
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/06/07 13:18:49
// Design Name:
// Module Name: tb_bandstop
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module tb_bandstop();reg s_axis_data_tvalid;reg s_axis_data_tvalid_1;reg clk;//  reg m_axis_data_tvalid;wire [15:0]m_axis_data_tdata_0;wire [15:0]m_axis_data_tdata_1;wire [15:0]m_axis_data_tdata_2;wire [16:0]s1;//44+200wire [16:0]s2;//200+400wire [39:0]m_axis_data_tdata_fir;wire [39:0]m_axis_data_tdata_fir1;bandstop u1(.clk(clk),.m_axis_data_tdata_0(m_axis_data_tdata_0),.m_axis_data_tdata_1(m_axis_data_tdata_1),.m_axis_data_tdata_2(m_axis_data_tdata_2),.s1(s1),.s2(s2),.s_axis_data_tvalid(s_axis_data_tvalid),.m_axis_data_tdata_fir(m_axis_data_tdata_fir),.m_axis_data_tdata_fir1(m_axis_data_tdata_fir1),.s_axis_data_tvalid_1(s_axis_data_tvalid_1));initial begins_axis_data_tvalid<=1'b1;s_axis_data_tvalid_1<=1'b1;clk<=1'b0;endalways #5 clk<=~clk;
endmodule


s1,s2为混合波,分别对其进行滤波后可发现只剩下阻带外频率的信号。

57--vivado 带阻滤波器相关推荐

  1. 【 Vivado 】在工程模式下通过jou文件来学习 Tcl 命令

    Xilinx 的数据手册UG895提供了一些系统级设计的方法,写得很详细,详细到得不到重要的消息(我菜). Tcl命令在工程模式下以及非工程模式下有一些差异,具体什么差异,这里暂时不说,后面我想应该会 ...

  2. Vivado中MIG核中DDR的读写控制

    本文使用Vivado 2015.4在Nexys4 DDR(以下简称N4DDR)开发板上实现DDR的读写. · FPGA如果需要对DDR进行读写,则需要一个DDR的控制器.根据官方的文档(UG586,下 ...

  3. 基于vivado的fir ip核的重采样设计与实现

    创建vivado工程 1. 首先打开vivado,创建一个新的project(勾选create project subdirectory选项),并将工程命填为firfilter. 2.选择工程创建的类 ...

  4. 【youcans 的 OpenCV 例程 200 篇】103. 陷波带阻滤波器消除周期噪声干扰

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  5. 【youcans 的 OpenCV 例程 200 篇】102. 陷波带阻滤波器的传递函数

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  6. 【OpenCV 例程200篇】89. 带阻滤波器的传递函数

    [OpenCV 例程200篇]89. 带阻滤波器的传递函数 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 5.1 带 ...

  7. 【OpenCV 例程200篇】57. 低通高斯滤波器

    [OpenCV 例程200篇]57. 低通高斯滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像滤波是在尽可 ...

  8. Vivado工程配置petalinux实现linux下网卡驱动

    0.说明 基于Vivado工程配置petalinux实现linux下控制PL端GPIO 完成对linux网卡的驱动 实验内容: 完成一个vivado工程,导出硬件信息 创建petalinux工程,导入 ...

  9. 在VIVADO上实现的非常简易的RISC-V CPU设计(来自《Verilog数字系统设计》夏宇闻著)

    在VIVADO上实现的非常简易的RISC-V CPU设计 一.实验要求重述: 1.实验目的 2.实验要求: 二.学习准备: 1.什么cpu? 2.cpu需要具有哪些部件? 3.什么是RISC_CPU? ...

  10. 向量旋转(或矢量旋转或坐标轴旋转)后xy坐标重定位(vivado+cordic ip核+matlab) - 适用于数学爱好者

    大家在高中大学应该学过以下角度转换公式(两公式形式不同本质相同),vivado中有现成的角度转换ip核cordic供使用,本文参考官方手册数据进行一次转角实验 在vivado pg105-cordic ...

最新文章

  1. java三大特性:封装、继承、多态
  2. 人类在计算机设计方面已经进入了一个误区
  3. (WPF)WPF要点之事件-深入浅出WPF笔记
  4. Galgame研发日志:独立游戏制作前应当进行的第一步
  5. 各种排序算法的C++实现
  6. UI5 navigation logic
  7. 从mysql读取图片_如何从sql数据库内读取图片
  8. 用赫夫曼树进行文件解压
  9. 异动分析技术解决方案—异动归因之指标拆解
  10. java 井字棋 人机_一个井字棋tictactoe游戏的java实现 | Soo Smart!
  11. 记一次解决curl https证书问题
  12. android+word转html,word与html互转(1) -- word转html
  13. Eclipse + Gradle实现APK分包
  14. Spring 一二事(1)
  15. 非专业学生如何系统的学习计算机编程?
  16. spring data JPA的使用
  17. 即兴演讲的秘诀结构(一)
  18. FAT32 学习及注意事项
  19. 在美国OpenSky电商平台上使用MasterCard虚拟信用卡海淘购物攻略教程
  20. 左右手坐标转换 四元数

热门文章

  1. VS 光标变成方块
  2. 车品觉 : 数据十诫
  3. vue实现分页功能之最详细篇(一)
  4. 行业洞察 | 爱聊天的虚拟人
  5. java 输入输出总结(牛客、笔试、机试)
  6. 计算机组成原理:浮点数的加、减、乘、除运算(含实例完整运算)
  7. 输入/输出系统 —— IO系统基本概念
  8. D-MNSV6-X8|D-MNSV7-X16磁导航传感器RS232/RS485(MODBUS-RTU)通讯协议说明
  9. RFID门禁FM1702单片机程序
  10. 数据结构课程设计——中国计算机设计大赛赛事统计