% This Programe compare the CCDF curves of OFDM symbol with original PTS technique while
% different W value.(W is the number of phase rotation factors)
%
% Author: dtkong
% Version: 1.0
% Time: 2010.11.23
close all;
clc;
clear all;
%============================= setting common parameter =================================%
NumCarrier = [256 512 1024 2048]; % the number vector of transmission subcarriers
NumSymb = 1e5; % the number of symbols
mapsize = 2; % using QPSK modulation
V = 4; % the number of subblocks
OverSampleRate = 4; % over sample rate
Partition = 1; % the way of parition:1 -> adjacency partition;2 -> interlaced partition
Weight_factor1 = [-1 1]; % the range of weighting factor 1
Weight_factor2 = [-1 1 1j -1j]; % the range of weighting factor 2
Weight_factor3 = [1 1/2+1/2j 1j -1/2+1/2j -1 -1/2-1/2j -1j 1/2-1/2j]; % the range of weighting factor 3
Bdata1 = factor_combination2( V,2,Weight_factor1 ); % all combinations while W = 2
Bdata2 = factor_combination2( V,4,Weight_factor2 ); % all combinations while W = 4
Bdata3 = factor_combination2( V,8,Weight_factor3 ); % all combinations while W = 8
%========================================================================================%
for kk = 1:1:length(NumCarrier)
%========================== initialization data of system ===============================%
NumCarr = NumCarrier(kk); % the number of transmission subcarriers
MapSymb = get80216map( 2^mapsize ); % initial mapping method
Initial_Pattern = ones( NumCarr,1 ); % initial all of position as 1
Initial_Pattern([1:28,end-26:end]) = 0; % initial guard band as 0
Initial_Pattern(45:24:213) = 4; % initial pilot position as 4
Position_pilot = find(Initial_Pattern==4); % the position of pilot
Position_data = find(Initial_Pattern==1); % the position of transimitted data
Length_pilot = length(Position_pilot); % the length of pilot
Length_data = length(Position_data); % the length of transimitted data
PAPRNoPTS = zeros(1,NumSymb); % use to note the papr without PTS
PAPROnPTS_W2 = zeros(1,NumSymb); % use to note the papr with PTS while W=2
PAPROnPTS_W4 = zeros(1,NumSymb); % use to note the papr with PTS while W=4
PAPROnPTS_W8 = zeros(1,NumSymb); % use to note the papr with PTS while W=8
PAPR0 = 0:0.25:12; % the vaule range of PAPR0
CntNoPTS = zeros(1,length(PAPR0)); % use to note the value of CCDF without PTS
CntOnPTS_W2 = zeros(1,length(PAPR0)); % use to note the value of CCDF with PTS W=2
CntOnPTS_W4 = zeros(1,length(PAPR0)); % use to note the value of CCDF with PTS W=4
CntOnPTS_W8 = zeros(1,length(PAPR0)); % use to note the value of CCDF with PTS W=8
%========================================================================================%
%---------------------------------- Computing PAPR -------------------------------------%
for n = 1:1:NumSymb
Datatx = floor(rand(Length_data,1)*(2^mapsize));
DataMap = MapSymb(Datatx+1);
Symbol_tx = Initial_Pattern;
Symbol_tx(Position_pilot) = round(rand(Length_pilot,1));
Symbol_tx(Position_data) = DataMap;
%---------------------------------- PAPR without PTS --------------------------------%
Symbol_ifft = ifft([Symbol_tx(1:NumCarr/2);zeros(NumCarr*(OverSampleRate-1),1);...
Symbol_tx(NumCarr/2+1:end)]);
PowerPerBit = abs(Symbol_ifft).^2;
PowerMean = mean(PowerPerBit);
PowerMax = max(PowerPerBit);
PAPRNoPTS(1,n) = PowerMax/PowerMean;
%------------------------------------------------------------------------------------%
%--------------------------------- Partition OFDM Symbol ----------------------------%
Symbol_block = zeros( NumCarr,V );
Symbol_ifft2 = zeros( NumCarr*OverSampleRate,V );
for v = 1:1:V
if ( Partition == 1 )
Symbol_block(((v-1)*NumCarr/V+1):(v*NumCarr/V),v) = Symbol_tx(((v-1)*NumCarr/V+1):(v*NumCarr/V));
elseif ( Partition == 2 )
Symbol_block(v:V:NumCarr,v) = Symbol_tx(v:V:NumCarr);
end
Symbol_ifft2(:,v) = ifft([Symbol_block(1:NumCarr/2,v);zeros(NumCarr*(OverSampleRate-1),1);...
Symbol_block(NumCarr/2+1:end,v)]);
end
%------------------------------------------------------------------------------------%
%------------------------ PAPR with Original PTS while W = 2 ------------------------%
PAPROnPTS_W2(1,n) = OPTS( Symbol_ifft2,Bdata1 );
%------------------------------------------------------------------------------------%
%------------------------ PAPR with Original PTS while W = 4 ------------------------%
PAPROnPTS_W4(1,n) = OPTS( Symbol_ifft2,Bdata2 );
%------------------------------------------------------------------------------------%
%------------------------ PAPR with Original PTS while W = 8 ------------------------%
PAPROnPTS_W8(1,n) = OPTS( Symbol_ifft2,Bdata3 );
%------------------------------------------------------------------------------------%
[kk n]
end
PAPRNoPTS = 10*log10(PAPRNoPTS);
PAPROnPTS_W2 = 10*log10(PAPROnPTS_W2);
PAPROnPTS_W4 = 10*log10(PAPROnPTS_W4);
PAPROnPTS_W8 = 10*log10(PAPROnPTS_W8);
for k = 1:1:length(PAPR0)
CntNoPTS(k) = sum( PAPRNoPTS > PAPR0(k) );
CntOnPTS_W2(k) = sum( PAPROnPTS_W2 > PAPR0(k) );
CntOnPTS_W4(k) = sum( PAPROnPTS_W4 > PAPR0(k) );
CntOnPTS_W8(k) = sum( PAPROnPTS_W8 > PAPR0(k) );
end
CntNoPTS = CntNoPTS./NumSymb;
CntOnPTS_W2 = CntOnPTS_W2./NumSymb;
CntOnPTS_W4 = CntOnPTS_W4./NumSymb;
CntOnPTS_W8 = CntOnPTS_W8./NumSymb;
figure(kk)
semilogy(PAPR0,CntNoPTS,'-k.');
hold on
semilogy(PAPR0,CntOnPTS_W2,'-k*');
hold on
semilogy(PAPR0,CntOnPTS_W4,'-r^');
hold on
semilogy(PAPR0,CntOnPTS_W8,'-mv');
grid on;
legend('without PTS','with PTS W = 2','with PTS W = 4','with PTS W = 8');
xlabel('PAPR0(dB)'),ylabel('Pr(PAPR>PAPR0)');
title(['Comparision of OPTS while different W value and N = ',num2str(NumCarrier(kk))]);
hold off
end
没有合适的资源?快使用搜索试试~ 我知道了~
OFDM系统下不同子载波数时PAPR的CCDF曲线,ofdm子载波间隔,matlab
共33个文件
m:13个
db:6个
fig:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 7 下载量 88 浏览量
2018-02-08
19:14:36
上传
评论 2
收藏 160KB ZIP 举报
温馨提示
在ofdm系统下,比较不同载波时,对峰值平均功率比的抑制作用。
资源推荐
资源详情
资源评论
收起资源包目录
Chapter3.zip (33个子文件)
Chapter3
Code3_SLM_Simulation
get80216map.m 683B
SLM_Simulation.fig 10KB
Thumbs.db 9KB
SLM_Simulation.bmp 231KB
SLM_Simulation.m 5KB
OPTS
Code4_PTS_Partition
OPTS_Parition.fig 10KB
factor_combination2.m 719B
OPTS_Partition.m 6KB
get80216map.m 683B
OPTS.m 763B
OPTS_Parition.bmp 231KB
OPTS_Partition.asv 6KB
Thumbs.db 8KB
Code5_OPTS_M
OPTS_V_1024.fig 12KB
Thumbs.db 9KB
OPTS_V_1024.bmp 231KB
Code6_SLM_PTS
SLM_PTS.fig 12KB
factor_combination2.m 719B
get80216map.m 683B
OPTS.m 763B
OPTS_W.m 7KB
Thumbs.db 9KB
SLM_Simulation.m 7KB
SLM_Simulation.asv 6KB
SLM_PTS.bmp 231KB
Code1_CCDF
CCDF.m 393B
CCDF.fig 8KB
CCDF.bmp 231KB
Thumbs.db 8KB
Code2_SLM_Theory
SLM_Theory.fig 11KB
SLM_Theory.m 1023B
Thumbs.db 8KB
SLM_Theory.bmp 231KB
共 33 条
- 1
资源评论
- qq_571728472022-11-20非常好的代码,对我来说非常有用处,有借鉴意义
- 海棠蘑菇2023-11-08资源中能够借鉴的内容很多,值得学习的地方也很多,大家一起进步!
- xghsq2023-05-15简直是宝藏资源,实用价值很高,支持!
- weixin_375088942023-08-27资源很赞,希望多一些这类资源。
- 2301_792720662023-10-19资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
lithops7
- 粉丝: 318
- 资源: 4458
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功