首页 > 其他分享 >OFDM 802.11a的FPGA实现:发射部分的最终实现

OFDM 802.11a的FPGA实现:发射部分的最终实现

时间:2024-05-28 20:01:28浏览次数:23  
标签:仿真 dout OFDM FPGA dac Re Matlab 802.11

目录

1.摘要

2.最终实现的ModelSim仿真

3.Matlab仿真和MoselSim仿真进行对比

4.完整工程


1.摘要

本系统在Xilinx的zynq 7000系列FPGA芯片上实现了一个基于IEEE 802.11a协议的OFDM基带处理发射机的功能。本系统包含了整个发射机的所有功能,包括序列训练符号、Siganl符号和Data符号等的实现过程。实现了data域的数据处理过程:由MAC层传来字节数据->并串转换->扰码->卷积编码->删余->一级交织->二级交织->调制映射->插入导频->IFFT->DAC。

发射机整体构架

发射机整体构架

系统采用125M时钟,DAC采用20M时钟,数据处理时使用AXI-Stream协议,让整个系统工作在流水线状态下,且最终保证了送往DAC的数据以20M的速率无间隙的连续输出,相比《基于Xilinx FPGA的OFDM通信系统基带设计》使用多重跨时钟域,本系统更稳定可靠。

系统硬件框图

系统硬件框图

系统实现了IEEE 802.11a协议里面的BPSK、QPSK、16-QAM、64-QAM调制。

调制方式

调制方式

实现了数据速率6、9、12、18、24、36、48、54Mb/s。

数据速率

数据速率

该设计完成了,Matlab和ModelSim仿真闭环测试对比。

Matlab和ModelSim仿真闭环测试对比

Matlab和ModelSim仿真闭环测试对比

2.最终实现的ModelSim仿真

测试时,数据速率设为36,即16-QAM调制,编码效率3/4。测试数据使用5个OFDM符号,720个bit,即90byte。

下图显现了顶层输入输出的仿真效果,addr=0-89对应测试数据的字节地址:

顶层仿真截图

下图显示了DAC时域组帧模块仿真效果:

DAC时域组帧模块仿真

DAC时域组帧模块仿真

3.Matlab仿真和MoselSim仿真进行对比

clc;
close all;
PATH = 'D:/FPGA/OFDM_802.11a_my/TX/matlab/OFDM_802_11a_TX/';

FPGA_dac_dout = readlines([PATH,'dac_data_out.txt'],'EmptyLineRule','skip')';
display(FPGA_dac_dout);
FPGA_Im_dac_dout = extractBefore(FPGA_dac_dout,9);
FPGA_Re_dac_dout = extractAfter(FPGA_dac_dout,8);
display(FPGA_Re_dac_dout);
display(FPGA_Im_dac_dout);
q = quantizer('fixed','round','saturate',[8,6]);
FPGA_Re_dac_dout = bin2num(q,FPGA_Re_dac_dout);
FPGA_Im_dac_dout = bin2num(q,FPGA_Im_dac_dout);
FPGA_Re_dac_dout = cell2mat(FPGA_Re_dac_dout);
FPGA_Im_dac_dout = cell2mat(FPGA_Im_dac_dout);
FPGA_dac_dout = FPGA_Re_dac_dout + 1j*FPGA_Im_dac_dout;

preamble_out  = preamble_out  / max(abs(preamble_out ));
FPGA_dac_dout = FPGA_dac_dout /max(abs(FPGA_dac_dout));%归一化
display(preamble_out );
display(FPGA_dac_dout);
figure;
subplot(2,1,1);
plot(real(preamble_out ));title('Matlab仿真输出实部');
subplot(2,1,2);
plot(real(FPGA_dac_dout));title('FPGA仿真输出后实部');
figure;
subplot(2,1,1);
plot(imag(preamble_out ));title('Matlab仿真输出后虚部');
subplot(2,1,2);
plot(imag(FPGA_dac_dout));title('FPGA仿真输出后虚部');

matlab对比结果:

实部

实部

虚部

虚部

图形走势是一致的,只是幅度不相等,可能是IFFT核计算时会进行缩放,与Matlab仿真设置的缩放不一样,不过不影响。

4.完整工程

获取完整工程链接:点此跳转,或者点击阅读原文跳转

完整工程包括,matlab仿真代码、matlab自动化对比代码、verilog HDL代码、仿真测试激励文件

完整工程

完整工程

src文件夹里面包含所有的verilog HDL代码:

image

关注微信公众号获取完整工程:

