%clipping technique
%papr of the ofdm signals
clear all;
close all;
c1=64; %载波数
n1=20000; %符号数
Fs=100; %采样率
M=4;
MM=1:0.1:12; %CCDF的门限值
ccdf1=zeros(1,111); %为什么设置111??????????????????????????
ccdf2=zeros(1,111);
for i=1:n1;
x(:,1)=randsrc(c1,1,[+1 -1 +3 -3]);%产生c1行1列的随机矩阵,可能值为+1,-1,+3,-3 ????为什么是+1,-1,+3,-3
x(:,2)=randsrc(c1,1,[+1 -1 +3 -3]); %产生c1行2列随机矩阵 %%%为什么设置两列
y1=squeeze(x);%产生c1行2列随机矩阵
a=amodce(y1,M,'qam'); %qam 调制
y2=a.';%a转置 串并转换 2行c1列矩阵
z1=[y2(1:c1/2),zeros(1,3*c1),y2(c1/2+1:c1)]; %4倍过采样 ???啥意思????????????
w1=ifft(z1);
w1=w1*c1; %
x2=(abs(w1)).^2;
m1=mean(x2); %每一列的平均值
v1=max(x2);
papr=10*log10(v1/m1);%峰均比
y3=abs(w1);
CR=1.4*0.8;%限幅率 ???为什么??????????????????
A=CR*sqrt(2)*std(w1)*1.6; % 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;
end
end %限幅
x3=(abs(w2)).^2;
m2=mean(x3);
v2=max(x3);
papr0=10*log10(v2/m2);
for j=1:110; %为什么设置110??????????????????????
if papr>MM(j);
ccdf1(j)=ccdf1(j)+1;%计算超过门限值的次数
end
if papr0>MM(j);
ccdf2(j)=ccdf2(j)+1;%限幅后超过门限值的次数
end
end
end
[c,d]=butter(6,0.5); %滤波器设置?????????????
w3=filter(c,d,w2);
MM=1:.1:12;
ccdf0=ccdf1./n1; %为什么要除以?????????????? 好像是量化的意思,只是图不太的位置不太一样
ccdf3=ccdf2./n1;
semilogy(MM,ccdf0,MM,ccdf3);
title('clipping的CCDF曲线比较')
xlabel('papr(dB)'),ylabel('ccdf')
legend('clipping前','clipping后',2)
本人新手,找了个程序研究,但是很多地方不懂,麻烦高人指教,谢谢