当前位置:网站首页>基于 VIVADO 的 AM 调制解调(1)方案设计

基于 VIVADO 的 AM 调制解调(1)方案设计

2022-08-11 08:30:00 chylinne

一、AM 原理

常规调幅(conventional AM)信号(简称 AM 信号)的时域表达式为:

s_{AM}(t)=A_{c}[1+m(t)]cos2\pi f_{c}t

其中,A_{c} 是载波幅度,m_{t} 是调制信号(基带消息信号)。s_{AM} 是已调信号,它的包络直接对应着信号 m_{t} 的变化规律。

定义调幅指数(modulation index),或调制深度,为:

\beta _{AM}=\frac{max[s_{AM}(t)]-A_{c}}{A_{c}}=max[m(t)]

它反应了信号在载波幅度上的“调制程度”。

对应的解调方法一般是使用包络检波器,即直接提取 s_{AM} 的实包络来恢复消息信号。包络检波器实质上是一个整流器与一个低通滤波器的结合,这主要是利用了 RC 电路中电容放电慢的特点来提取提取 s_{AM} 的包络。因此,我们具体可以通过全波整流并低通滤波两步来实现。

二、目标设计

完成信号 AM 调制和解调功能,目标如下:

(1)载波信号频率范围:1M-10MHz,分辨率 0.01 MHz。

(2)调制信号为单频正弦波信号,频率范围:1kHz-10kHz,分辨率 0.01kHz。

(3)调制深度 0-1.0,步进 0.1,精度优于 5%。

(4)使用 MATLAB 对比调制信号和解调信号指标。

(5)载波信号频率、调制信号频率和调制深度可设置。

(6)完成 Testbench 仿真验证。

三、方案设计

1、原理框图

AM 调制解调较简单,其原理框图设计如下所示:

2、实现工具

原理框图中的调制信号、载波信号可以通过 Xilinx VIVADO 中调用 DDS IP 核进行配置得到;乘法器、加法器则直接调用 Xilinx VIVADO 的 IP 核进行使用;低通滤波器需要在调用 IP 核的基础上,利用 MATLAB 的滤波器设计工具生成 .coe 文件进行参数配置。

3、参数设计

(1)系统参数

时钟频率 f_{clk} 设置为 100 MHz。

(2)发送端参数

对于调制信号和载波信号而言,我们使用的是 DDS IP 核,根据 Xilinx 的 dds_compiler 官方手册给出的公式

pinc=\frac{2^{N}\cdot f_{out}}{f_{clk}}

我们可以利用系统时钟频率 f_{clk}、输出信号频率 f_{out}、相位累加器位宽 N 来计算出所需的频率控制字 pinc 的数值。

对于调制信号,我们设置输出信号频率 f_{out} 为 8 kHz,相位累加器位宽 N 为 24。

对于载波信号,我们设置输出信号频率 f_{out} 为 8 MHz,相位累加器位宽 N 为 16。

类似的,根据手册,我们同样可以根据公式

poff=2^{N}\cdot \frac{\theta}{2\pi}

来计算相位控制字 poff 的数值,本次设计中暂不用考虑设计相位控制字。

然后,我们将调制深度 \beta _{AM} 设置为 0.9,直流分量 A_{c}​​​​​​​ 幅度大小设置为 127。这里需要注意的是,调制深度不能直接在代码中写小数,我们可以将 \beta _{AM} 乘上 256 后取整,再与调制信号相乘,最后将结果右移 8 位即可。

(3)接收端参数

在 MATLAB 命令行窗口输入 filterDesigner 进入滤波器设计 GUI 界面。滤波器选择 fir 低通滤波器,滤波器阶数设置为 100,采样频率为 25 MHz,截止频率为 25kHz。

 下图量化完成后,点击菜单栏目标(Targets),输出为 .coe 文件,在调用 fir IP 核时引用。

原网站

版权声明
本文为[chylinne]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_41791315/article/details/126237985