OFDM——PAPR减小(三)

简介: OFDM——PAPR减小(三)

OFDM——PAPR减小(二)https://developer.aliyun.com/article/1473989

PDF_of_clipped_and_filtered_OFDM_signal.m

% PDF_of_clipped_and_filtered_OFDM_signal.m
% Plot Figs. 7.14 and 7.15
%MIMO-OFDM Wireless Communications with MATLAB㈢   Yong Soo Cho, Jaekwon Kim, Won Young Yang and Chung G. Kang
%2010 John Wiley & Sons (Asia) Pte Ltd
clear
CR = 1.2;       % 限幅比
b=2;            % 每一QPSK符号的比特数
N=128;          % FFT大小 
Ncp=32;         % CP大小 
fs=1e6;         % 采样频率 
L=8;            % 过采样因子 
Tsym=1/(fs/N);  % 符号周期。它是指每个OFDM符号的持续时间。    Tsym = 1.28e-4
Ts=1/(fs*L);    % 采样周期                                    Ts = 1.25e-7
fc=2e6; wc=2*pi*fc;         % 载波频率                        wc = 1.2566e+7
t=[0:Ts:2*Tsym-Ts]/Tsym;    % 时间向量                        t = [0:9.7656e-4:1.999]_{2048}
t0=t((N/2-Ncp)*L);                                          % t0 = t((64-32)*8) = 0.249
f=[0:fs/(N*2):L*fs-fs/(N*2)]-L*fs/2;    % -L*fs/2 ~ L*fs/2 的频率向量  [-4e+6, 3.9961e+6]_{2048}
Fs=8;           % 滤波器的采样频率   8 MHz
Norder=104;     % 滤波器的阶数
dens=20;        % 滤波器的密度因子    大于16即可
FF=[0 1.4 1.5 2.5 2.6 Fs/2]; % 阻带/通带/阻带频率边缘向量  [0 Fstop1 Fpass1 Fpass2 Fstop2 Fs/2]
WW=[10 1 10];                % 阻带/通带/阻带加权向量   阻带中的纹波比通带中的纹波小10倍
h = firpm(Norder,FF/(Fs/2),[0 0 1 1 0 0],WW,{dens}); % BPF 系数
X = mapper(b,N);  X(1) = 0; % QPSK 调制 
x=IFFT_oversampling(X,N,L); % IFFT 和过采样       x = 8*[x(1:64), (0...0)_{1024-128}, x(65:128)]_{1024}
x_b=add_CP(x,Ncp*L); % 加 CP   x_b = [(CP)_{256}, x]_{1280}
x_b_os=[zeros(1,(N/2-Ncp)*L), x_b, zeros(1,N*L/2)]; % 多采样   x_b_os = [(0)_{256}, (x_b)_{1280}, (0)_{512}]_{2048}
x_p = sqrt(2)*real(x_b_os.*exp(j*2*wc*t)); % 从基带到通频带
x_p_c = clipping(x_p,CR); % Eq.(7.18) 限幅公式
X_p_c_f= fft(filter(h,1,x_p_c)); % norm(X_p_c_f-X_p_c_f1)
x_p_c_f = ifft(X_p_c_f);
x_b_c_f = sqrt(2)*x_p_c_f.*exp(-j*2*wc*t); % 从通频带到基带
figure(1); clf % Fig. 7.15(a), (b)
nn=(N/2-Ncp)*L+[1:N*L]; nn1=N/2*L+[-Ncp*L+1:0]; nn2=N/2*L+[0:N*L];  % nn =[257:1280]_{1024}   nn1 = [257:512]_{256}  nn2=[512:1536]_{1025}
subplot(221)
plot(t(nn1)-t0, abs(x_b_os(nn1)),'k:'); hold on;    % 循环前缀 
plot(t(nn2)-t0, abs(x_b_os(nn2)),'k-');             % 基带信号 + 512个0
axis([t([nn1(1) nn2(end)])-t0  0  max(abs(x_b_os))]);
title(['Baseband signal, with CP']);
xlabel('t (normalized by symbol duration)'); ylabel('abs(x''[m])');
subplot(223)
XdB_p_os = 20*log10(abs(fft(x_b_os)));
plot(f,fftshift(XdB_p_os)-max(XdB_p_os),'k');
xlabel('frequency[Hz]'); ylabel('PSD[dB]'); axis([f([1 end]) -100 0]);
subplot(222)
[pdf_x_p,bin]=hist(x_p(nn),50); bar(bin,pdf_x_p/sum(pdf_x_p),'k');
xlabel('x'); ylabel('pdf'); title(['Unclipped passband signal']);
subplot(224)
XdB_p = 20*log10(abs(fft(x_p)));
plot(f,fftshift(XdB_p)-max(XdB_p),'k');
xlabel('frequency[Hz]'); ylabel('PSD[dB]'); axis([f([1 end]) -100 0]);
figure(2); clf % Fig. 7.15(c), (d)
subplot(221)
[pdf_x_p_c,bin] = hist(x_p_c(nn),50);   % 限幅后的通频带信号
bar(bin,pdf_x_p_c/sum(pdf_x_p_c),'k');
title(['Clipped passband signal, CR=' num2str(CR)]);
xlabel('x'); ylabel('pdf');
subplot(223)
XdB_p_c = 20*log10(abs(fft(x_p_c)));    % 限幅后的通频带信号功率
plot(f,fftshift(XdB_p_c)-max(XdB_p_c),'k');
xlabel('frequency[Hz]'); ylabel('PSD[dB]'); axis([f([1 end]) -100 0]);
subplot(222)
[pdf_x_p_c_f,bin] = hist(x_p_c_f(nn),50); 
bar(bin,pdf_x_p_c_f/sum(pdf_x_p_c_f),'k');
title(['Passband signal after clipping and filtering, CR=' num2str(CR)]);
xlabel('x'); ylabel('pdf');
subplot(224)
XdB_p_c_f = 20*log10(abs(X_p_c_f));
plot(f,fftshift(XdB_p_c_f)-max(XdB_p_c_f),'k');  % 限幅后的基带信号功率
xlabel('frequency[Hz]'); ylabel('PSD[dB]');
axis([f([1 end]) -100 0]);
figure(3); clf % Fig. 7.14
subplot(221)
stem(h,'k'); xlabel('tap'); ylabel('Filter coefficient h[n]');  % 滤波器抽头和系数
axis([1, length(h), min(h), max(h)]);
subplot(222)
HdB = 20*log10(abs(fft(h,length(X_p_c_f))));    % 通频带限幅滤波后经过 FFT 的信号再经过 FFT 后的功率
plot(f,fftshift(HdB),'k');
xlabel('frequency[Hz]'); ylabel('Filter freq response H[dB]');
axis([f([1 end]) -100 0]);
subplot(223)
[pdf_x_p_c_f,bin] = hist(abs(x_b_c_f(nn)),50);  % 限幅滤波后基带信号
bar(bin,pdf_x_p_c_f/sum(pdf_x_p_c_f),'k');
title(['Baseband signal after clipping and filtering, CR=' num2str(CR)]);
xlabel('|x|'); ylabel('pdf');
subplot(224)
XdB_b_c_f = 20*log10(abs(fft(x_b_c_f)));        % 限幅滤波后基带信号功率
plot(f,fftshift(XdB_b_c_f)-max(XdB_b_c_f),'k');
xlabel('frequency[Hz]'); ylabel('PSD[dB]'); axis([f([1 end]) -100 0]);

