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

基于FPGA的8PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不

时间:2024/8/6 5:40:36 点击:

  核心提示:0sj_008m,包括程序操作录像+参考文献...

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

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

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

点击店铺

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

2.部分仿真图预览


3.算法概述

    随着通信技术的不断发展,相位调制技术因其高频谱效率和抗干扰能力而广泛应用于无线通信系统中。其中,8PSK(8相位相移键控)作为一种高阶调制方式,具有更高的频谱效率和更强的抗干扰能力,因此备受关注。然而,8PSK调制解调的实现复杂度较高,需要高效的数字信号处理技术。现场可编程门阵列(FPGA)作为一种可编程逻辑器件,具有高度的灵活性和并行处理能力,非常适合实现复杂的数字信号处理算法。

4.部分源码

`timescale 1ns / 1ps

//

// Company: 

// Engineer: 

// 

// Create Date: 2023/05/03 06:21:37

// 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_clksample;

reg i_rst;

reg i_dat;

reg signed[7:0]i_SNR;

wire[2:0]o_ISET;

wire signed[15:0]o_I8psk;

wire signed[15:0]o_Q8psk;

wire signed[15:0]o_Ifir_T;

wire signed[15:0]o_Qfir_T;

wire signed[31:0]o_mod_T;

wire signed[15:0]o_Nmod_T;

wire signed[31:0]o_modc_R;

wire signed[31:0]o_mods_R;

wire signed[31:0]o_Ifir_R;

wire signed[31:0]o_Qfir_R;

wire  [2:0]o_wbits;

wire       o_bits;

wire signed[31:0]o_error_num;

wire signed[31:0]o_total_num;  

TOPS_8PSK TOPS_8PSK_u(

.i_clk      (i_clk),

.i_clksample(i_clksample),

.i_rst  (i_rst),

.i_SNR(i_SNR),

.i_dat  (i_dat),

.o_ISET (o_ISET),

.o_I8psk(o_I8psk),

.o_Q8psk(o_Q8psk),

.o_Ifir_T (o_Ifir_T),

.o_Qfir_T (o_Qfir_T),

.o_mod_T  (o_mod_T),

.o_Nmod_T(o_Nmod_T),

.o_modc_R (o_modc_R),

.o_mods_R (o_mods_R),

.o_Ifir_R (o_Ifir_R),

.o_Qfir_R (o_Qfir_R),

.o_wbits(o_wbits),

.o_bits (o_bits),

.o_error_num(o_error_num),

.o_total_num(o_total_num)

);

 

 

initial

begin

    i_clk = 1'b1;

    i_clksample= 1'b1;

    i_rst = 1'b1;

    i_SNR =30;//这个地方可以设置信噪比,数值大小从0~50,

    #12000

    i_rst = 1'b0;

end

 

always #80 i_clk=~i_clk;

always #1 i_clksample=~i_clksample;

 

 

 

 

initial

begin

    i_dat = 1'b0;

    #12000

    repeat(10000)

    begin

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b0;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b1;

    #160 i_dat = 1'b0;

    

    

    end

end

 

 

 //显示发射端带相位旋转的星座图

integer fout1;

integer fout2;

initial begin

 fout1 = $fopen("It.txt","w");

 fout2 = $fopen("Qt.txt","w"); 

end

 

always @ (posedge i_clk)

 begin

     if(i_rst==0)

     begin

    $fwrite(fout1,"%d\n",o_Ifir_R);

$fwrite(fout2,"%d\n",o_Qfir_R);

end

else begin

    $fwrite(fout1,"%d\n",0);

$fwrite(fout2,"%d\n",0);

end

end

 

 

 

endmodule

---

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