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
相关文章
|
11月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
539 0
|
11月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
1196 30
|
11月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
11月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
12月前
|
机器学习/深度学习 边缘计算 算法
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
462 0
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
730 74
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
836 69
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。
|
算法 数据安全/隐私保护 异构计算
基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
本项目展示了一种基于FPGA的音频水印算法,采用LSB(最低有效位)技术实现版权保护与数据追踪功能。使用Vivado2019.2和Matlab2022a开发,完整代码含中文注释及操作视频。算法通过修改音频采样点的最低有效位嵌入水印,人耳难以察觉变化。然而,面对滤波或压缩等攻击时,水印提取可能受影响。该项目运行效果无水印干扰,适合实时应用场景,核心逻辑简单高效,时间复杂度低。
|
算法 数据安全/隐私保护 异构计算
基于FPGA的2ASK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR
本内容展示了基于Vivado2019.2的算法仿真效果,包括设置不同信噪比(SNR=8db和20db)下的结果及整体波形。同时,详细介绍了2ASK调制解调技术的原理与实现,即通过改变载波振幅传输二进制信号,并提供数学公式支持。此外,还涉及帧同步理论,用于确定数据帧起始位置。最后,给出了Verilog核心程序代码,实现了2ASK解调与帧同步功能,结合DDS模块生成载波信号,完成信号处理流程。
363 0

热门文章

最新文章