m基于FPGA的Alamouti编码verilog实现,包含testbench测试文件

69 阅读2分钟

1.算法仿真效果

 

本系统进行了Vivado2019.2平台的开发,结果如下:

45d6547802c331b894f00b278e919e73_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

 

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

        在无线通信领域,多天线技术是提高系统容量和可靠性的关键手段之一。Alamouti编码是空时编码(STC)的一种,它为两发射天线的系统提供了一种全速率、全分集的简单编码方案。而空频分组编码(SFBC)则是Alamouti编码在频域的一种扩展,用于在正交频分复用(OFDM)等系统中获得类似的分集增益。

 

       SFBC是一种扩展至多载波通信系统(如OFDM)的空间编码技术,它结合了空域和频域的分集增益。在多天线、多子载波的场景下,SFBC通过对同一组数据符号在不同天线以及相邻或非相邻的子载波上重复或交织编码实现分集。

 

       其运算公式如下:

 

7bd00ab73149fa93c725d1b9029a94ac_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

  image.png

3.Verilog核心程序 ``timescale 1ns / 1ps

 

module TEST();

 

reg i_clk;

reg i_rst;

reg i_en;

reg [7:0]i_real;

reg [7:0]i_imag;

 

wire o_en;

wire[7:0]o_real_code1;

wire[7:0]o_imag_code1;

wire[7:0]o_real_code2;

wire[7:0]o_imag_code2;  

 

Alamouti_code uut(

.i_clk        (i_clk),

.i_rst        (i_rst),

.i_en         (i_en),

.i_real       (i_real),

.i_imag       (i_imag),

.o_en         (o_en),

.o_real_code1 (o_real_code1),

.o_imag_code1 (o_imag_code1),

.o_real_code2 (o_real_code2),

.o_imag_code2 (o_imag_code2)                 

);

 

initial

begin

i_clk = 1'b1;

i_rst = 1'b1;

#1000

i_rst = 1'b0;

end

initial

begin

i_en   = 1'b0;

i_real = 8'd0;

i_imag = 8'd0;

#1000

i_en   = 1'b1;

i_real = 15;

i_imag = 25;

#10

i_en   = 1'b1;

i_real = 35;

i_imag = 40;

#10

i_en   = 1'b0;

i_real = 0;

i_imag = 0;

end

always #5 i_clk = ~i_clk;

endmodule`