ZYNQ实验--PDM波形生成

这篇具有很好参考价值的文章主要介绍了ZYNQ实验--PDM波形生成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、PDM简介

  将信号的振幅变化按比例地变换成脉冲宽度的变化,得到脉冲宽度调制(PDM)。详细的原理理论可以参考该文:文献阅读–Pulse-Width Modulation,本文主要介绍PDM的FPGA实现,PDM的生成方式很多具体形式根据需求会有所不同

二、实验内容

实验设备: ZYNQ7020

2.1 恒频后沿调制

  早期的PDM信号通过比较器生成,通过比较锯齿波和输入信号生成
脉冲信号。随着数字信号处理的广泛应用,现在通过一个计数器与数字信号进行比较就可生成脉冲信号。
实验生成PDM信号将采用锯齿波信号作为载波,如图所示:
ZYNQ实验--PDM波形生成,ZYNQ学习笔记,fpga开发
PDM输出的前导(上升)沿在固定时刻出现,而后导(下降)沿的位置为随着参考信号电平的变化而调制。因此,该方法也称为恒频后沿调制。三角波计数从0开始递增,N时重置为0同时PDM上升沿出现。

module PDM
(
    Clk,
    Rst,
    Din,
    Do,
    cnt
);
input Rst,Clk;
input [15:0] Din;
output reg Do;
output reg [9:0] cnt;
reg [9:0] Dtr;
always @(posedge Rst or posedge Clk)begin
	if(Rst) begin
		Do<=1'b0;
		cnt<=10'b0;
	end
	else begin
		cnt<=cnt+1'b1;
		if (cnt>Dtr)begin //比较生成脉冲
			Do<=1'b0;
		end
		else begin
			Do<=1'b1;
		end
		if (cnt==1023)begin  //计数采样
			Dtr<=Din[15:7];
		end
	end
end
endmodule

实现效果如下图所示
ZYNQ实验--PDM波形生成,ZYNQ学习笔记,fpga开发

2.2 中心对齐调制(锯齿波形式)

  恒频后沿调制使用实验设备测试时,PDM通过滤波器无法正确恢复出PDM信号,将PDM信号生产改为中心对齐的形式。如图所示:

ZYNQ实验--PDM波形生成,ZYNQ学习笔记,fpga开发

2.3 方法对比

