赞
踩
因最近客户需求,用纯PL实现AD9361的数字信号调制解调,于是就把各种数字调制都在AD9361上都实现了一遍。
优点就是:既可以在zynq系列上配置9361,也可以在纯FPGA系列配置9361。并且理解起来比较简单!!!
制作不易,记得三连哦,给我动力,持续更新中!!!
完整工程文件下载:纯逻辑设计AD9361发射QSPK工程下载 (点击蓝色文字即可下载)
提取码:19w5
对于之前学习过我文章的小伙伴来说,大家应该都了解如何利用 AD936x Evaluation Software 生成 AD9361 的配置,并在 Vivado 中调用该配置,最后写入 AD9361 芯片。
对于新来的小伙伴而言,我建议你可以先回顾一下我之前的文章内容。在那些文章中,我详细介绍了如何通过软件生成 AD9361 的配置,并在 Vivado 开发环境中使用该配置。这些基础知识对于接下来的内容学习很重要。
在接下来的设计中,我们将在纯逻辑配置 AD9361 的基础上,实现各种数字信号的调制解调功能。这将涉及更多的数字信号处理知识和技术。如果你对这些内容感兴趣,不妨继续关注我的后续文章。我会在这些文章中, 全面地讲解如何基于 AD9361 实现各种数字调制解调功能的具体实现方法。
纯逻辑配置AD9361教程/通过UART串口发送配置文件配置AD9361/通过rom配置AD9361/纯PL配置AD9361_ad9361发送数据代码-CSDN博客
本篇文章将介绍如何通过AD9361发射QPSK信号以及纯verilog代码实现和讲解。
QPSK (Quadrature Phase Shift Keying) 是一种广泛使用的数字调制方式,它通过改变载波的相位来传输数据。QPSK 实现 IQ 调制解调的基本原理包括以下几个方面:
QPSK 调制通过将输入比特流转换为 I 和 Q 信号来实现,具体步骤如下:
QPSK 解调的目的是从接收到的调制信号中提取原始的比特流,具体步骤如下:
主要代码为:QPSK调制模块、9361数据接收和发射接口、9361配置模块、串口模块,和之前的ASK调制的差异主要是把ASK调制部分替换为了QPSK调制和解调,其他代码不变(一劳永逸)
主要连接各个模块,已结对差分信号的差分转换
部分代码:
- wire signed [15:0] I, Q;
-
- QPSK_Modulator modulator(
- .clk(clk),
- .rst(~RstN),
- .data_in(data_in),
- .I_out(I),
- .Q_out(Q)
- );
-
- QPSK_Demodulator demodulator(
- .clk(clk),
- .rst(~RstN),
- .I_in(I),
- .Q_in(Q),
- .data_out(data_out)
- );
主要通过读取rom中的配置信息,然后通过SPI去写入9361寄存器,实现对9361的配置
QPSK_Modulator 模块:主要功能将输入的两位数据(00, 01, 10, 11)转换为 I 和 Q 信号。
部分代码:
- module QPSK_Modulator(
- input wire clk,
- input wire rst,
- input wire [1:0] data_in, // 输入两位数据
- output reg signed [15:0] I_out, // I 分量输出
- output reg signed [15:0] Q_out // Q 分量输出
- );
-
-
-
- always @(posedge clk or posedge rst) begin
- if (rst) begin
- I_out <= 16'sd0;
- Q_out <= 16'sd0;
QPSK_Demodulator 模块:将 接受到的I 和 Q 信号重新转换为两位数据。
部分代码:
- module QPSK_Demodulator(
- input wire clk,
- input wire rst,
- input wire signed [15:0] I_in, // I 分量输入
- input wire signed [15:0] Q_in, // Q 分量输入
- output reg [1:0] data_out // 解调后的数据输出
- );
-
- always @(posedge clk or posedge rst) begin
- if (rst) begin
- data_out <= 2'b00;
- end else begin
- if (I_in > 16'sd0 && Q_in > -16'sd16384 && Q_in < 16'sd16384) begin
把上述FPGA工程,综合编译,然后生成bit文件
本设计使用的硬件为官方开发板zedboard和ad9361发射,然后通过一个sdr设备进行信号接收,硬件链接如下所示
然后把bit文件下载到zedboard开发板,通过ila查看升余弦函数的输出
然后通过频谱仪和示波器可以看出符合QPSK信号特征,最后利用逻辑信号分析仪对QPSK信号查看星座图。本设计的码元速率设置的为1MHZ
通过上述分析仪可以观察到,星座图符合QPSK信号的特征,且相位稳定,表明信号调制正确。整个工程的9361接口和配置函数运行正常。
至此QPSK调制解调的部分就已经结束了,后期更新QPSK调制解调部分
完整工程文件下载:纯逻辑设计AD9361发射QPSK 提取码:w515
如果感觉文章对您有用,麻烦三连支持一下,方便下次用到的时候,就可以快速找到我,非常感谢您的支持!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。