1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJyZlJxq
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
随着无线通信技术的不断发展,人们对下一代移动通信系统提出了越来越高的要求。在这样的时代背景下,具有低峰均比,强频偏对抗能力和高能量效率的索引调制OFDM系统(Orthogonal Frequency Division Multiplexing with Index Modulation,OFDM-IM)逐渐引起学者们的关注。正交频分复用(orthogonalfrequencydivisionmultiplexing,ofdm)技术在第四代移动通信系统中扮演着重要的角色。它子载波之间的正交性使各个子信道所经历的衰落相对平坦,再通过引入循环前缀来降低符号间干扰,具有频谱利用率高、抗多径效应好等特点,并且快速傅里叶变换为其提供了一种简单、低成本的实现方式。
4.部分源码
......................................................................
SNR = 0:2:30;% 信噪比范围
nErr = zeros(1,length(SNR));% 初始化误码数数组 nErr
for ij=1:length(SNR)
ij
msgs = randi([0 1],1,(nSym*m)); % 生成随机的消息位
msgs2 = reshape(msgs.',m,nSym).'; % 对消息位进行重塑,以便后续处理
for ij1=1:nSym
% 将消息位分组并映射到调制符号
msgs3 = reshape(msgs2(ij1,:)',L_symbol,Gi).';
% 计算位分配
[G1_sets,Ma_sets,Mb_sets] = func_bits(msgs3,n,g1,g2,L_symbol,Gi);
% 计算 Ma 映射
Ma_tmps = func_MA2(Ma_sets,tmps1,tmps2,Gi);
% 计算 Mb 映射
Mb_tmps = func_MB(Mb_sets,tmps1,tmps2,Gi);
% 组合映射
Ma_tmps2 = func_MA(Ma_tmps,Mb_tmps,G1_sets,Gi,n);
Ma_tmps2 = reshape(Ma_tmps2.',1,[]);
x_freq(ij1,:) = Ma_tmps2/2;
% 频域到时域转换
x_time(ij1,:) = (L_fft/sqrt(L_fft))*ifft(fftshift(x_freq(ij1,:)),L_fft);
end
% 添加循环前缀,引入噪声并进行 FFT
xT_cyclic = [x_time(:,(L_fft-L_cp+1):(L_fft)) x_time];
xT_1D = reshape(xT_cyclic.',1,[]);
sigma = 10^(-SNR(ij)/10);
...................................................................
end
% 计算误码率
ErrorRate = nErr/(nSym*m);
% 绘制误码率-信噪比(SNR)曲线
figure
semilogy(SNR,ErrorRate,'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
grid on
xlabel(' SNR')
ylabel('Error Rate ')
title('DM-OFDM-IM QPSK AWGN ')
save R1.mat SNR ErrorRate% 保存结果到文件
0X_018m
---