索引OFDM系统误码率的MATLAB仿真分析

一、理论基础


空间索引调制技术属于多天线通信技术的一种类型[21],其通过加入空间维度的概念,将发射端天线的序列好作为信息载体,然后建立一个关于天线序列号和输入比特信息的对应关系,即天线索引比特,然后在同一个时刻只激活一个天线,从而实现多维度空间索引调制。其基本结构如下图所示:

基于matlab的索引OFDM系统误码率仿真_开发语言

图1空间索引调制结构图


从图1可知,发送天线1~Nt,其根据输入的比特索引信息S,0,0,.....进行进行选择性激活,因此,和传统方式相比,其发送数据一部分通过普通的调制方式进行传输,还有一部分则隐含在天线的序列中。在SM索引调制系统中,每一时刻,只激活一个发送天线,因此避免了多天线之间的相互干扰问题以及多天线之间的同步问题。此外,每次激活一根天线,那么意味着实际的发送端只需要一个射频发送单元,从而极大的降低实际的硬件电路设计成本以及硬件电路的复杂度。


OFDM调制技术具有广泛的应用,其中MIMO技术,资源分配技术等新型的通信技术都是建立在OFDM调制技术基础之上的。随着第四代通信技术的不管应用,以及第五代通信技术的发展,OFDM技术起着越来越重要的作用。OFDM调制技术其具有对抗码间干扰(Inter Symbol Interference, ISI)的功能,具有高速的数据传输能力,在移动通信,数字通信,多媒体通信,语音视频等业务领域均有着广泛的应用前景[04]。OFDM作为一种多载波数字调制技术,其具有较高的频谱利用率,以及其通过IFFT和FFT完整OFDM的调制解调,因此OFDM的理论实现广泛应用在4G通信系统中,并在未来的5G移动通信方面有着无法替代的地位。但是OFDM调制技术,其要求各个子载波之间满足严格的正交性,因此OFDM调制技术对频率偏移较为敏感。针对这个问题,人们提出了索引调制技术(Index Modulation,IM),通过索引调制技术,可以将一部分数据通过子载波激活的位置来进行传输,降级被激活的子载波的数量,从而减少了OFDM系统对频偏的敏感性,提高了系统的通信性能。通过索引调制之后,OFDM系统中的子载波将被划分为用于传输调制信号的激活子载波以及用户传输索引信息的静默子载波。所以OFDM索引调制技术同时传输了数据和索引位置信息。


OFDM-IM是一种多载波索引调制技术,其在信号的频域加入了子载波块的功能,将多个子载波组合成一个子载波块,一个子载波块作为一个调制单元。每次发送过程中,只选择子载波块中的一个或者部分子载波进行激活并发送信息,其功能类似于基于频域的空间索引调制随机数。OFDM-IM技术的基本结构如下图所示:

基于matlab的索引OFDM系统误码率仿真_索引OFDM调制_02


索引OFDM的基本结构如下图所示:

基于matlab的索引OFDM系统误码率仿真_索引OFDM调制_03


假设索引比特信息为0,1,1,0,其中0表示激活第一个子载波被激活发送,1表示的是第二个子载波被激活发送,发送数据比特为S1,S2,S3以及S4,那么通过索引调制之后,我们可以看到,当索引比特为0的时候,系统将发送数据为S-0,而当索引比特为1的时候,系统将发送0-S数据。

OFDM-IM索引调制技术包括空间索引调制技术和基于OFDM的索引调制技术两种不同的类型。本文主要研究基于OFDM-IM索引调制技术。然后从理论上分析了OFDM-IM索引调制受频偏的影响,由于OFDM-IM索引调制系统相对于传统的OFDM系统而言,其被激活的子载波数量被降低,因此其对频偏不敏感。

相对于传统的OFDM系统而言,OFDM-IM调制技术具有如下几个方面的优势:

第一、系统设置灵活,OFDM-IM调制系统的索引调制方式多种多样,其可根据实际的频谱使用效率和系统误码率的需求进行调整和配置。

第二、系统误码率性能较高。和传统的OFDM系统相比而言,在相同信噪比条件下,OFDM-IM调制技术的误码率性能远远优于OFDM调制的误码率性能指标。

第三、具有较强的抗子载波干扰能力,由于OFDM-IM调制技术每次选择子载波块中一部分子载波进行激活,因此其大大降低了不同子载波之间的相互干扰影响。因此,其对频偏的敏感度较低,适用于各类高速运动的场合。