标签:仿真,dout,OFDM,FPGA,dac,Re,Matlab,802.11
From: https://blog.csdn.net/xxqlover/article/details/139275627

相关文章

  • 基于FPGA的函数信号发生器设计
    本科时期的一个课设,现在将他分享出来,写了很详细的文章,可以直接拿去使用:设计采用波形查找表和相位累加器的方法实现DDS,查找表的数据位宽为8位,采样点数为4096。波形产生范围是100Hz-20MHz,最小频率间隔为1Hz,用8个数码管显示频率,可产生正弦波、方波、三角波,波形用两个led显示,select......
  • 突破带宽瓶颈,5SGSMD4E1H29C2G、5SGSMD4E1H29I2G、5SGSMD4E3H29I3G Stratix® V GS FPG
    StratixVGSFPGA——600-Mbps至12.5-Gbps收发器,适用于高性能数字信号处理(DSP)应用。中文参数:5SGSMD4E1H29C2GLAB/CLB数:135840逻辑元件/单元数:360000总RAM位数:19456000I/O数:360电压-供电:0.87V~0.93V安装类型:表面贴装型工作温度:0°C~85°C(TJ)封装/外壳:780-BBGA,FCBGA......
  • FPGA复位:(35)复位移除方法?
    1.1复位移除方法?1.1.1本节目录1)本节目录;2)本节引言;3)FPGA简介;4)复位移除方法?5)结束语。1.1.2本节引言“不积跬步,无以至千里;不积小流,无以成江海。就是说:不积累一步半步的行程,就没有办法达到千里之远;不积累细小的流水,就没有办法汇成江河大海。1.1.3FPGA简介FPGA(FieldP......
  • FPGA复位:(33)同步复位优势?
    1.1同步复位优势?1.1.1本节目录1)本节目录;2)本节引言;3)FPGA简介;4)同步复位优势?5)结束语。1.1.2本节引言“不积跬步,无以至千里;不积小流,无以成江海。就是说:不积累一步半步的行程,就没有办法达到千里之远;不积累细小的流水,就没有办法汇成江河大海。1.1.3FPGA简介FPGA(FieldP......
  • 无线互联网协议802.11学习
    IEEE802.11是由电气和电子工程师学会(IEEE)创建的一组无线局域网(WLAN)标准。它指定了WLAN技术的物理层和介质访问控制(MAC)层,并定义了一组共同的无线局域网要求。802.11标准提供了一种可扩展、安全、易于使用的无线网络技术,可以无缝集成到现有网络中。在802.11标准中有多种不同......
  • FPGA交通灯进阶
    1.进阶要求➢十字路分为主干道Highway和乡村公路Farmroad;➢路口的检测器C,没有检测到Farmroad上有等候的车子,Highway上的交通灯(HL)保持为绿灯;➢C检测到Farmroad上有车后HL再保持一段时间(例如30秒)才通过黄灯(例如3秒)变为红灯,同时Farmroad上的交通灯(FL)从红灯变为绿灯;➢Farm......
  • 基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序
    1.算法运行效果图预览vivado2019.2和matlab2022a测试,结果如下:    2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述​      图像质量的含义包括图像的逼真度和图像的可读懂性。所谓图像的逼真度是指被评价图像与标准图像的偏离程度,偏差越......
  • 如何让ALG、FPGA、EMU、SOC、SubIp实现驱动复用
       摘要        在芯片验证场景中,我们通常涉及到算法team、fpga测试team、EMUteam、SOC验证和Subip验证如何对芯片的完备性测试的探讨。由于各个team都是相互独立的,很多flow都是独立开发出来,对于交互的文件也是五花八门,这些文件各team协助起来很不方便,如何打通......
  • OFDM 802.11a的FPGA实现(二十二)DAC模块(含代码)
    目录1.前言2.实现思路3.verilog代码4.MoselSim仿真完整工程链接(含verilog和Matlab代码):OFDM802.11a的xilinxFPGA实现1.前言上一节完成了MUC模块,实现了对MAC层进行数据交互,以及控制物理层各个模块的工作。现在还剩下最后一个DAC模块,作用是将时域的输出按照前导码、sig......
  • 基于FPGA的4x4矩阵键盘驱动设计---第一版
    欢迎各位朋友关注“郝旭帅电子设计团队”,本篇为各位朋友介绍基于FPGA的4x4矩阵键盘驱动设计---第一版功能说明:1.驱动4x4矩阵键盘:按下任意一个按键,解析出对应按键信息,并给出标志 使用平台:纯代码形式使用语言:VerilogHDL 作者QQ:746833924说明:本篇设计中不涉及到IP和原语,......