恒沿后沿调制公式
P D M = { 1 c n t ⩽ S p 0 c n t > S p PDM= \begin{cases}1 & cnt \leqslant S_p \\ 0 & cnt>S_p\end{cases} PDM={10cntSpcnt>Sp
中心对齐调制公式
P D M = { 1 c n t ≥ L o r c n t ⩽ R 0 c n t < L o r c n t > R PDM= \begin{cases}1 & cnt \geq L &or& cnt \leqslant R \\0 & cnt<L &or&cnt>R\end{cases} PDM={10cntLcnt<LororcntRcnt>R
通过公式可以发现,其实两种方式生成的PDM波形是一致的,脉冲高低电平的宽度是相同的,只是第二种方法将脉冲中心移动到了计数中心点。

三、实验结果

PDM为恒频后沿调制,PDM2为中心对齐调制
ZYNQ实验--PDM波形生成,ZYNQ学习笔记,fpga开发

总结

  通过查资料发现载波使用三角波并进行规则采样PDM信号应该也是中心对齐的,实验的对齐方式实现仍使用锯齿载波,但在PDM判断采样上做了处理。但是实测后发现中心对齐方法脉冲并非完全对称,实际FPGA中Sp是数字信号比如实验中的16bit信号,压缩到1024的范围进行比较实际只需用到10bit,这时在生成L和R两个比较值可能会产生+1差值,无法实现公式中的完全对称,该情况输出脉冲右半边会比左半边多一个时钟周期,可以通过降低采样位数统一Sp位数去解决但是损失一定精度。文章来源地址https://www.toymoban.com/news/detail-840610.html

到了这里,关于ZYNQ实验--PDM波形生成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ZYNQ学习笔记(四):PL与PS数据交互——基于BRAM IP 核的(PS端读写+PL端读)控制实验

    说起PS、PL数据交互,常见的有IO方式:MIO EMIO GPIO,还有利用BRAM或FIFO等,在上一篇文章ZYNQ学习笔记(三):PL与PS数据交互—— UART串口+AXI GPIO控制DDS IP核输出实验咱们学会了如何利用AXI GPIO IP核来实现PS(写)与PL(读)的数据交互,那么这篇文章来学习如何使用BRAM~ 本次实验

    2024年02月05日
    浏览(57)
  • Verilog代码生成FPGA仿真波形文件(VCD)介绍

    Verilog代码生成FPGA仿真波形文件(VCD)介绍 在FPGA设计中,我们需要对设计的电路进行仿真以检查其正确性。VCD(Value Change Dump)文件是一种常用的仿真波形文件格式,可以记录电路仿真过程中各个信号的变化情况。本文将介绍如何使用Verilog代码来生成VCD文件。 首先,我们需

    2024年02月06日
    浏览(46)
  • Zynq和FPGA区别——快速认识Zynq开发

    ZYNQ包含了2个部分,双核的ARM和FPGA。根据Xilinx提供的手册,用ARM实现的模块被称为PS,而用FPGA实现的模块被称为PL。简单的说FPA更偏向于逻辑,不跑系统。 ZYNQ内部包含PS和PL两部分,ZYNQ开发有一下四种方式: ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统,它将处

    2024年02月16日
    浏览(55)
  • FPGA之手把手教你做多路信号发生器(STM32与FPGA数据互传控制波形生成)

    最近趁热打铁做了一个关于STM32与FPGA通信并且控制高速DA模块产生不同频率信号的正弦波、方波、三角波和锯齿波的项目,从中收获到了很多东西,也踩了一些雷和坑,将分为几篇文章将整个过程分享出来。 这一次准备分享的是将串口解析的出来的波形频率数据以及波形类型

    2024年02月15日
    浏览(55)
  • ZYNQ 7020 之 FPGA知识点重塑笔记一——串口通信

    目录 一:串口通信简介 二:三种常见的数据通信方式—RS232串口通信 2.1 实验任务 2.2 串口接收模块的设计 2.2.1 代码设计 2.3 串口发送模块的设计 2.3.1 代码设计 2.4 顶层模块编写 2.4.1 代码设计 2.4.2 仿真验证代码 2.4.3 仿真结果 2.4.4 板上验证        通信方式一般分为 串行

    2024年02月03日
    浏览(50)
  • 【FPGA学习】使用SingalTap II 抓取波形

    最近学习了在Quarus II 中运用嵌入式逻辑分析仪Singal Tap II 对数据波形进行抓取,对实现过程作一个记录和总结。本文就以之前写的串口收发程序作为样例,介绍Singal Tap II 的使用流程和步骤。 参考资料:《FPGA 实战开发指南》。 Singal Tap II 是一种嵌入到Quartus II 内部的逻辑分析

    2024年02月12日
    浏览(31)
  • ZYNQ之FPGA学习----Vivado功能仿真

    阅读本文需先学习: FPGA学习----Vivado软件使用 典型的FPGA设计流程,如图所示: 图片来自《领航者ZYNQ之FPGA开发指南》 Vivado 设计套件内部 集成了仿真器 Vivado Simulator ,能够在设计流程的不同阶段运行设计的功能仿真和时序仿真,结果可以在 Vivado IDE 集成的波形查看器中显示。

    2023年04月18日
    浏览(51)
  • [ZYNQ]开发之MATALB与FPGA联合仿真平台设计

    本实验在之前两篇文章的基础上设计的MATLAB与FPGA联合仿真平台设计,主要用于在MATLAB于FPGA之前提供收发数据的通道。该实验的应用背景为极化码的编译码流程,极化码的编译码的仿真流程如下: [ZYNQ]开发之基于 AN108 模块的ADC 采集以太网传输_Laid-back guy的博客-CSDN博客 [ZYNQ

    2024年02月04日
    浏览(60)
  • FPGA_ZYNQ (PS端)开发流程(Xilinx软件工具介绍)

            针对不同的应用领域,Xilinx 公司设计开发了各种逻辑资源规模和集成各 种外设功能的Zynq SOC器件,包括专为成本优化的Zynq-7000平台,面向高性 能实时计算应用领域的 Zynq UltraScale+ MPSoC,面向射频通信的 ZynqUltraScale+ RFSoC,以及具备高度可扩展特性的自适应加速平台

    2024年01月16日
    浏览(65)
  • FPGA 学习笔记:Vivado 生成的 Bitstream bit 文件 超大的解决方法

    最近学习FPGA,使用Vivado,照着开发板例程,写了个流水灯的Verilog程序,配置好引脚约束后,下载到开发板,发现下载的速度有点慢,我一查看 生成的 bit文件,发现竟然接近11MB。 开始以为是 Vivado 版本出了问题,我先后更换为 Vivado 2018.2 Vivado 2019.2 Vivado 2022.2,生成的 bit 文件

    2024年02月13日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包