第四、较高的频谱利用率。由于OFDM-IM调制系统存在较多的静默子载波,通过这些可以进行信道估计等其他操作,从而极大的提高了频谱利用率。

二、核心程序

登录后复制

function Ber=func_ofdm(SNR,SubNum,sel)Nlen      = 100000;%数据仿真长度Ncp       = 8;%插入CP长度Tdat      = floor(rand(1,Nlen*SubNum)*2);%Modulate,下面几行都是调制Dat_Qam   = reshape(Tdat,2,Nlen*SubNum/2).';Dat_Qam2  = bi2de(Dat_Qam,2,'left-msb');Mod_Table = [-1-i -1+i 1-i 1+i];%调制映射表格SymQAM    = Mod_Table(Dat_Qam2+1);%IFFT变换dat_ifft1 = zeros(SubNum,Nlen);dat_ifft2 = reshape(SymQAM,SubNum/2,Nlen);dat_ifft3 = zeros(SubNum,Nlen);%IFFT的实部和虚部dat_ifft3(1,:)          = real(dat_ifft2(1,:));dat_ifft3(SubNum/2+1,:) = imag(dat_ifft2(1,:));dat_ifft3(2:SubNum/2,:)          = dat_ifft2(2:SubNum/2,:);dat_ifft3((SubNum/2+2):SubNum,:) = flipdim(conj(dat_ifft2(2:SubNum/2,:)),1);dat_ifft1                        = ifft(dat_ifft3,SubNum,1);%Add cyclic prefix,加入循环间隔NumAddPrefix = SubNum + Ncp;SymCP        = zeros(NumAddPrefix,Nlen);RowPrefix    = (SubNum - Ncp + 1):SubNum;SymCP        = [dat_ifft1(RowPrefix,:);dat_ifft1];%上变频ff           = 5e7; SymCP        = SymCP.*exp(sqrt(-1)*2*pi*ff*repmat([1:length(SymCP)],size(SymCP,1),1));%channel,定一个多径信道H_channel    = zeros(1,(SubNum + Ncp)*Nlen);H_channel2   = SymCP(:).';snr          = SNR + 10*log10(log2(2)/log10(SubNum));% Add the AWGN,加入高斯白噪声if sel==1   H_channel    = awgn(H_channel2,snr,'measured');endif sel==2   Ch           = [1 1/5];   H_channel3   = filter(Ch,1,H_channel2);   H_channel    = awgn(H_channel3,snr,'measured');endif sel==3   Ch           = [1 0.2,0.2,0.2,0.1];   H_channel3   = filter(Ch,1,H_channel2);   H_channel    = awgn(H_channel3,snr,'measured');end%下变频H_channel    = H_channel.*exp(-sqrt(-1)*2*pi*ff*[1:length(H_channel)]);%remove,删除循环间隔data_no_cp   = zeros(SubNum,Nlen);data_no_cp2  = reshape(H_channel,SubNum + Ncp,Nlen);data_no_cp   = data_no_cp2((Ncp+1):NumAddPrefix,:);%FFT变换dat_fft      = fft(data_no_cp,SubNum,1);dat_demod            = zeros(SubNum,Nlen);dat_Eq(1,:)          = dat_fft(1,:)+i*dat_fft(SubNum/2+1,:);dat_Eq(2:SubNum/2,:) = dat_fft(2:SubNum/2,:);%解调for m = 1:Nlen    for n = 1:SubNum/2        Real = real(dat_Eq(n,m));        Imag = imag(dat_Eq(n,m));        if( abs((Real -1)) < abs((Real +1  )) )            dat_demod(2*n-1,m) = 1;        else            dat_demod(2*n-1,m) = 0;        end        if( abs((Imag -1)) < abs((Imag +1  )) )            dat_demod(2*n,m) = 1;        else            dat_demod(2*n,m) = 0;        end    endendBitsRx    = zeros(1,SubNum*Nlen);BitsRx    = dat_demod(:).';%输出误码率[Num,Ber] = symerr(Tdat,BitsRx);1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.

三、仿真测试结果

基于matlab的索引OFDM系统误码率仿真_fpga开发_04


基于matlab的索引OFDM系统误码率仿真_matlab_05


基于matlab的索引OFDM系统误码率仿真_索引OFDM_06




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空