m基于FPGA的MSK调制解调系统verilog开发,并带FPGA误码检测模块和matlab仿真程序

简介: m基于FPGA的MSK调制解调系统verilog开发,并带FPGA误码检测模块和matlab仿真程序

1.算法描述
整个模型的基本框图为

1.jpeg
2.jpeg

软件无线电是现代通信技术的重要研究领域和发展方向,目前发展迅速.快速发展的软件无线电技术与落后的硬件计算资源之间的矛盾越来越突出.为了缓解这个矛盾,一方面可以加快集成电路的研发进度,提升硬件的计算性能;另一方面可以对信号处理的算法进行深入的改进研究,降低算法的运算量,在现有的硬件水平下提出符合实际的解决方案.在信号处理的各种算法中,调制解调算法的地位十分重要.尤其是其中的解调算法,其复杂度已被作为衡量整个信号处理系统工作性能的有效指标. 本文的研究对象是恒定包络连续相位调制技术中的最小频移键控(MSK).这种调制方式具有恒定包络,相位连续,功率谱密度较集中,频带利用率高等特点.MSK信号的诸多优点使得它在信号理论研究和应用中具有重要意义.

 MSK信号是一种相位连续、包络恒定并且占用带宽最小的二进制正交FSK信号。它的第k个码元可以表示为:

image.png

   MSK信号具有特点如下:①MSK信号是正交信号;②其波形在码元间是连续的;③其包络是恒定不变的;④其附加相位在一个码元持续时间内线性地变化2/;⑤调制产生的频率偏移等于T4/1Hz;⑥在一个码元持续时间内含有的载波周期数等于1/4的整数倍。这里,我们考虑到硬件平台的高度可移植性,我们采用了无核化设计,就是全部使用verilog进行设计,下面首先说明一下系统的各个管脚。

image.png

时钟,接板子的晶振。

系统复位,高电平复位清0,你接板子上任意一个开关即可。

数据发送端数据,有符号,你接起高位即可,示波器看

MSK符号,多维有符号数,需要使用chipscope在线看

MSK符号,多维有符号数,需要使用chipscope在线看

MSK调制,多维有符号数,需要使用chipscope在线看

MSK调制,多维有符号数,需要使用chipscope在线看

调制端最后输出的中频信号

接收端解调信号

接收端解调信号

低通滤波信号

低通滤波信号

MSK差分解调信号

最后的数据

误码数

总比特数(两个相除就是误码率)

2.仿真效果预览
matlab2022a仿真结果如下:

5.png
6.png
7.png
8.png
9.png

3.Verilog核心程序

 
module tops(
           i_clk,
              i_rst,
              //Trans
              o_Trans_data_samples,
              o_Msk_I_samples,
              o_Msk_Q_samples,
              o_msk_cos,
              o_msk_sin,
              o_msk_R,
              o_msk_Rn,
              //Rec
              o_msk_cos_rec,
              o_msk_sin_rec,
              o_msk_filter_recI,
              o_msk_filter_recQ,
           o_data,
           o_bit,
           o_error_num,
              o_total_num
            );
 
input              i_clk;
input              i_rst;
//Trans
output signed[1:0] o_Trans_data_samples;
output signed[9:0] o_Msk_I_samples;
output signed[9:0] o_Msk_Q_samples;              
output signed[15:0]o_msk_cos;
output signed[15:0]o_msk_sin;                      
output signed[15:0]o_msk_R;
output signed[15:0]o_msk_Rn;
//Rec
output signed[15:0]o_msk_cos_rec;
output signed[15:0]o_msk_sin_rec;    
output signed[15:0]o_msk_filter_recI;
output signed[15:0]o_msk_filter_recQ;
output signed[31:0]o_data;
output signed[1:0] o_bit;
 
output signed[31:0]o_error_num;
output signed[31:0]o_total_num;
 
 
//Trans
 
//output  o_clk_4M;         //100M ~ 4M  , 25   times
//output  o_clk_1600K;      //100M ~ 0.8M, 125  times
//output  o_clk_200K;    //100M ~ 0.1M, 1000  times    
wire clk200;
wire clk_4M;
Msk_mod Msk_mod_u(
    .i_clk               (i_clk), 
    .i_rst               (~i_rst), 
    .o_clk_4M            (clk_4M), 
    .o_clk_1600K         (), 
    .o_clk_200K          (clk200), 
    .o_Trans_data        (), 
    .o_Trans_data_samples(o_Trans_data_samples), 
    .o_Msk_I             (), 
    .o_Msk_Q             (), 
    .o_Msk_I_samples     (o_Msk_I_samples), 
    .o_Msk_Q_samples     (o_Msk_Q_samples), 
    .o_cos               (), 
    .o_sin               (), 
    .o_msk_cos           (o_msk_cos), 
    .o_msk_sin           (o_msk_sin), 
    .o_msk_R             (o_msk_R)
    );
 
awgns awgns_u(
    .i_clk(clk_4M), 
    .i_rst(~i_rst), 
    .i_power(16'd100), 
    .i_din(o_msk_R), 
    .o_dout(o_msk_Rn)
    );
//Rec
Msk_demod Msk_demod_u(
    .i_clk            (i_clk), 
    .i_rst            (~i_rst), 
    .i_msk_R          (o_msk_Rn), 
    .o_msk_cos_rec    (o_msk_cos_rec), 
    .o_msk_sin_rec    (o_msk_sin_rec), 
    .o_msk_filter_recI(o_msk_filter_recI), 
    .o_msk_filter_recQ(o_msk_filter_recQ), 
    .o_data           (o_data), 
    .o_bit            (o_bit)
    );
 
//error calculate
Error_Chech Error_Chech_u(
    .i_clk(clk200), 
    .i_rst(~i_rst), 
    .i_trans(o_Trans_data_samples), 
    .i_rec(o_bit), 
    .o_error_num(o_error_num), 
    .o_total_num(o_total_num)
    );
endmodule
01_117m
相关文章
|
5天前
|
算法 物联网 异构计算
基于FPGA的4FSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的4FSK调制解调系统的Verilog实现,包括高斯信道模块和误码率统计模块,支持不同SNR设置。系统在Vivado 2019.2上开发,展示了在不同SNR条件下的仿真结果。4FSK调制通过将输入数据转换为四个不同频率的信号来提高频带利用率和抗干扰能力,适用于无线通信和数据传输领域。文中还提供了核心Verilog代码,详细描述了调制、加噪声、解调及误码率计算的过程。
30 11
|
15天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
14天前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
15天前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
14天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的1024QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的1024QAM调制解调系统的仿真与实现。通过Vivado 2019.2进行仿真,分别在SNR=40dB和35dB下验证了算法效果,并将数据导入Matlab生成星座图。1024QAM调制将10比特映射到复数平面上的1024个星座点之一,适用于高数据传输速率的应用。系统包含数据接口、串并转换、星座映射、调制器、解调器等模块。Verilog核心程序实现了调制、加噪声信道和解调过程,并统计误码率。
35 1
|
16天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
202 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
129 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
90 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度

热门文章

最新文章