您现在的位置:首页 >> 通信 >> 内容

m基于FPGA的高斯白噪声信道模拟系统verilog实现,包含testbench,可以配置不同的SN

时间:2023/8/17 19:10:55 点击:

  核心提示:00_037m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJ2Tkppu

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

 高斯白噪声信道在通信系统中具有重要意义,模拟此类信道有助于评估系统性能。本文提出的FPGA实现系统可以灵活地模拟不同信道条件,为通信系统的设计和测试提供有力支持。

4.部分源码

`timescale 1ns / 1ps

//

// Company: 

// Engineer: 

// 

// Create Date: 2023/08/17 14:13:20

// Design Name: 

// Module Name: TEST

// Project Name: 

// Target Devices: 

// Tool Versions: 

// Description: 

// 

// Dependencies: 

// 

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

// 

//

 

 

module TEST();

    

reg i_clk;

reg i_rst;

reg signed[7:0]i_SNR;//根据质量得到当前帧类型:-10~50

reg signed[15:0]i_fre;

wire signed[15:0]i_real1;

wire signed[15:0]i_imag1;

wire signed[15:0]o_Rnoise1;

wire signed[15:0]o_Inoise1;

wire signed[15:0]o_real1;

wire signed[15:0]o_imag1;    

    

reg signed[1:0]i_Idiff;

reg signed[1:0]i_Qdiff;    

initial

begin

    i_Idiff = 2'b00;

    #1440

    repeat(12500)

    begin

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b11;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b11;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b11;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b11;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b11;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b01;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b11;

    #10 i_Idiff = 2'b00;

    #30 i_Idiff = 2'b11;

    end

    $stop();

end

initial

begin

    i_Qdiff = 2'b00;

    #1440

    repeat(12500)

    begin

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b01;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b01;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b01;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b01;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b01;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b01;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b01;

    #10 i_Qdiff = 2'b00;

    #30 i_Qdiff = 2'b11;

    end

    $stop();

end

    

//测试信号源

wire signed[1:0] w_Inz=i_Idiff;

wire signed[1:0] w_Qnz=i_Qdiff;

 

//成型滤波

fiter uut1(

.i_clk  (i_clk),

.i_rst  (i_rst),

.i_din  (w_Inz),

.o_dout (i_real1)

);

 

fiter uut2(

.i_clk  (i_clk),

.i_rst  (i_rst),

.i_din  (w_Qnz),

.o_dout (i_imag1)

);

    

 

initial

begin

    i_clk = 1'b1;

    i_rst = 1'b1;

    i_fre= 0;

    i_SNR = 8'd0;

    #1600

    i_rst = 1'b0;

    i_SNR = 0;

    i_fre= 0;

    #10000

    i_SNR = 5;

    i_fre= 0;

    #10000

    i_SNR = 15;

    i_fre= 0;

    #10000

    i_SNR = 25;

    i_fre= 0;

    #10000

    i_SNR = 45;

    i_fre= 10;//1/2^15*100e6=3k频偏

end

 

always #5 i_clk=~i_clk;  

    

AWGN_tops AWGN_tops_u(

.i_clk     (i_clk),

.i_rst     (i_rst),

.i_SNR     (i_SNR),//根据质量得到当前帧类型:-10~50

.i_fre     (i_fre),

.i_real1   (i_real1),

.i_imag1   (i_imag1),

.o_Rnoise1 (o_Rnoise1),

.o_Inoise1 (o_Inoise1),

.o_real1   (o_real1),

.o_imag1   (o_imag1)

);  

    

    

    

endmodule

00_037m

---


作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168