m基于插入导频相关峰判决法的基带信号跳频图样识别FPGA实现,包含testbench

简介: m基于插入导频相关峰判决法的基带信号跳频图样识别FPGA实现,包含testbench

1.算法仿真效果
Vivado2019.2仿真结果如下:

54ca90170cd503825404ef6c85652034_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg
b9005deac1855d3b58cfc4267aac5e19_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

   本案例通过不同的跳频同样,在基带数据中插入不同的PN序列,然后在接收到,基于PN序列相关峰的检测识别,来判决当前基带数据对应的跳频图样实现跳频通信。这里数据是基于基带数据来进行测试的。 

2.算法涉及理论知识概要
插入导频: 跳频信号在传输过程中可能会经历频率变化,这使得信号的频谱随时间变化。为了帮助识别信号的频率,我们在跳频信号中插入导频序列。导频序列是预先知道的、不随时间变化的信号,它可以用来估计信号的频率偏移。

  相关峰判决法: 跳频图样识别基于导频序列的相关峰。在收到信号后,首先通过相关操作计算信号与导频序列之间的相关性。当信号的频率与导频序列的频率相匹配时,相关性峰值最高。通过检测相关性峰值,我们可以判断信号是否匹配特定的跳频图样。

0a434bbabea0be78c46cd876204587c1_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

具体实现步骤如下:

导频序列插入: 在发送端,将预先知道的导频序列插入跳频信号的特定位置。这些位置通常是在跳频图样的变化点。

信号接收: 接收端收到信号。

相关计算: 对接收到的信号与导频序列进行相关计算。通过对不同相关延迟进行计算,得到相关峰。

相关峰检测: 在相关峰函数中,检测最高的相关性峰值。该峰值对应于信号的频率与导频序列频率相匹配的情况。

判决: 根据相关峰值的存在与否,以及峰值的位置,来判断接收到的信号是否与特定的跳频图样匹配。

   通过这个过程,基于插入导频相关峰判决法的基带信号跳频图样识别可以实现对跳频信号的快速、准确的识别。这种方法在跳频通信系统中具有重要的应用,能够有效地解决跳频信号的频率偏移问题,提高信号识别的可靠性。

3.Verilog核心程序
````timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/04/22 15:13:09
// Design Name:
// Module Name: tops
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//

module tops(
i_clk_61_44M,//输入时钟
i_rst, //复位
o_clk_fre,
i_controller,
o_freq_coder,
o_I_dw,
o_Q_dw,
o_freq_coder2,
o_peak1,
o_peak2,
o_peak3,
o_peak4,
o_peak5
);

input i_clk_61_44M;
input i_rst;
output o_clk_fre;

input i_controller;
output[3:0]o_freq_coder;

output signed[11:0]o_I_dw;
output signed[11:0]o_Q_dw;

output[3:0] o_freq_coder2;
output signed[9:0]o_peak1;
output signed[9:0]o_peak2;
output signed[9:0]o_peak3;
output signed[9:0]o_peak4;
output signed[9:0]o_peak5;

