基于FPGA的SPWM调制
SPWM(Sinusoidal Pulse Width Modulation),即正弦脉宽调制,它以频率与期望的输出电压波相同的正弦波作为调制波,以频率比期望波高得多的等腰三角波作为载波,当调制波与载波相交时,由它们的交点确定逆变器开关器件的通断时刻,从而获得幅值相等、宽度按正弦规律变化的脉冲序列。双极性控制的PWM方式如图1所示。
图1 双极性控制的PWM方式
接下来介绍FPGA的实现过程,首先用Quartus II软件、波形生成工具或者matlab等生成一定频率的正弦波和等腰三角波的mif格式的文件,如图2所示。
图2 生成的mif文件
建立工程,并使用两个单端口rom的ip核,分别存放正弦波和三角波的mif文件的数据,如图3所示。
图3 配置rom的ip核
编写设计文件和仿真文件,并包含到工程中,同时设置仿真参数。设计文件的核心语句如下:
//cnt_sine:正弦波rom对应地址
always @ (posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
cnt_sine<=11'd0;
else if(cnt_sine==CNT_SINE_MAX)
cnt_sine<=11'd0;
else
cnt_sine<=cnt_sine+1'b1;
end
//cnt_triangle:三角波rom存放地址
always @ (posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
cnt_triangle<=8'd0;
else if(cnt_triangle==CNT_TRIANGLE_MAX)
cnt_triangle<=8'd0;
else
cnt_triangle<=cnt_triangle+1'b1;
end
//生成PWM信号
assign pwm_0=(q_sine > q_triangle) ? 1'b1 : 1'b0;
assign pwm_1=~pwm_0;
assign pwm_2=pwm_0;
assign pwm_3=pwm_1;
接下来对工程进行编译,编译通过后启动功能仿真。在modelsim进行一些基本的配置后,生成的仿真波形如图4所示,验证通过。
图4 仿真波形
作者:学习FPGA的电气小兴兴 https://www.bilibili.com/read/cv17290883 出处:bilibili
基于FPGA的SPWM调制相关推荐
- 基于FPGA的MSK调制的仿真
1.问题描述: 1) 设计和验证适合FPGA实现的MSK调制和解调实现方案, 2) MSK系统的发端:含随机数字信息生成模块.MSK调制模块.数模(DA)模块. 3) MSK系统的收端:含MSK解 ...
- m基于FPGA的64QAM调制解调、载波同步verilog实现
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 64QAM(正交幅度调制),在使用同轴电缆的网络中,这种数字频率调制技术通常用于发送下行链路数据.6 ...
- 【FPGA教程案例34】通信案例4——基于FPGA的QPSK调制信号产生,通过matlab测试其星座图
FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...
- m基于FPGA的MSK调制解调系统verilog开发,并带FPGA误码检测模块和matlab仿真程序
目录 1.算法描述 2.仿真效果预览 3.Verilog核心程序 4.完整FPGA 1.算法描述 整个模型的基本框图为 软件无线电是现代通信技术的重要研究领域和发展方向,目前发展迅速.快速发展的软件无 ...
- 基于FPGA的2ASK调制仿真
2ASK调制技术总的来说很简单,先产生二进制基带信号,产生一个载波信号,利用一个2选1开关电路进行输出.比如为1输出载波,为0则置0. 按照这样的思想,我们可以得出2FSK.2PSK的调制.对于2FS ...
- 基于FPGA的AM调制与解调(Verilog语言)
一.概述 说是概述,但是你还是得必须容我先瞎扯一番的.又是课程的作业,要通过FPGA实现AM信号的产生与解调.我们最开始手上是有硬件的板卡的,型号是叫Nexys Video.(当然现在被老师收走了,所 ...
- 基于FPGA的spwm产生VHDL
spwm产生 使用VHDL语言实现 实验过程: 硬件操作 操作 上电 接入5V电源,用配套的线,USB那端接电脑即可: 电源开关 按下电源开关,程序已经固化到FPGA上了,上电即可运行. 工程截图:
- 【FPGA教程案例32】通信案例2——基于FPGA的FSK调制信号产生
FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...
- 基于FPGA的QPSK调制系统verilog开发
目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 正交相移键控(Quadrature Phase Shift Keying,QPSK)是一种数字调制方式.它分为绝对相移和相对相移两种.由于 ...
最新文章
- 春运渡劫!Python给我抢回家的火车票
- 字节二面,让写一个LFU缓存策略算法,懵了
- python中字符串编码转换
- 2000字详解 当Pandas遇上超大规模的数据集该如何处理呢?
- oracle adf_Oracle ADF和Oracle Jet一起工作。 建筑模式
- pdo mysql fedora_在Fedora 23 Server和Workstation上安装LAMP(Linux, Apache, MariaDB和PHP)
- PyTorch学习笔记——PyTorch简介
- rhino编程语言c井,Rhino插件开发:RhinoScript脚本教程(4):VBScript基础
- idea配置Tomcat乱码处理
- 【刘润五分钟商学院】-161白马不是马吗?
- ipd敏捷开发_IPD+敏捷开发
- Https所涉及名词及相关后缀名解释
- C语言数字图像处理---1.6图像亮度对比度调节
- Lenient assertions(Unitils介绍三)
- 四天工作制究竟香不香;复旦发布类ChatGPT模型Moss;苹果上新348元省电保护膜 | EA周报...
- 史上最全Android文件管理器技术方案细节
- Linux第六章课后题6-4
- ESP32-CAM+PIR传感器=动作抓拍监控
- kettle定时备份->mysql+mongoDB增量备份
- 热门好用的企业网盘工具大盘点
热门文章
- java object isempty,Java JsonObject.isEmpty方法代码示例
- 【Java 8 新特性】Java Comparator.nullsFirst | 将空元素被认为小于非空元素
- js获取日期周数,并根据周数算出当前周的开始和结束日期(周日开始,周六结束)
- 【手工花制作大全】纸水仙的传说和diy教程
- 利用html和CSS制作的鲜花市场首页
- Google Earth Engine(GEE)——全球红树林分布、地上生物量和树冠高度
- 生活的眼前,真的只有苟且吗?
- 路由与交换技术(1)_交换网络
- 视频教程-微信小程序开发教程(第1篇)-微信开发
- 关于在2440上移植rtl8192和rtl8188cus linux驱动遇到的问题及解决方法!!!