1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZpuZlZlw
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
基于索引调制的OFDM(OFDM-IM,OFDM with Index Modulation)技术被提出,在频率选择性衰落信道上提升了系统的分集增益,特别是在较低频谱效率场景下能够有效降低系统的误比特率。在OFDM-IM方法中,特殊的索引信息传输方式以及索引结构的设计对分集增益的提高,引发了广泛的关注。如何通过索引结构的设计,取得比OFDM更低的误比特率以及更高的频谱效率成为了索引调制OFDM研究方向上的热点。
4.部分源码
.......................................................................
%子载波数量
Nsub = 2048;
%子块
G = 16; %2个子载波作为一个块
Phase_Set = [1 -1];
Nlength = 50000;%数据长度
PAPR_SLM = zeros(3,Nlength);
BPSK = 1;%BPSK调制
X = zeros(1,Nsub);
for ij=1:Nlength%开始循环仿真
ij
%产生数据bit信息
bitsource = rand(1,Nsub)>=0.5;
%产生索引比特
index = rand(1,Nsub)>=0.5;
%调制,在调制过程中加入单个索引的调制方式
X0 = modulation(bitsource,BPSK);
X = reshape(X0,[G,Nsub/G]);
Xindex = reshape(index,[G,Nsub/G]);
X2 = zeros(G,2*Nsub/G);
for i=1:G
%选择前面4个作为索引比特
IMtable = Xindex(i,:);
S = X(i,:);
for j = 1:length(S)
if IMtable(j) == 1
X2(i,2*j-1) = S(j);
X2(i,2*j) = 0;
else
X2(i,2*j-1) = 0;
X2(i,2*j) = S(j);
end
end
end
X3 = reshape(X2',[1,2*Nsub]);
%IFFT
x = ifft(X3,[],2);
%计算PAPR
Signal_Power = abs(x.^2);
%PTS
K = 128; % SIZE OF FFT
V = 4;
Choose_Len=16;
A = zeros(V,K);
Choose = [1 1 1 1; 1 1 1 2; 1 1 2 1; 1 2 1 1; 2 1 1 1;
1 1 2 2; 1 2 1 2; 1 2 2 1; 2 2 1 1; 2 1 2 1; 2 1 1 2;
2 2 2 1; 2 2 1 2; 2 1 2 2; 1 2 2 2; 2 2 2 2];
for v=1:V
A(v,v:V:K) = X(v:V:K);
end
a = ifft(A,[],2); %行变化,默认为列变化
min_value = 10;
for n=1:Choose_Len
temp_phase = Phase_Set(Choose(n,:)).';
temp_max = max(abs(sum(a.*repmat(temp_phase,1,K))));
if temp_max<min_value
min_value = temp_max;
Best_n = n;
end
end
aa = sum(a.*repmat(Phase_Set(Choose(Best_n,:)).',1,K));
Signal_Power = abs(aa.^2);
Peak_Power = max(Signal_Power,[],2);
Mean_Power = mean(Signal_Power,2);
PAPR_Orignal(ij) = 10*log10(Peak_Power./Mean_Power);
end
[cdf1, PAPR1] = ecdf(PAPR_Orignal);
%显示PAPR
figure;
semilogy(PAPR1,1-cdf1)
xlabel('PAPR0 [dB]');
ylabel('CCDF (Pr[PAPR>PAPR0])');
grid on
save R1imPTS.mat PAPR1 cdf1
0sj_016m
---