Effacer les filtres
Effacer les filtres

CCDF plot of PAPR problem

12 vues (au cours des 30 derniers jours)
Osman
Osman le 25 Juil 2013
Hi guys,
here is my code for PAPR reduction using cross antenna rotation and inversion I think that everything is ok, but the after running it the CCDF is not plotted and no error messages I'm getting!!!! any help will be appreciated. thank you
clc; clear all for q=1:100000 nbits = 128; nsamples = 1; x = random_binary(nbits,nsamples)+ i*random_binary(nbits,nsamples); y=x'; for tq = 1:2:length(y) y1(tq)=y(tq); y1(tq+1)=-conj(y(tq+1)); y2(tq)=y(tq+1); y2(tq+1)=conj(y(tq)); end k=128; M=4; t=k/M; for N=1:M i=1; j=1; papr1(i) = OFDM_PAPR(y1); papr2(i) = OFDM_PAPR(y2); papr3(q)=(papr1(1)+papr2(1))/2; i=i+1; s1=y1;s2=y2; wa=s1((N-1)*t+1:N*t); s1((N-1)*t+1:N*t)=s2((N-1)*t+1:N*t); s2((N-1)*t+1:N*t)=wa; papr1(i)= OFDM_PAPR(s1); papr2(i) = OFDM_PAPR(s2); i=i+1; j=j+1; s1=y1;s2=y2; s1((N-1)*t+1:N*t)=-s1((N-1)*t+1:N*t); s2((N-1)*t+1:N*t)=-s2((N-1)*t+1:N*t); papr1(i) = OFDM_PAPR(s1); papr2(i) = OFDM_PAPR(s2); i=i+1; s1=y1;s2=y2; wa=s1((N-1)*t+1:N*t); s1((N-1)*t+1:N*t)=-s2((N-1)*t+1:N*t); s2((N-1)*t+1:N*t)=-wa; papr1(i)= OFDM_CCDF(s1); papr2(i) = OFDM_CCDF(s2); avae=max(papr1,papr2); [xcc,dl]=min(avae); PAPR(N,:)=[papr1(dl) papr2(dl)]; end avaer=(PAPR(:,1)+PAPR(:,2))/2; avaer=avaer'; [xc,dll]=min(avaer); PAPRo(q,:)=[PAPR(dll,1) PAPR(dll,2)]; PAPRoo(q)=(PAPR(dll,1)+PAPR(dll,2))/2; end %%%%%%%%%%% CCDF For CARI Signal%%%%%%%%%%%% th1=[]; pp12=[]; for papr0=3:0.5:14 nu=0; for j=1:length(PAPRoo) if PAPRoo(j)>=papr0 nu=nu+1; end end nu=nu; th3=nu/length(PAPRoo); th1=[th1 th3]; dB=10*log10(papr0); pp12=[pp12 dB]; end semilogy(pp12 ,th1 ,'o--m','LineWidth',2.5) hold on %%%%%%% CCDF For Original Signal (Simulation)%%%%%% th=[]; for papr0=3:0.5:14 pg=0; for j=1:length(papr3) if papr3(j)>=papr0 pg=pg+1; end end th4=pg/length(papr3); th=[th th4]; end semilogy(pp12 ,th ,'>--g','LineWidth',2.5) hold on %%%%%%%% CCDF For Original Signal (Analysis)%%%%%%%%%% ccdf1=[]; for papr0=3:0.5:14 ccdf2 =1-(1-exp(-papr0))^k; ccdf1=[ccdf1 ccdf2]; end semilogy(pp12 ,ccdf1 ,'s--b','LineWidth',2.5), grid; hold on xlabel('PAPR0(dB)') ylabel('Pr(PAPR>PAPR0)') legend('CCDF SS-CARI','CCDF Simulation','CCDF analysis')
and these are the functions I'm calling in the program.
PAPR calculations:
function [PAPR]= OFDM_PAPR(y) k=128; AA1=y(1:k); L=4; %%%%%%%%%% Oversampling (Zero padding) A1=zeros(k*L,1); A1(1:k) = [AA1(1:k).']; %%%%%%%%%% Zero padding %%%%%%%%% Signal OFDM %%%%%%%%%% a1=L*sqrt(k).*ifft(A1,k*L); y=a1-mean(real(a1)); h=y'; xd = real(h); xq = imag(h); w=sqrt(xd.^2+xq.^2); aqq=w.^2; ava = sum(aqq)/length(aqq); PAPR= max(aqq)/ava; end
CCDF calculations:
function [PAPR_dB] = OFDM_CCDF(x) % PAPR dB PAPR[dB], AvgP dB Average power[dB] % PeakP dB Maximum power[dB] Nx= length(x); xI= real(x); xQ= imag(x); Power= xI.*xI + xQ.*xQ; AvgP= sum(Power)/Nx; AvgP_dB= 10*log10(AvgP); PeakP= max(Power); PeakP_dB= 10*log10(PeakP); PAPR_dB= 10*log10(PeakP/AvgP);

Réponses (3)

mallavarapu hema saikumar
mallavarapu hema saikumar le 15 Mar 2018
Modifié(e) : mallavarapu hema saikumar le 15 Mar 2018
semilogy(time,output) use this to pot the output because the x axis is in dB so we use semilogy to plot it

Kirankumar Humse
Kirankumar Humse le 7 Mar 2024
Kindly suggest the novel way of reducing papr

Kirankumar Humse
Kirankumar Humse le 7 Mar 2024
Kindly suggest the novel way of reducing papr in ofdm

Catégories

En savoir plus sur Propagation and Channel Models dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by