FIR 基础应用 - AM 调幅波调制解调(FIR 低通滤波)
本文链接:https://blog.csdn.net/qq_46621272/article/details/125334644
FIR 基础应用 - AM 调幅波调制解调(FIR 低通滤波)
文章目录
- 前言
- 一、 调幅波调制
- 1. am_modulation_dds 模块逻辑框图
- 2. am_modulation_dds.v verilog 代码
- 二、 调幅波解调
- 1. am_demodulation_fir 模块逻辑框图
- 2. am_demodulation_fir.v verilog 代码
- 三、 am_modem_fir_testbench.v
- 四、 FIR IP 设置
- 1. lowpass_10k_30k_1m.coe FIR IP 系数文件
- 2. Matlab FIR 系数生成,Filter Designer 设置贴图
- 3. FIR IP 设置贴图
- 五、 DDS IP 设置
- 1. dds_compiler_1m_100k IP设置贴图
- 1. dds_compiler_1m_4k IP设置贴图
- 六、 仿真时序波形图
- 1. 激励文件信号波形图
- 2. AM调幅波调制模块信号波形图
- 3. AM调幅波解调模块信号波形图
- 七、 综合布线后 FPGA 资源使用报告
- 八、 相关 vivado 工程、IP 设置等详细文档连接,采用 Xilinx vivado 2017.4 版本
- [XILINX FIR IP 详解、Verilog 源码、Vivado 工程](https://blog.csdn.net/qq_46621272/article/details/125292610)
- [FIR 基础应用 - AM 调幅波调制解调(FIR 低通滤波)详细介绍](https://blog.csdn.net/qq_46621272/article/details/125334644)
- [FIR 基础应用 - FM 调频波调制解调(FIR 低通滤波) 详细介绍](https://blog.csdn.net/qq_46621272/article/details/125337119)
- [FIR 中级应用 - AM 调幅波调制解调(FIR + FIFO)详细介绍](https://blog.csdn.net/qq_46621272/article/details/125384724)
- [FIR 高级应用 - AM 调幅波调制解调(FIR 低通滤波+重采样,FIR 高阶系数,FIR+FIFO ) 详细介绍](https://blog.csdn.net/qq_46621272/article/details/125385375)
- [FIR 高级应用 - 多通道实验 (四个通道用一个 FIR IP,每通道用不同的系数) 详细介绍](https://blog.csdn.net/qq_46621272/article/details/125346332)
- [FIR 高级应用 FIR Reload的使用) 详细介绍](https://blog.csdn.net/qq_46621272/article/details/125348908)
- [AM 调幅波调制解调(FIR 低通滤波) vivado 工程文件下载](https://download.csdn.net/download/qq_46621272/85674733)
- [FM 调频波调制解调(FIR 低通滤波) Vivado 工程文件下载](https://download.csdn.net/download/qq_46621272/85722410)
- [AM 调幅波调制解调(FIR + FIFO) Vivado 工程文件下载](https://download.csdn.net/download/qq_46621272/85722449)
- [AM 调幅波调制解调(FIR 低通滤波+重采样,FIR 高阶系数,FIR+FIFO ) Vivado 工程文件下载](https://download.csdn.net/download/qq_46621272/85722484)
- [FIR 高级应用 - 多通道实验 Vivado 工程文件下载](https://download.csdn.net/download/qq_46621272/85722518)
- [FIR 高级应用 FIR Reload 的使用 vivado 工程文件下载](https://download.csdn.net/download/qq_46621272/85722534)
前言
这是 XILINX FIR IP 详解、Verilog 源码、Vivado 工程 这篇文章的实验部分,用 FIR 低通滤波实现了调幅波的解调输出。
采用 Xilinx vivado 2017.4 版本
一、 调幅波调制
1. am_modulation_dds 模块逻辑框图
2. am_modulation_dds.v verilog 代码
//am_modulation_dds.v
module am_modulation_dds
(output m_axis_data_tvalid,input m_axis_data_tready,output [15:0] m_axis_data_tdata,input rst_n,input clk
);wire signed [7:0] dds_100khz_tdata_i; // 100KHz 正弦波 AM 载波wire dds_100khz_tvalid_i;wire dds_100khz_tready_i;wire signed [7:0] dds_4khz_tdata_i; // 4khz 正弦波 AM 调制信号wire dds_4khz_tvalid_i;wire dds_4khz_tready_i;reg signed [15:0] am_tdata_r;reg am_tvalid_r;wire am_tready_i;assign am_tready_i = m_axis_data_tready;assign dds_100khz_tready_i = am_tready_i;assign dds_4khz_tready_i = am_tready_i;assign m_axis_data_tvalid = am_tvalid_r;assign m_axis_data_tdata = am_tdata_r;always @(posedge clk) //AM 调制算法实现beginif(rst_n == 0 )beginam_tdata_r <= 0;am_tvalid_r <= 0;endelse if(am_tready_i == 1)beginam_tdata_r <= dds_100khz_tdata_i * (dds_4khz_tdata_i/2 + 128); // 128 是直流分量,式中的除2是为了不使数据超过16位溢出// 这个代码中,载波频率很低,就直接用乘法去写代码了。// 如果载波频率比较高就需要用DSP单元或乘法 IP 去实现。am_tvalid_r <= dds_4khz_tvalid_i & dds_100khz_tvalid_i;endenddds_compiler_1m_100k dds1 // XILINX VIVADO DDS IP,1MHz 时钟输入,100KHz正弦波 8 位输出(.aclk (clk), // input wire aclk.aresetn (rst_n), // input wire aresetn.m_axis_data_tvalid (dds_100khz_tvalid_i), // output wire m_axis_data_tvalid.m_axis_data_tready (dds_100khz_tready_i), // input wire m_axis_data_tready.m_axis_data_tdata (dds_100khz_tdata_i) // output wire [7 : 0] m_axis_data_tdata);dds_compiler_1m_4k dds2 // XILINX VIVADO DDS IP,1MHz 时钟输入,4khz正弦波 8 位输出(.aclk (clk), // input wire aclk.aresetn (rst_n), // input wire aresetn.m_axis_data_tvalid (dds_4khz_tvalid_i), // output wire m_axis_data_tvalid.m_axis_data_tready (dds_4khz_tready_i), // input wire m_axis_data_tready.m_axis_data_tdata (dds_4khz_tdata_i) // output wire [7 : 0] m_axis_data_tdata);endmodule
二、 调幅波解调
1. am_demodulation_fir 模块逻辑框图
2. am_demodulation_fir.v verilog 代码
//am_demodulation_fir.v
module am_demodulation_fir
(input rst_n,input clk,input s_axis_data_tvalid,output s_axis_data_tready,input signed[15:0] s_axis_data_tdata,output m_axis_data_tvalid,input m_axis_data_tready,output signed[15:0] m_axis_data_tdata
);reg [15:0] abs_data_r = 0;reg abs_valid_r = 0;wire abs_tready_i;always @(posedge clk)beginif(rst_n == 0 )abs_valid_r <= 0;else if(abs_tready_i == 1)abs_valid_r <= s_axis_data_tvalid;endalways @(posedge clk) //取绝对值beginif(rst_n == 0 )abs_data_r <= 0;else if(abs_tready_i == 1 && s_axis_data_tvalid == 1)beginif(s_axis_data_tdata >= 0)abs_data_r <= s_axis_data_tdata;elseabs_data_r <= -s_axis_data_tdata;endendwire signed [39:0] fir_fm_tdata_i;wire fir_fm_tvalid_i;wire fir_fm_tready_i;assign fir_fm_tready_i = m_axis_data_tready;assign m_axis_data_tdata = fir_fm_tdata_i >>>19;assign m_axis_data_tvalid = fir_fm_tvalid_i;assign s_axis_data_tready = abs_tready_i;fir_compiler_lowpass_10k_30k_1m am_fir_u1(.aresetn (rst_n), // input wire aresetn.aclk (clk), // input wire aclk.s_axis_data_tvalid (abs_valid_r), // input wire s_axis_data_tvalid.s_axis_data_tready (abs_tready_i), // output wire s_axis_data_tready.s_axis_data_tdata (abs_data_r), // input wire [15 : 0] s_axis_data_tdata.m_axis_data_tvalid (fir_fm_tvalid_i), // output wire m_axis_data_tvalid.m_axis_data_tready (fir_fm_tready_i), // input wire m_axis_data_tready.m_axis_data_tdata (fir_fm_tdata_i) // output wire [39 : 0] m_axis_data_tdata);
endmodule
三、 am_modem_fir_testbench.v
///////////////////////////////////////////////////////////////////////`timescale 1ns / 100ps//am_modem_fir_testbench.v
module am_modem_fir_testbench;reg rst_n;
reg clk;parameter CLK_PERIOD = 1000; //1MHzinitial beginrst_n = 0;#(20 * CLK_PERIOD)rst_n = 1;#(3000 * CLK_PERIOD)$stop;
endinitialclk = 0;
always
beginclk = #(CLK_PERIOD/2.0) ~clk;
endwire signed [15:0] am_mod_tdata; //调幅波数据,载波100KHz 正弦波,调制信号 4KHz 正弦波wire am_mod_tvalid;wire am_mod_tready;wire signed [15:0] am_demod_tdata; //经过解调还原的 4KHz 正弦波wire am_demod_tvalid;wire am_demod_tready=1;am_modulation_dds am_u1 //调幅波调制模块,生成 载波100KHz 正弦波,调制信号 4KHz 正弦波的调幅信号(.clk (clk), //1MHz.rst_n (rst_n), //复位.m_axis_data_tdata (am_mod_tdata), //调幅波数据输出, output wire [16 : 0].m_axis_data_tvalid (am_mod_tvalid),.m_axis_data_tready (am_mod_tready));am_demodulation_fir am_u2 //调幅波解调模块,将调幅波解调还原调制信号(.clk (clk), //1MHz.rst_n (rst_n), //复位.s_axis_data_tdata (am_mod_tdata), //调幅信号输入 intput wire [16 : 0].s_axis_data_tvalid (am_mod_tvalid),.s_axis_data_tready (am_mod_tready),.m_axis_data_tdata (am_demod_tdata), //调幅波解调数据输出, output wire [16 : 0].m_axis_data_tvalid (am_demod_tvalid),.m_axis_data_tready (am_demod_tready));endmodule
四、 FIR IP 设置
1. lowpass_10k_30k_1m.coe FIR IP 系数文件
; XILINX CORE Generator(tm)Distributed Arithmetic FIR filter coefficient (.COE) File
; Generated by MATLAB(R) 9.7 and DSP System Toolbox 9.9.
; Generated on: 17-Jun-2022 13:49:47
Radix = 16;
Coefficient_Width = 16;
CoefData =
fd36,fed1,fe98,fe5f,fe27,fdf3,fdc4,fd9c,fd80,fd72,fd74,fd8a,fdb8,fe00,fe67,feed,
ff99,006b,0166,028d,03e0,0561,0711,08ef,0afb,0d34,0f98,1224,14d5,17a7,1a94,1d9a,
20b0,23d2,26f9,2a1d,2d37,3041,3333,3604,38af,3b2d,3d75,3f84,4152,42db,441b,450e,
45b1,4603,4603,45b1,450e,441b,42db,4152,3f84,3d75,3b2d,38af,3604,3333,3041,2d37,
2a1d,26f9,23d2,20b0,1d9a,1a94,17a7,14d5,1224,0f98,0d34,0afb,08ef,0711,0561,03e0,
028d,0166,006b,ff99,feed,fe67,fe00,fdb8,fd8a,fd74,fd72,fd80,fd9c,fdc4,fdf3,fe27,
fe5f,fe98,fed1,fd36;
2. Matlab FIR 系数生成,Filter Designer 设置贴图
3. FIR IP 设置贴图
五、 DDS IP 设置
1. dds_compiler_1m_100k IP设置贴图
1. dds_compiler_1m_4k IP设置贴图
dds_compiler_1m_4k 与 dds_compiler_1m_100k 设置基本一致,这里只贴了一处不一样的设置。
六、 仿真时序波形图
1. 激励文件信号波形图
2. AM调幅波调制模块信号波形图
3. AM调幅波解调模块信号波形图
七、 综合布线后 FPGA 资源使用报告
八、 相关 vivado 工程、IP 设置等详细文档连接,采用 Xilinx vivado 2017.4 版本
XILINX FIR IP 详解、Verilog 源码、Vivado 工程
FIR 基础应用 - AM 调幅波调制解调(FIR 低通滤波)详细介绍
FIR 基础应用 - FM 调频波调制解调(FIR 低通滤波) 详细介绍
FIR 中级应用 - AM 调幅波调制解调(FIR + FIFO)详细介绍
FIR 高级应用 - AM 调幅波调制解调(FIR 低通滤波+重采样,FIR 高阶系数,FIR+FIFO ) 详细介绍
FIR 高级应用 - 多通道实验 (四个通道用一个 FIR IP,每通道用不同的系数) 详细介绍
FIR 高级应用 FIR Reload的使用) 详细介绍
AM 调幅波调制解调(FIR 低通滤波) vivado 工程文件下载
FM 调频波调制解调(FIR 低通滤波) Vivado 工程文件下载
AM 调幅波调制解调(FIR + FIFO) Vivado 工程文件下载
AM 调幅波调制解调(FIR 低通滤波+重采样,FIR 高阶系数,FIR+FIFO ) Vivado 工程文件下载
FIR 高级应用 - 多通道实验 Vivado 工程文件下载
FIR 高级应用 FIR Reload 的使用 vivado 工程文件下载
FIR 基础应用 - AM 调幅波调制解调(FIR 低通滤波)相关推荐
- FIR 基础应用 - FM 调频波调制解调(FIR 低通滤波)
本文链接:https://blog.csdn.net/qq_46621272/article/details/125337119 FIR 基础应用 - FM 调频波调制解调(FIR 低通滤波) 文章目 ...
- 用Multisim仿真对调幅波进行解调
实验目的与要求 1.理解调幅信号的解调原理和实现方法. 2.掌握包络检波器的基本电路和低通滤波器参数对检波器输出的影响. 3.掌握包络检波器的主要技术指标的实验测试方法. 4.掌握包络检波器中失真产生 ...
- matlab低通滤波器库函数代码_利用Matlab filterDesigner 工具生成FIR滤波器函数,并调用实现低通滤波...
本文使用的开发环境为:Win10 Matlab2018a 版本. 在matlab命令窗口输入:filterDesigner命令,即可打开filterDesigner设计工具. 按照下图调整FIR低通滤 ...
- 基于multisim的fm调制解调_高通二代5G调制解调器骁龙X55实现7Gbps高速率,透露5G三大关键点...
雷锋网(公众号:雷锋网)消息,MWC2019前夕,高通今天宣布推出继骁龙X50后的第二代5G新空口(5G NR)调制解调器骁龙X55 5G调制解调器,也是全球首款实现7Gbps速率的5G调制解调器.工 ...
- 图像处理之基础---高斯低通滤波在指定区域画放大圆形图
像淘宝中的物品图片进行放大扫描效果: 上图中图一为原图,现给定素材,需要将图像画城图二然后输出.现在问题是, 给定的图像都是矩形,怎么将矩形的图片画到中间的那两个圆里面呢? http://downlo ...
- python图像处理基础 || (五) 图像频域的阈值型高通与低通滤波
图像频域的阈值型高通与低通滤波 文章目录 图像频域的阈值型高通与低通滤波 1. 频域图像非卷积操作的高通滤波 2. 频域图像非卷积操作的低通滤波 3. 频域图像的带通滤波 本部分内容所用的数据放在百度 ...
- m基于FPGA的MSK调制解调系统verilog开发,并带FPGA误码检测模块和matlab仿真程序
目录 1.算法描述 2.仿真效果预览 3.Verilog核心程序 4.完整FPGA 1.算法描述 整个模型的基本框图为 软件无线电是现代通信技术的重要研究领域和发展方向,目前发展迅速.快速发展的软件无 ...
- matlab 调制 解调,基于Matlab调制与解调的实现
<基于Matlab调制与解调的实现>由会员分享,可在线阅读,更多相关<基于Matlab调制与解调的实现(15页珍藏版)>请在人人文库网上搜索. 1.基于Matlab调制与解调的 ...
- 基于multisim的fm调制解调_矢量调制分析
本应用指南的第一部分介绍了矢量信号分析(VSA) 的初步知识,并讨论 了矢量信号分析测量的概念和操作理论.该部分还描述了矢量信号分析的频域,通过快速傅立叶变换(FFT) 分析实现的频谱分析测量能力.今 ...
最新文章
- python数组操作加法_Numpy数组索引和/或加法似乎是
- 服务器如何删除所有磁盘信息,关于怎样删除EFI分区,简单省事,很多换下来的硬盘都有这个分区...
- Linux下对于inode的理解
- ES6的Reflect对象
- [转]PHP 超全局变量详解 $GLOBALS $_SERVER $_GET $_POST $_COOKIE $_FILES $_ENV $_REQUEST $_SE
- 【免费毕设】基于PHP实现的WEB图片共享系统(源代码+论文)
- Stacking 模型融合详解(附python代码)
- python大数据基础学习环境变量_《Python大数据基础与实战》[56M]百度网盘pdf下载...
- PIL ellipse函数画椭圆
- 10分钟快速搭建多方视频会议系统
- gis 六边形网格_ArcGIS中的奇技淫巧(Ⅱ)—蜂巢网格图
- 【1】Kali破解家用WI-FI密码 - WEP加密
- ROS-ubuntu-系统安装
- React Native入门——布局实践:开发京东客户端首页(一
- 西门子S7200plc通信不上实际问题和解决方法
- usb触摸屏驱动 - usbtouchscreen
- iOS 页面的卡顿的原因以及如何解决. 如何优化app的启动速度
- python向上取整_python向上取整
- java用hutool.excelUtil实现excel创建模板和下载模板
- 2020年全国水资源总量、总供水量、总用水量及人均综合用水量分析[图]
热门文章
- “疫情”防控时期大势所趋,智慧社区尽显“智慧”迎来新的发展热潮
- 2022年常见软件测试面试题全套
- 字典攻击是什么意思?底层原理是什么?
- React实现复制功能
- Large Margin Partial Label Machine
- 网康防火墙--上线指南_在线付款接受指南-第1部分
- 每日积累(20161212-day-16)(PHILIPS 272P 显示器webcam ,ubuntu使用)
- Idea 使用git插件从git仓库下载project图文并茂,详细解答
- 图片搜索淘宝商品api接口
- Mysql导出逗号分隔的csv文件