clipping_ccdf.m

来自「降低OFDM中PAPR的方法clipping的MATLAB源码」· M 代码 · 共 58 行

M
58
字号
%clipping technique
%papr of the ofdm signals
clear all;
close all;
 c1=128;
 n1=200; 
 Fs=100;
 MM=1:.1:10;    %CCDF的门限值
 ccdf1=zeros(1,91);
 ccdf2=zeros(1,91);
 for i=1:n1;
 x(:,1)=randsrc(c1,1,[+1 -1 +3 -3]);
 x(:,2)=randsrc(c1,1,[+1 -1 +3 -3]);
y1=squeeze(x);
a=amodce(y1,Fs,'qam');    %qam modulated information
y2=a.';
z1=[y2(1:c1/2),zeros(1,3*c1),y2(c1/2+1:c1)]; %4 oversample
w1=ifft(z1);            
w1=w1*c1;
x2=(abs(w1)).^2;
m1=mean(x2);
v1=max(x2);
papr(i)=10*log10(v1/m1);
y3=abs(w1);
CR=1.4;
A=CR*sqrt(2)*std(w1);       % CR=Amax/sqrt(Pin);  Pin:the input power of the ofdm signal before clipping 
w2=w1;
for h=1:4*c1;
    if y3(h)>A
        w2(h)=A*w1(h)/y3(h);
    end
end 
x3=(abs(w2)).^2;
m2=mean(x3);
v2=max(x3);
papr0(i)=10*log10(v2/m2);
for j=1:91;
    if papr(i)>MM(j);
        ccdf1(j)=ccdf1(j)+1;
    end
    if papr0(i)>MM(j);
        ccdf2(j)=ccdf2(j)+1;
    end
end
end
[c,d]=butter(6,0.5);
w3=filter(c,d,w2);


MM=1:.1:10;
 ccdf0=ccdf1./n1;
 ccdf3=ccdf2./n1;
 semilogy(MM,ccdf0,'r-',MM,ccdf3,'b-');
 title('clipping的CCDF曲线比较')
xlabel('papr(dB)'),ylabel('ccdf')
legend('clipping前','clipping后',2)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?