wire clk_61_44M;
wire clk_15_36M;
wire clk_7_68M;
clk_wiz_0 clk_wiz_0_u
(
// Clock out ports
.clk_out1(clk_61_44M), // output clk_out1
.clk_out2(clk_15_36M), // output clk_out2
.clk_out3(clk_7_68M), // output clk_out3
// Status and control signals
.reset (1'b0), // input reset
.locked (), // output locked
// Clock in ports
.clk_in1 (i_clk_61_44M)
);
assign o_clk_fre=clk_15_36M;

wire signed[11:0]w_I_dw1;
wire signed[11:0]w_Q_dw1;

wire signed[11:0]w_I_dw2;
wire signed[11:0]w_Q_dw2;
wire signed[11:0]w_I_dw3;
wire signed[11:0]w_Q_dw3;
wire signed[11:0]w_I_dw4;
wire signed[11:0]w_Q_dw4;
wire signed[11:0]w_I_dw5;
wire signed[11:0]w_Q_dw5;
signal_f1 signal_f1_u(
.i_clk (o_clk_fre),
.i_rst (i_rst),
.o_I_dw(w_I_dw1),
.o_Q_dw(w_Q_dw1)
);
signal_f2 signal_f2_u(
.i_clk (o_clk_fre),
.i_rst (i_rst),
.o_I_dw(w_I_dw2),
.o_Q_dw(w_Q_dw2)
);

signal_f3 signal_f3_u(
.i_clk (o_clk_fre),
.i_rst (i_rst),
.o_I_dw(w_I_dw3),
.o_Q_dw(w_Q_dw3)
);

signal_f4 signal_f4_u(
.i_clk (o_clk_fre),
.i_rst (i_rst),
.o_I_dw(w_I_dw4),
.o_Q_dw(w_Q_dw4)
);

signal_f5 signal_f5_u(
.i_clk (o_clk_fre),
.i_rst (i_rst),
.o_I_dw(w_I_dw5),
.o_Q_dw(w_Q_dw5)
);

jump_frequency jump_frequency_u(
.i_clk (o_clk_fre),
.i_rst (i_rst),
.i_controller (i_controller),
.i_freqset (4'b0010),
.o_freq_coder (o_freq_coder)//输出跳频带你
);

reg signed[11:0]o_I_dw;
reg signed[11:0]o_Q_dw;
always @(posedge o_clk_fre or posedge i_rst)
begin
if(i_rst)
begin
o_I_dw <= 12'd0;
o_Q_dw <= 12'd0;
end
else begin
if(o_freq_coder == 4'b0000)//根据不同的频点,插入不同的序列,接收端根据序列类型判决频点
begin
o_I_dw <= w_I_dw1;
o_Q_dw <= w_I_dw1;
end
if(o_freq_coder == 4'b0001)
begin
o_I_dw <= w_I_dw2;
o_Q_dw <= w_I_dw2;
end
if(o_freq_coder == 4'b0010)
begin
o_I_dw <= w_I_dw3;
o_Q_dw <= w_I_dw3;
end
if(o_freq_coder == 4'b0011)
begin
o_I_dw <= w_I_dw4;
o_Q_dw <= w_I_dw4;
end
if(o_freq_coder == 4'b0100)
begin
o_I_dw <= w_I_dw5;
o_Q_dw <= w_I_dw5;
end

 end

end
jump_check jump_check_u(
.i_clk (o_clk_fre),
.i_rst (i_rst),
.i_I_dw (o_I_dw),
.i_Q_dw (o_Q_dw),
.o_freq_coder(o_freq_coder2),
.o_peak1 (o_peak1),
.o_peak2 (o_peak2),
.o_peak3 (o_peak3),
.o_peak4 (o_peak4),
.o_peak5 (o_peak5)
);

endmodule
```

相关文章
|
11天前
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
28 7
|
1天前
|
编解码 算法 异构计算
m基于CCSDS标准的LDPC编码器的FPGA实现,包含testbench,码长1024,码率0.5
在Vivado 2019.2中进行的LDPC码仿真展示了算法的良好效果。LDPC码是一种1962年由Gallager提出的稀疏校验矩阵线性分组码,利用Tanner图表示编码解码结构。CCSDS标准定义的LDPC(1024,512)码具有准循环结构,适用于空间通信,其编码通过填充信息比特和校验节点的线性组合实现。Verilog代码示例展示了TEST_encoder_top模块,用于控制LDPC编码过程,包括时钟、复位信号处理和中间数据读取。
6 1
|
8天前
|
存储 算法 异构计算
m基于FPGA的多功能信号发生器verilog实现,包含testbench,可以调整波形类型,幅度,频率,初始相位等
使用Vivado 2019.2仿真的DDS信号发生器展示了正弦、方波、锯齿波和三角波的输出,并能调整幅度和频率。DDS技术基于高速累加器、查找表和DAC,通过频率控制字和初始相位调整产生各种波形。Verilog程序提供了一个TEST模块,包含时钟、复位、信号选择、幅度和频率控制输入,以生成不同波形。
28 18
|
17天前
|
算法 异构计算 Python
m基于FPGA的217卷积编码维特比译码verilog实现,包含testbench不使用IP核
该内容展示了使用Vivado 2019.2进行卷积编码和维特比译码的模拟。提供了编码、译码输出和RTL图的图片,以及Verilog实现的核心代码。卷积编码是一种前向纠错技术,基于生成多项式产生冗余数据;维特比译码利用动态规划恢复原始信息,最小化错误。Verilog程序包含了编码和译码模块,以及输入输出信号的时序操作。
12 0
|
2月前
|
存储 算法 算法框架/工具
基于HSV色度空间的图像深度信息提取算法FPGA实现,包含testbench和MATLAB辅助验证程序
该文档介绍了在一个FPGA项目中使用HSV色彩模型提取图像深度信息的过程。通过将RGB图像转换为HSV,然后利用明度与深度的非线性映射估计深度。软件版本为Vivado 2019.2和MATLAB 2022a。算法在MATLAB中进行了对比测试,并在FPGA上实现了优化,包括流水线并行处理和查找表技术。提供的Verilog代码段展示了RGB到灰度的转换。实验结果和核心程序的图片未显示。
|
3月前
|
算法 异构计算
基于FPGA的ECG信号滤波与心率计算verilog实现,包含testbench
基于FPGA的ECG信号滤波与心率计算verilog实现,包含testbench
|
2月前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
31 2
|
4月前
|
算法 5G 数据处理
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
51 0
|
4月前
|
算法 异构计算 索引
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
46 1
|
2月前
|
算法 异构计算
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
16 0

热门文章

最新文章