【硬件片内测试】基于FPGA的4FSK扩频通信链路测试,包含帧同步,定时点,扩频伪码同步,信道,误码统计

目录

1.引言

2.算法测试效果

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

[3.1 扩频](#3.1 扩频)

[3.2 插入导频](#3.2 插入导频)

[3.3 4FSK调制](#3.3 4FSK调制)

[3.4 帧同步](#3.4 帧同步)

[3.5 基于相关峰的定时点提取](#3.5 基于相关峰的定时点提取)

[3.6 采样判决](#3.6 采样判决)

[3.7 解扩](#3.7 解扩)

4.Verilog核心接口

5.开发板使用说明和如何移植不同的开发板

6.参考文献

7.完整算法代码文件获得


1.引言

基于FPGA 的FASK通信链路实现,系统包括4FSK模块,4FSK相干解调模块,AWGN信道 模块,误码统计模块,数据源模块,基于相关峰提取的帧同步和定时点提取模块,扩频解扩等。

2.算法测试效果

本系统是

https://blog.csdn.net/hlayumi1234567/article/details/158705923?spm=1001.2014.3001.5502

硬件测试版本。

在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(完整代码运行后无水印):

vivado2022.2测试

设置SNR=20db

上述波形局部放大后如下:

可以看到4FSK四个不同频率的载波

设置SNR=5db

设置SNR=-3db

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

整体系统结构如下所示:

3.1 扩频

用伪随机码(伪码)c(k)(周期为N,c(k)∈{+1,−1} )扩展信号带宽,实现抗干扰。扩频后信号

3.2 插入导频

插入已知导频序列p(t) ,用于接收端帧同步。导频序列为PN序列,插在数据帧的前面。

3.3 4FSK调制

4FSK调制的基本原理是将输入的二进制数据转换为不同频率的信号,以实现数据的传输。解调则是将接收到的不同频率的信号还原为原始的二进制数据。

在4FSK调制中,输入的二进制数据被分为两组,每组有两个比特。根据这两个比特的值,选择相应的频率输出。具体来说,有四个频率f1、f2、f3、f4与之对应,每个频率都代表一个二进制组合(00、01、10、11),即十进制的0,1,2,3。

频率选择:根据输入的比特组合选择相应的频率输出。例如,当输入为"00"时,选择频率f1;当输入为"01"时,选择频率f2;当输入为"10"时,选择频率f3;当输入为"11"时,选择频率f4。

调制信号:将选择的频率进行幅度调制,以便在传输过程中具有更好的抗干扰性能。通常采用开关键控(OOK)或脉冲幅度调制(PAM)等方法进行幅度调制。

解调信号:在接收端,根据不同频率的信号进行解调。首先通过带通滤波器 将所需的频率信号提取出来,然后通过解调器将其还原为原始的二进制数据。解调方法通常采用相干解调或非相干解调。

3.4 帧同步

在数字通信 中,信息通常是以帧为单位进行组织和传输的。帧同步的目的是确定每一帧的起始位置,以便接收端能够正确地解调出每帧中的数据。

设发送的帧结构为:帧同步码 + 信息码元序列 。帧同步码是具有特定规律的码序列,用于接收端识别帧的起始。

帧同步的过程就是在接收序列中寻找与帧同步码匹配的位置,一旦找到匹配位置,就确定了帧的起始位置,后续的码元就可以按照帧结构进行正确的划分和处理。

3.5 基于相关峰的定时点提取

在接收信号中,通过寻找与本地已知序列(如训练序列或导频序列)的相关峰来确定定时点。具体来说,将接收信号与本地序列进行相关运算,当两者的相位 和时间对齐时,相关值会出现峰值,这个峰值点对应的位置就是最佳的定时点,用于确定信号的采样时刻,以保证后续信号处理的准确性。

3.6 采样判决

在确定了定时点后,对接收信号进行采样,将采样值与预设的判决门限进行比较,根据比较结果确定接收信号的电平值,从而恢复出原始的二进制比特流。

3.7 解扩

用与发射端同步的伪码压缩带宽,恢复原始数据。伪码同步后,解扩输出:

在本课题中,伪码同步采用的是伪码峰值判决的方法,当出现峰值时,说明此时伪码同步。

4.Verilog核心接口

5.开发板使用说明和如何移植不同的开发板

注意:硬件片内测试是指发射接收均在一个板子内完成。

在本课题中,使用的开发板是:

如果你的开发板和我的不一样,可以参考代码包中的程序移植方法进行移植:

6.参考文献

1程晓畅,苏绍景,王跃科,等.伪随机码超声扩频测距系统设计与算法J.测试技术学报, 2007, 21(1):5.DOI:10.3969/j.issn.1671-7449.2007.01.016.

2张歆,彭纪肖,李国梁.采用FSK调制的直接序列扩频水声通信技术J.西北工业大学学报, 2007, 25(2):4.DOI:10.3969/j.issn.1000-2758.2007.02.005.0sj5_007m

7.完整算法代码文件获得

完整程序见博客首页左侧或者打开本文底部GZH名片

(V关注后回复码:X124)

(或者回复:4FSK扩频2)

V

相关推荐
仲南音16 小时前
Xilinx FPGA——时钟IP核MMCM、PLL
fpga开发
I'm a winner1 天前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper20201 天前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy2 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia2 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20202 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子2 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安3 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi
千寻xun3 天前
二、实战篇-NVME SSD控制之ZYNQ实现(六)-读写NVME SSD硬盘数据
fpga开发·nvme·nvme ssd
千寻xun3 天前
二、实战篇-NVME SSD控制之ZYNQ实现(三)
fpga开发·nvme ssd·nvme协议