②、仿真结果

1)基带信号及通频带信号功率谱、PDF、功率

2)限幅信号、滤波信号的 PDF 和功率谱

可以看到限幅后的信号幅度低于限幅电平,也可以看到限幅后的带外频谱增大了,但滤波后的带外频谱减小了

3)等波纹通频带 FIR 滤波器的特点

6、采用限幅和滤波后的 PAPR 分布和 BER 性能

因为 CF 是 PAPR 的平方根,所以 CF 的 CCDF 可以看做 PAPR 的分布,从(a)图中可以看出,OFDM 信号的 PAPR 在限幅后显著降低,而在滤波后有所上升。CR 越小,PAPR 降低得越多。(b)图显示了使用限幅和滤波技术的 BER 性能,图中 “C” 表示只有限幅的情况,“C&F” 表示限幅和滤波都有的情况,从(b)可以看出,当 CR 减小时,BER 性能变差。

7、部分传输序列(PTS)

参考我之前的博客:减小PAPR——PTS技术

8、DFT 扩频

参考我之前的博客:减小PAPR——DFT扩频

9、采用脉冲成型的 DFT 扩频的 PAPR 分析

从上面仿真图可以看出,当滚降系数 a 从 0 变到 1 时 IFDMA 的 PAPR 性能显著提升,而 LFDMA 受脉冲成形的影响没有那么大。由于滚降系数增大时剩余带宽增加,IFDMA 可以在剩余带宽和 PAPR 性能之间进行折中

