m基于FPGA的64QAM调制解调通信系统verilog实现,包含testbench,不包含载波同步

这篇具有很好参考价值的文章主要介绍了m基于FPGA的64QAM调制解调通信系统verilog实现,包含testbench,不包含载波同步。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.算法仿真效果

2.算法涉及理论知识概要

2.1、64QAM调制解调系统的设计

2.1 信号生成

2.2 信号调制

2.3 信号解调

3.Verilog核心程序

4.完整算法代码文件


1.算法仿真效果


本系统进行了两个平台的开发,分别是:

Vivado2019.2

Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition

其中Vivado2019.2仿真结果如下:

fpga数字调制解调 书籍,FPGA通信和信号处理,fpga开发,64QAM,调制解调,verilog

fpga数字调制解调 书籍,FPGA通信和信号处理,fpga开发,64QAM,调制解调,verilog 

fpga数字调制解调 书籍,FPGA通信和信号处理,fpga开发,64QAM,调制解调,verilog 仿真结果导入matlab可以看星座图:

fpga数字调制解调 书籍,FPGA通信和信号处理,fpga开发,64QAM,调制解调,verilog

 Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition的测试结果如下:

fpga数字调制解调 书籍,FPGA通信和信号处理,fpga开发,64QAM,调制解调,verilog

fpga数字调制解调 书籍,FPGA通信和信号处理,fpga开发,64QAM,调制解调,verilog 

2.算法涉及理论知识概要

       基于FPGA的64QAM调制解调通信系统的设计和实现。首先,介绍了通信系统的基本原理和调制解调过程中需要用到的数学知识,包括正交幅度调制(QAM)和数字信号处理(DSP)算法。其次,详细介绍了64QAM调制解调系统的设计和实现步骤,包括信号生成、信号调制、信号解调和误码率测试等环节。最后,通过仿真实验和硬件实现测试,验证了系统的可行性和性能。


       随着无线通信技术的不断发展,越来越多的应用需要高速、高可靠性的通信系统来传输数据。调制解调是一种常用的数字通信技术,它可以将数字信号转换成模拟信号进行传输,同时也可以将接收到的模拟信号转换成数字信号进行处理。在数字调制解调中,QAM是一种常用的调制方式,它可以将数字信号分为实部和虚部两个部分进行编码,从而实现高效的数据传输。本文旨在介绍基于FPGA的64QAM调制解调通信系统的设计和实现,包括信号生成、信号调制、信号解调和误码率测试等环节,以验证系统的可行性和性能。

2.1、64QAM调制解调系统的设计

2.1 信号生成

       在64QAM调制解调系统中,需要生成一定数量的数字信号,作为调制信号和参考信号。数字信号可以使用随机数生成器产生,也可以使用特定的算法生成。在本文中,我们采用了带噪声的随机数生成器产生数字信号,其中噪声是为了模拟实际通信中的信道噪声。

2.2 信号调制

       在64QAM调制解调系统中,需要将数字信号转换成模拟信号进行传输,这个过程称为信号调制。在QAM调制中,数字信号分为实部和虚部两个部分进行编码,然后将它们分别调制到不同的载波上,最后将两个载波叠加在一起。具体来说,假设数字信号为s(n),其中n表示信号的采样点,QAM调制可以表示为:

$$
s_I(n) = A_I cos(2\pi f_c t(n))\
s_Q(n) = A_Q sin(2\pi f_c t(n))\
s(n) = s_I(n) + s_Q(n) = A_I cos(2\pi f_c t(n)) + A_Q sin(2\pi f_c t(n))
$$

其中,s_I(n)表示实部信号,s_Q(n)表示虚部信号,A_I和A_Q分别表示实部和虚部的调制系数,f_c表示载波频率,t(n)表示采样时间。在64QAM调制中,实部和虚部分别采用8QAM调制,然后叠加在一起,最终得到64QAM调制信号。

2.3 信号解调

       在接收端,需要将接收到的模拟信号转换成数字信号进行处理,这个过程称为信号解调。在64QAM解调中,首先需要将接收到的信号分离成实部和虚部,然后进行8QAM解调,最后将解调后的实部和虚部重新组合成数字信号。具体来说,假设接收到的信号为$r(n)$,则可以表示为:

$$r(n) = A_I cos(2\pi f_c t(n) + \phi_I) + A_Q sin(2\pi f_c t(n) + \phi_Q)
$$

其中,A_I和A_Q分别表示实部和虚部的振幅,\phi_I和\phi_Q分别表示实部和虚部的相位。根据正交幅度调制的原理,实部和虚部信号可以通过乘以正弦和余弦信号进行解调,即:

$$
s_I(n) = r(n) cos(2\pi f_c t(n))\
s_Q(n) = r(n) sin(2\pi f_c t(n))
$$

然后,将解调后的实部和虚部信号进行8QAM解调,得到解调后的数字信号。

3.Verilog核心程序

......................................................................

 
    wire       serial_in;
	wire       data_flag;
 
	integer  mixed_out;
 
	bit_signals bit_signals_U(
	   .clk       (clk),
	   .rst       (rst),
	   .enable    (start),
	   .serial_in (serial_in),
	   .data_flag (data_flag)
	   );
	   
	s2p s2p_U(
		.clk           (clk), 
		.rst           (rst), 
		.start         (start), 
		.serial_in     (serial_in),
		.data_flag     (data_flag),
		.parallel_data (parallel_data)
	);
	
	
