1.算法仿真效果
本系统进行了Vivado2019.2平台的开发:
将FPGA的仿真结果导入matlab中,并通过matlab2022a进行papr对比:
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核心程序
`timescale 1ns / 1ps 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://www.cnblogs.com/51matlab/p/17773628.html