从上面仿真图可以看出,滚降系数 a=0.4 的 LFDMA 中的 DFT 扩频技术的 PAPR 性能随着 M 的增大而降低。

源码下载地址:采用脉冲成型的 DFT 扩频的 PAPR 分析

三、资源自取

OFDM PAPR减小思维导图

目录
相关文章
|
2天前
OFDM——PAPR减小(一)
OFDM——PAPR减小(一)
63 0
|
2天前
|
机器学习/深度学习
OFDM——PAPR减小(二)
OFDM——PAPR减小(二)
30 0
|
2天前
减小PAPR——DFT扩频
减小PAPR——DFT扩频
29 1
|
9月前
|
机器学习/深度学习 传感器 算法
【虚警检测】基于CA-CFAR(单元平均恒虚警)、GO-CFAR(最大选择恒虚警)、SO-CFAR(最小选择恒虚警)算法的恒虚警检测附Matlab代码
【虚警检测】基于CA-CFAR(单元平均恒虚警)、GO-CFAR(最大选择恒虚警)、SO-CFAR(最小选择恒虚警)算法的恒虚警检测附Matlab代码
|
2天前
|
机器学习/深度学习 算法
减小PAPR——PTS技术
减小PAPR——PTS技术
37 0
|
8月前
|
算法 异构计算
m基于uw导频序列和cordic算法的基带数据帧频偏估计和补偿FPGA实现,包含testbench
m基于uw导频序列和cordic算法的基带数据帧频偏估计和补偿FPGA实现,包含testbench
76 2
|
10月前
|
算法 异构计算
m基于FPGA的带相位偏差QPSK调制信号相位估计和补偿算法verilog实现,包含testbench
m基于FPGA的带相位偏差QPSK调制信号相位估计和补偿算法verilog实现,包含testbench
307 0
|
8月前
|
算法 异构计算
m基于PN导频序列和cordic算法的基带数据帧频偏估计和补偿FPGA实现,包含testbench
m基于PN导频序列和cordic算法的基带数据帧频偏估计和补偿FPGA实现,包含testbench
70 0
|
9月前
|
索引
NR PRACH(三)时域位置
由l0、N_RA_slot、N_RA_t和N_RA_dur,UE可以计算出所有RACH时机的起始符号l,公式为l = l0 + n_RA_t x N_RA_dur + 14 x n_RA_slot。其中的参数由table 6.3.3.2-2~4 得到,计算即可确定start symbol的位置,既然都这么说了,表中的starting symbol l0 肯定不是起始符号的索引,我最初犯的就是这个错误。
|
9月前
|
机器学习/深度学习 传感器 算法
基于SVD BD ZF MF SLNR 多种算法模拟MIMO系统误码率和合速率随N的关系附matlab代码
基于SVD BD ZF MF SLNR 多种算法模拟MIMO系统误码率和合速率随N的关系附matlab代码