基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块

news/2024/11/15 11:53:42/文章来源:https://www.cnblogs.com/51matlab/p/18308529

1.算法仿真效果

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

 

升级前原文链接

 

增加了完整的AWGN信道模型的FPGA实现,可以在testbench里面设置SNR,分析不同SNR对应的FPGA误码率情况。

 

vivado2019.2仿真结果如下(完整代码运行后无水印):

 

设置SNR=0:

 

 

 

设置SNR=5:

 

 

 

设置SNR=8:

 

 

 

设置SNR=15:

 

 

 

RTL图:

 

 

 

然后MATLAB的MSK测试仿真如下:

 

 

 

 

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

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

 

 

 

 

 

 

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

 

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

接收端解调信号

 

接收端解调信号

 

低通滤波信号

 

低通滤波信号

 

MSK差分解调信号

 

最后的数据

 

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

 

3.Verilog核心程序

//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_SNR(i_SNR), //这个地方可以设置信噪比,数值大小从-10~50,.i_din(o_msk_R), .o_noise(),.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
0sj_002m

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/745509.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【总结】逻辑运算在Z3中运用+CTF习题

国际赛IrisCTF在前几天举办,遇到了一道有意思的题目,特来总结。题目并不是很难,没有复杂的ollvm混淆也没有复杂的加密,但是却一步一步引导我们去学习和总结。国际赛IrisCTF在前几天举办,遇到了一道有意思的题目,特来总结。题目附件如下:📎babyrevjohnson.tar 解题过程…

在Python中使用SWCNN去除水印

在Python中使用SWCNN去除水印 说明首次发表日期:2024-07-17 SWCNN Github官方仓库: https://github.com/hellloxiaotian/SWCNN SWCNN 论文链接: https://arxiv.org/abs/2403.05807准备 运行环境 首先创建一个conda环境,安装SWCNN官方建议的库: conda create -n py39torch …

Xilinx NVMe AXI4主机控制器,AXI4接口高性能版本介绍

NVMe AXI4 Host Controller IP可以连接高速存储PCIe SSD,无需CPU,自动加速处理所有的NVMe协议命令,具备独立的数据写入和读取AXI4接口,不但适用高性能、顺序访问的应用,也适用于随机访问的应用,同时结合外部存储器(比如DDR),使得Host端的数据访问管理更加灵活。NVMe A…

请问如何将带有斜纹水印pdf的转成Excel呢?

大家好,我是Python进阶者。 一、前言 前几天在Python最强王者交流群【wen】问了一个Python自动化办公的问题,问题如下:请问如何将带有斜纹水印pdf的转成Excel呢?目前我把pdf转成图片,根据水印的颜色进行清除,但是在脱网环境下无法将图片转成Excel。 二、实现过程 后来【隔…

并发问题的三大根源是什么?

本文探讨了在多线程环境下,CPU缓存、线程切换以及编译优化如何影响数据的可见性、原子性和有序性,并提出了相应的解决方案。在单核CPU时代,所有线程共享同一缓存,确保了数据的一致性。然而,多核CPU下,各核心拥有独立缓存,可能导致线程间数据更新不可见。1.前言 从进程与…

判断语句

判断语句 猜猜心里数字:n=6 if int(input("第一次输入数字"))==n:print("猜对了") elif int(input("第二次输入数字"))==n:print("第二次猜对了") elif int(input("第三次输入数字"))==n:print("第三次对了") el…

nacos RCE

1.漏洞原理 漏洞的核心在于 Nacos 的某些接口没有严格的权限控制,攻击者可以通过通过特定的 JSON 数据结构,远程执行恶意代码。以利用该漏洞读取敏感文件、执行系统命令。 条件:需要登录后才能利用漏洞 2.影响版本 nacos 2.3.2 nacos 2.4.0 3.环境搭建 https://github.com/a…

DataFountain-个贷违约预测实战

赛题来源:Datafountain 个贷违约预测 竞赛 - DataFountain 参考优秀选手方法单模走天下:公布一个单模型精度达0.9014(B榜第8)的算法 数据科学社区-DataFountain并加入自己理解整理如下:赛题理解 题目给出了train_internet.csv、train_public.csv、test_public.csv、submit_e…

数据仓库建模工具之一——Hive学习第三天

1、Hive的基本操作 1.1 Hive库操作 1.1.1 创建数据库1)创建一个数据库,数据库在HDFS上的默认存储路径是/hive/warehouse/*.db。create database testdb;2)避免要创建的数据库已经存在错误,增加if not exists判断。(标准写法)-- 中括号表示可以省略的内容 create database…

Datawhale AI 夏令营——电力需求挑战赛——Task2学习笔记

一、实先准备import numpy as np import pandas as pd import lightgbm as lgb from sklearn.metrics import mean_squared_log_error, mean_absolute_error, mean_squared_error import tqdm import sys import os import gc import argparse import warnings warnings.filter…

美团VS饿了么,到底谁更胜一筹?

美团大战饿了么,到底谁会更胜一筹最近啊,收到一个粉丝的投稿,我发现他在美团和饿了么都去面试过。 这俩企业大家应该都经常用吧,咱点外卖的时候,我有时候就琢磨,到底他俩谁更厉害点。 今天咱们就瞅瞅,在面试这块儿谁更难一些。 (目前都只有一面的情况,要是想要后续的,…