//	local_oscillator local_oscillator_u(
//	   .clk    (clk),
//	   .rst    (rst),
//	   .start  (start),
//	   .sin    (sin),
//	   .cos    (cos)
//	   );
wire signed[9:0]mcos;
wire signed[9:0]msin;
NCO_Trans NCO_Trans_u(
                     .i_clk (clk),
					 .i_rst (~rst),  
					 .i_K   (10'd256),
					 .o_cos (mcos),
					 .o_sin (msin) 
	             );
assign cos={mcos,6'd0};
assign sin={msin,6'd0};   
	   
	   
	mod64QAM mod64QAM_u(
      .clk(clk),
      .rst(rst),
      .start(start),
      .parallel_data(parallel_data),
      .sin(sin),
      .cos(cos),
      .I_com(I_com),
      .Q_com(Q_com)
      );
      
      
//调制输出
always @(posedge clk or negedge rst)
begin
     if(~rst)
	  begin
	  I_comcos<={16{1'b0}};	
 	  Q_comsin<={16{1'b0}};
	  end
else begin
	  I_comcos<=$signed(I_com[4:0])*$signed(cos[15:5]);	
 	  Q_comsin<=$signed(Q_com[4:0])*$signed(sin[15:5]);
     end
end 
      
      
endmodule
00_017m

4.完整算法代码文件

V文章来源地址https://www.toymoban.com/news/detail-788724.html

到了这里,关于m基于FPGA的64QAM调制解调通信系统verilog实现,包含testbench,不包含载波同步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench

    目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 PPM调制解调原理 2.2 基于FPGA的PPM系统实现 3.Verilog核心程序 4.完整算法代码文件获得 vivado2019.2仿真结果如下:          基于FPGA的PPM(脉冲位置调制)光学脉位调制解调系统是一个复杂的电子与光电子相结合的通信系统。    

    2024年02月03日
    浏览(52)
  • 基于FPGA的FSK调制解调系统verilog开发

    目录 1.算法仿真效果 2.verilog核心程序 3.算法涉及理论知识概要 4.完整verilog VIVADO2019.2仿真结果如下:       频移键控是利用载波的频率变化来传递数字信息。数字频率调制是数据通信中使用较 早的一种通信方式,由于这种调制解调方式容易实现,抗噪声和抗衰减性能较强,

    2024年02月05日
    浏览(77)
  • 关于64QAM调制,软硬解调详解

    本文主要梳理记录一下64QAM的调制原理,以及软解调和硬解调的区别。 64QAM调制是M-QAM调制的一种,属于正交振幅调制,即采用幅度相位相结合的调制方式使得一个码片包含更多bit的信息。 64QAM调制可得到64个不同的波形,分别代表000000,000001…这也意味着一共有64种符号,一

    2023年04月22日
    浏览(47)
  • 基于FPGA的16QAM调制器verilog实现,包括testbench,并通过MATLAB显示FPGA输出信号的星座图

    目录 1.算法仿真效果 2.verilog核心程序 3.算法涉及理论知识概要 4.完整verilog matlab2022a/vivado2019.2仿真结果如下:  将FPGA仿真的数据导出,然后在matlab中将数据通过噪声之后,可以得到如下的星座图效果。 fpga工程版本信息:       16QAM全称正交幅度调制是英文Quadrature Amplitude

    2024年02月07日
    浏览(44)
  • 通信原理与MATLAB(十一):QAM的调制解调

    QAM调制原理如下图所示,基带码元波形经过串并转换分成I、Q两路,然后再经过电平转换(00转换成-1,01转换成-3,10转换成1,11转换成3),再与对应的载波相乘,然后再相加完成QAM的调制。 本次采用的是16QAM,M=16=2^k,因此k=4, L=2^(k/2)=4 QAM的解调原理如下图所示,QAM信号再分为I、Q两路

    2024年02月12日
    浏览(46)
  • FPGA实现数字QAM调制系统

    目录 前言 一、项目设计要求 二、各模块及仿真 1.m序列发生器 2.串并转换电路 3.电平映射电路 4.载波发生器 5.乘法器 6.加法器 三、例化仿真验证功能 总结 QAM是Quadrature Amplitude Modulation的缩写,中文译名为“正交振幅调制”,其幅度和相位同时变化,属于非恒包络二维调制。

    2023年04月08日
    浏览(39)
  • 基于FPGA的2FSK调制解调系统

            FSK作为数字通信中不可或缺的一种调制方式,其具有抗干扰能力强,不受信道参数的影响的优点,为此,设计合适的FSK调制解调系统便具有重要意义。   该系统产生主要分为三个步骤:         产生方式:通过matlab软件编程生成一个.mif文件,存放正弦波一个周期

    2024年02月03日
    浏览(48)
  • 基于FPGA的QPSK调制系统verilog开发

    目录 一、理论基础 二、核心程序 三、测试结果         正交相移键控(Quadrature Phase Shift Keying,QPSK)是一种数字调制方式。它分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。QPSK是一种四进制相位调制,具有良

    2024年02月01日
    浏览(47)
  • 基于FPGA的QPSK调制解调-------(1)QPSK调制技术的原理

    QPSK(正交相移键控)是M=4的MPSK一种,也可叫做四进制相移键控。即有四个不同相位的状态,每个码元需要传输2bit的数字信息,可由00、01、11、10组合来对应表示四个不同的相位0、pi/2、pi、3pi/2或pi/4、3pi/4、5pi/4、7pi/4。 由 QPSK调制原理框图如图所示:        首先将输入的数

    2024年02月04日
    浏览(50)
  • 西电B测——基于simulink的2PSK和2DPSK调制解调系统实现

    这是学校的B级测试实验,仅供学习交流使用 误码率曲线绘制需要用到bertool工具: bertool工具教程: 通信专业Simulink---画误码率曲线(使用bertool工具)_Enpiyahh的博客-CSDN博客_simulink误码率曲线 报告和仿真文件下载链接: 链接:https://pan.baidu.com/s/1Fo5ixtqQpegDMYFd15cctA?pwd=FCNN  提取码

    2024年02月02日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包