首页 > 其他分享 >m基于FPGA的OFDM系统中降PAPR技术的实现,包含testbench测试文件和MATLAB辅助测试

m基于FPGA的OFDM系统中降PAPR技术的实现,包含testbench测试文件和MATLAB辅助测试

时间:2023-10-18 23:32:38浏览次数:36  
标签:real ifft FPGA OFDM imag 测试 papr PAPR

1.算法仿真效果 本系统进行了Vivado2019.2平台的开发:

1.jpeg

将FPGA的仿真结果导入matlab中,并通过matlab2022a进行papr对比:

2.jpeg

2.算法涉及理论知识概要 峰值平均功率比(PAPR—Peak to Average Power Ratio),简称峰均比(PAPR)。MIMO-OFDM系统能够提供更大的覆盖范围、更好的传输质量、更高的数据速率和频谱效率。然而,由于OFDM 符号是由多个独立经过调制的子载波信号叠加而成的,当各个子载波相位相同或者相近时,叠加信号便会受到相同初始相位信号的调制,从而产生较大的瞬时功率峰值,由此进一步带来较高的峰值平均功率比(PAPR—Peak to Average Power Ratio),简称峰均比(PAPR)。由于一般的功率放大器的动态范围都是有限的,所以峰均比较大的MIMO-OFDM信号极易进入功率放大器的非线性区域,导致信号产生非线性失真,造成明显的频谱扩展干扰以及带内信号畸变,导致整个系统性能严重下降。高峰均比已成为MIMO-OFDM 的一个主要技术阻碍。

2.1 OFDM中PAPR问题概述 首先,OFDM信号是一种特殊的多载波调制技术,它将高速数据流通过串并转换器变为多路并行的数据流,然后用不同的载波去承载这些并行的码流。这个过程中,每个载波的幅度和相位都可以独立地控制,从而实现对信号的优化。

   然而,由于OFDM信号的多个载波是正交的,这使得各个载波的幅度在时间上可能呈现剧烈的变化,从而导致信号的峰均功率比(PAPR)较高。高PAPR不仅会降低信号的信噪比(SNR),还会对系统的性能产生负面影响。

2.2 基于限幅法的PAPR抑制技术 在正交频分复用(OFDM)技术中,由于信号是由多个独立经过调制的子载波信号叠加而成的,当各个子载波相位相同或者相近时,叠加信号便会受到相同初始相位信号的调制,从而产生较大的瞬时功率峰值,由此进一步带来较高的峰值平均功率比(PAPR—Peak to Average Power Ratio),简称峰均比(PAPR)。

   PAPR问题主要表现为,当OFDM信号的峰值出现时,功率放大器的动态范围是有限的,因此峰均比较大的信号极易进入功率放大器的非线性区域,导致信号产生非线性失真,造成明显的频谱扩展干扰以及带内信号畸变,导致整个系统性能严重下降。为了解决PAPR问题,基于限幅法的PAPR抑制技术被提出。该技术主要包括以下两种方法:

限幅法:该方法通过降低信号的峰值幅度来降低PAPR,但会牺牲一定的频谱效率。 压扩法:该方法通过改变各个载波的幅度分布来降低PAPR,但需要大量的计算资源。 以上基于限幅法的PAPR抑制技术是针对OFDM信号处理的特性和要求提出的,可以有效降低OFDM信号的PAPR,提高系统的性能。然而,还需要考虑其应用时的具体要求和限制。

3.Verilog核心程序

 
 
module OFDM_tops(
                i_clk,
                i_rst,
                
                i_before_fft1,
                i_last_fft1,
                i_enable1,
                i_real_dat1,
                i_imag_dat1,
 
 
                o_start_ifft,
                o_ends_ifft,
                o_enable_ifft, 
                o_real_ifft,
                o_imag_ifft,
                
                
                o_start_papr,
                o_ends_papr,
                o_enable_papr, 
                o_real_papr,
                o_imag_papr 
                );
    
input             i_clk;                 
input             i_rst;   
      
input             i_before_fft1;                
input             i_last_fft1;   
input             i_enable1;  
input signed[15:0]i_real_dat1;                 
input signed[15:0]i_imag_dat1;   
 
 
output  o_start_ifft;
output  o_ends_ifft;
output  o_enable_ifft;
output signed[31:0]o_real_ifft;                 
output signed[31:0]o_imag_ifft;
 
 
output  o_start_papr;
output  o_ends_papr;
output  o_enable_papr;
output signed[31:0]o_real_papr;                 
output signed[31:0]o_imag_papr;  
 
 
 
