⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slmsubcarriers.m

📁 采用不同子载波数时
💻 M
字号:
clear; close  all;
K=8;                       % 用户数
M=[8 16 32 64];            % 每个用户bit数
L=8;                       % 扩频增益
KK=1e3;
PAPR_SLM=zeros(4,KK);
for kk=1:1:KK
    for m=1:1:4
userdata=round(rand(K,M(m))); % 生成数据
lp=find(userdata<1);
userdata(lp)=-1;
% 生成walsh码
walsh=hadamard(L); 
% 扩频
afterspreading=zeros(K,M(m)*L);
for k=1:1:K
    afterspreading(k,:)=kron(userdata(k,:),walsh(k,:));
end
% 复合
mux=zeros(1,M(m)*L);
mux=sum(afterspreading);
% SLM
N=M(m)*L;
U=16;
Phase_sequence=round(rand(U,N));
symbol=zeros(U,N);
for u=1:1:U
    symbol(u,:)=Phase_sequence(u,:).*mux;
end
SLM_signal=zeros(U,N);
clear u;
for u=1:1:U
    SLM_signal(u,:)=ifft(symbol(u,:),N);
end


SLM_power=(abs(SLM_signal)).^2;
SLM_peak=max(SLM_power');
SLM_average=mean(SLM_power');
PAPR=10*log10(SLM_peak./SLM_average);
PAPR_SLM(m,kk)=min(PAPR);
end

end
% CCDF

[cdf1,PAPR1]=ecdf(PAPR_SLM(1,:));
[cdf2,PAPR2]=ecdf(PAPR_SLM(2,:));
[cdf3,PAPR3]=ecdf(PAPR_SLM(3,:));
[cdf4,PAPR4]=ecdf(PAPR_SLM(4,:));
semilogy(PAPR1,1-cdf1,PAPR2,1-cdf2,PAPR3,1-cdf3,PAPR4,1-cdf4);
gtext('N=64');
gtext('N=128');
gtext('N=256');
gtext('N=512');

xlabel('PAPR0[dB]');
ylabel('CCDF(pr[PAPR>PAPR0])');
grid on


;

⌨️ 快捷键说明

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