资源简介
预留子载波法(TR)降低PAPR的matlab算法
代码片段和文件信息
clear;
clc;
carr=1024; %子载波个数
sym_c=10; %每个子载波含有的OFDM符号数
bit_sym=2; %每个符号含有的比特数,QPSK调制
IFFT_n=256; %IFFT点数
r=1/10; %保护间隔和OFDM数据的比例;
%产生信号
sum=carr*sym_c*bit_sym;
colume=sum/(2*carr);
signal=rand(1sum)>0.5; %初始信号
%QPSK调制QPSK_sig里面存放的是调制后的信号,数目sumQ
sumQ=sum/2;%OFDM符号总数
imag=sqrt(-1); % 虚部 j
QPSK=[-1+imag-1-imag1+imag1-imag]; %创建QPSK 映射表
SIGNAL=zeros(1sumQ); %计算并存放调制前的十进制数据(将二进制转为十进制数据,第20行)
QPSK_sig=zeros(1sumQ); %存放调制后的QPSK信号
for n=1:sumQ
SIGNAL(n)=signal(2*n-1)*2+signal(2*n); %将二进制换算成十进制
end
for i=1:sumQ
if SIGNAL(i)==0;
QPSK_sig(i)=QPSK(1);
elseif SIGNAL(i)==1;
QPSK_sig(i)=QPSK(2);
elseif SIGNAL(i)==2;
QPSK_sig(i)=QPSK(3);
elseif SIGNAL(i)==3;
QPSK_sig(i)=QPSK(4);
end
end
%串/并转换 计算第i个载波上面的信号to_par(i,:)
colume=sumQ/carr;%每个子载波的符号数
for i=1:carr % carr载波个数
for j=1:colume;
to_par(ij)=QPSK_sig(carr*(j-1)+i);
end
end
colume=sumQ/carr;
% % to_par=reshape(QPSK_sigcarrcolume);
%每个子载波上进行 IFFT变换 (调制后的QPSK信号进行IFFT)
for j=1:colume
y(:j)=ifft(to_par(:j)); %每一列进行一次IFFT
end
% % y=ifft(to_par);
yr=real(y); %实部
yi=(y-yr)*sqrt(-1)*(-1);%虚部
y_=yr+yi*sqrt(-1);
y_series=reshape(y_1(colume)*carr);
y1=y_(:1);
y2=abs(y1);%采样点幅值
y2_power=y2.^2;%采样点功率
y2_power_mean=mean(y2_power);
sigma=sqrt(y2_power_mean);
y_PAPR=10*log10(y2_power./sigma^2);
PAPR_max=max(y_PAPR);
PAPR_mean=mean(y_PAPR);
%*******************************************进行TR消峰处理***********************
L=32;%预留子载波数目
u=0.3;%设置步进参数
for i=1:carr; %生成IFFT变化矩阵
for j=1:carr;
Q(ij)=exp(sqrt(-1)*2*pi*(i-1)*(j-1)/carr)/sqrt(carr);
end
end
Ql=Q(:carr-L+1:carr); %矩阵Q尖
x(:1)=y1;%步骤一:算法初始化
Imax=16; %迭代次数
i=0;
A=y2_power_mean;%门限值
U=zeros(carr1);
flag=1;
while((i flag=0;
for n=1:carr
if abs(x(n))>A
q_nrow=Ql(n:);
U=U+(x(n)-A*exp(sqrt(-1)*phase(x(n))))*Ql*q_nrow‘;
flag=1;
else
U=U+zeros(carr1);
end
end
x=x-u*U;
i=i+1;
end
x_power=abs(x).^2;
x_power_mean=mean(x_power);
x_sigma=sqrt(x_power_mean);
x_PAPR=10*log10(x_power./x_sigma^2);
subplot(211);
plot(y2_power‘b-‘);
xlim([01024]);
ylim([00.02]);
grid on;
subplot(212);
plot(x_power‘r-‘);
xlim([01024]);
ylim([00.02]);
grid on;
figure;
%************************************统计CCDF特性*************************************
PAPR0=2:0.5:9;
for k=1:length(PAPR0)
count(k)=0;
x_count(k)=0;
end
for l=1:carr;
for k=1:length(PAPR0)
if y_PAPR(l)>PAPR0(k)
count(k)=count(k)+1;
end
if x_PAPR(l)>PAPR0(k)
x_count(k)=x_count(k)+1;
end
end
end
CCDF=count/carr;
x_CCDF=x_count/carr;
subplot;
semilogy(PAPR0CCDF‘.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3401 2012-12-11 16:45 ofdm_tr.m
----------- --------- ---------- ----- ----
3401 1
- 上一篇:多帧融合差分法
- 下一篇:matlab 干涉SAR数据的基本处理
相关资源
- 多目标跟踪 论文+代码
- 3点GPS定位MATLAB仿真
- matlab2007B数模乘公交看奥运_搜索法+
- dijkstra算法改进的matlab程序能求出两点
- 基于自适应压扩法降低OFDM系统的峰均
- Dijkstra最短路径算法的Matlab实现
- 找出两点间所有最短路径
- Model Predictive Control
- Optometrika 透镜成像模拟
- Spacecraft Control Toolbox.zip
- Model Predictive Control System Design using M
- introduction to audio analysis: a matlab appro
- Intelligent Control Design and MATLAB Simulati
- Photometric stereo Matlab code
- Model Predictive Control System Design and Imp
- Nonlinear control systems using MATLAB(2019)
- XXXXXXRobustControlDesignwithMATLAB.pdf
- intlab_v6.0工具箱+其使用说明Introducti
- The Finite Element Method for Thermal and Stre
- matlab 极几何工具箱
- 薛定宇教授 ctrllab工具箱3.0
- Introduction to MATLAB
- petri net matlab simulation
- Error Control Coding
- mrAnatExtractBrain去脑壳程序
- Robotics Modelling Planning and Control
- MATLAB 三维点云重构Surface recostruction
- 密码学概论 原书名:Introduction to CR
- Deblurring Images Matrices Spectra and Filteri
- zw_construct04-691593-_matlab_box.zip
评论
共有 条评论