Tants Tantsu1(
                .i_clk          (i_clk),
                .i_rst          (i_rst),
                
                .i_before_fft1  (i_before_fft1),
                .i_last_fft1    (i_last_fft1),
                .i_enable1      (i_enable1),
                .i_real_dat     (i_real_dat1),
                .i_imag_dat     (i_imag_dat1),
 
                .o_real_ifft    (o_real_ifft),
                .o_imag_ifft    (o_imag_ifft),
                .o_start        (o_start_ifft),
                .o_ends         (o_ends_ifft),
                .o_enable       (o_enable_ifft)
                 
                );
 
 ofdm_papr ofdm_papr_u(
                .i_clk          (i_clk),
                .i_rst          (i_rst),
                
                .i_real_dat1    (o_real_ifft),
                .i_imag_dat1    (o_imag_ifft),
 
                .o_real_ifft    (o_real_papr),
                .o_imag_ifft    (o_imag_papr)
                );
 
reg  o_start_papr;
reg  o_ends_papr;
reg  o_enable_papr;
 
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
     begin
     o_start_papr   <= 1'd0;
     o_ends_papr    <= 1'd0;
     o_enable_papr  <= 1'd0;
     end
else begin
     o_start_papr   <= o_start_ifft;
     o_ends_papr    <= o_ends_ifft;
     o_enable_papr  <= o_enable_ifft;
     end
end  
endmodule

```

标签:real,ifft,FPGA,OFDM,imag,测试,papr,PAPR
From: https://blog.51cto.com/matworld/7924643

相关文章

  • m基于FPGA的OFDM系统中降PAPR技术的实现,包含testbench测试文件和MATLAB辅助测试
    1.算法仿真效果本系统进行了Vivado2019.2平台的开发: 将FPGA的仿真结果导入matlab中,并通过matlab2022a进行papr对比: 2.算法涉及理论知识概要        峰值平均功率比(PAPR—PeaktoAveragePowerRatio),简称峰均比(PAPR)。MIMO-OFDM系统能够提供更大的覆盖范围、......
  • 软件测试和调试(42 - 43题,共2分,论文)
    软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、SRS、软件设计说明和软件产品说明等规定的软件质量要求。通过测试,发现软件缺陷,为软件产品的质量测量和评价提供依据。软件测试分类:①按照开发阶段:单元测试/模块测试(对应详细设计阶段)、集成......
  • 2023年全网最全最细最流行的自动化测试工具有哪些?
    一:前言随着测试工程师技能和工资待遇的提升,甚至有一部分的开发人员开始转入测试岗位,跨入自动化领域的测试攻城狮越来越多。在自动化测试领域,自动化工具肯定占据了核心的位置。本文总结了常用的测试自动化工具和框架,这些工具和框架有助于更好地定位自己,以跟上软件测试的发展趋势......
  • 渗透测试基础
    前言:在tryhackme上学习渗透测试基础,故记录一下1网络安全框架概念:网络安全框架是一套结构化的方法、工具和技术,用于保护计算机网络和系统免受各种网络威胁和攻击。它的主要目标是提供一种综合性的解决方案,以确保网络的机密性、完整性和可用性。网络安全框架通常涵盖以下方面:......
  • RunnerGo 支持UI自动化的测试平台
    RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。RunnerGoUI自动化基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队无需复杂的代码编写即可开展低代码的自动化测试。以一条简单的搜索场景为例,本文介绍Runn......
  • 测试用例的优化与整理:确保软件质量的关键步骤
    测试用例的优化和整理对于确保软件质量至关重要。通过消除冗余、精简分类、优先级排序以及考虑边界条件等策略,可以提高测试效率、覆盖更全面的功能和场景,并减少漏测的风险。本文将探讨如何优化和整理测试用例,以提升测试质量和效率。1.消除冗余:在测试用例的审查过程中,我们应当特......
  • RunnerGo 支持UI自动化的测试平台
    RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。RunnerGoUI自动化基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队无需复杂的代码编写即可开展低代码的自动化测试。 以一条简单的搜索场景为例,本文......
  • 2023.10.17 测试总结
    预计得分:145实际得分:148T1考场上没有想出来,打了一个高精度暴力。问题大概在:1.对哈希算法不熟悉。2.数学上对对数的计算不熟悉。耗时:1hT2暴力。没有挂分,正解属于是难以想到的。耗时:1hT3极为接近正解,但是挂分过多。问题有:1.没有检查出来数组开小了。2.......
  • Eolink Apikit 如何进行自动化测试?
    自动化测试是一种软件测试方法,利用自动化工具和脚本来执行测试用例,以验证软件应用程序的功能、性能、稳定性等特性。自动化测试的主要目的是提高测试效率、减少测试成本,并确保软件的质量和可靠性。作为测试人员,在进行比较大的项目时,使用自动化测试能帮助我们事半功倍地完成测试工......
  • 【自动化测试】 搭建 robot + selenium + appium 自动化测试环境
    安装Python1、安装Python2.7.13https://www.python.org/downloads/安装完后,需要设置环境变量:计算机—属性—高级系统设置—环境变量—系统变量—Path,写入D:\Python27;D:\Python27\Scripts(更改为您指定路径即可)。2、安装Python的SetupToolshttp://pypi.python.org/packages/2......