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

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

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

11267440ace37784ebec99daa00ad3ec_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

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

486dd8b9df2a71487b1e405205c29aac_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

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
```

相关文章
|
9天前
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
28 7
|
1月前
|
设计模式 安全 测试技术
【软件设计师备考 专题 】系统实施:程序设计和系统测试
【软件设计师备考 专题 】系统实施:程序设计和系统测试
65 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。
|
1月前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
29 2
|
10天前
|
消息中间件 网络协议 物联网
如何入门做物联网系统压测?
【4月更文挑战第18天】物联网系统在架构、网络模式、通信协议等方面与传统的互联网系统有所区别。因此,传统的性能测试方法不能直接套用到物联网系统中。
87 13
如何入门做物联网系统压测?
|
5天前
|
算法 计算机视觉 异构计算
基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证
该内容展示了FPGA实现图像累积直方图的算法。使用Vivado2019.2和matlab2022a,通过FPGA的并行处理能力优化图像处理。算法基于像素值累加分布,计算图像中像素值小于等于特定值的像素个数。核心代码为`test_image`模块,读取二进制图像文件并传递给`im_hist`单元,生成直方图和累积直方图。
|
15天前
|
算法 异构计算 Python
m基于FPGA的217卷积编码维特比译码verilog实现,包含testbench不使用IP核
该内容展示了使用Vivado 2019.2进行卷积编码和维特比译码的模拟。提供了编码、译码输出和RTL图的图片,以及Verilog实现的核心代码。卷积编码是一种前向纠错技术,基于生成多项式产生冗余数据;维特比译码利用动态规划恢复原始信息,最小化错误。Verilog程序包含了编码和译码模块,以及输入输出信号的时序操作。
12 0
|
22天前
|
存储 人工智能 机器人
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
|
3月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
3月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)

热门文章

最新文章