基于DNN深度学习网络的OFDM信号检测算法的仿真,对比LS和MMSE

简介: 基于DNN深度学习网络的OFDM信号检测算法的仿真,对比LS和MMSE

1.算法描述

    随着无线通信的快速发展,5G正逐渐成长为支撑全社会各行业运作的大型基础性互联网络,其服务范围的大幅扩展对底层技术提出了诸多挑战,尤其是作为物理层关键技术之一的正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)。近来,深度学习因其在计算机视觉以及自然语言处理领域中的优异表现而备受关注,其极强的普适性也为传统通信提供了新的发展空间。就OFDM系统中的信道估计问题展开深入研究,探索深度学习在该领域的应用可能。

    信道估计器是接收机一个很重要的组成部分。在OFDM系统中,信道估计器的设计上要有两个问题:一是导频信息的选择,由于无线信道的时变特性,需要接收机不断对信道进行跟踪,因此导频信息也必须不断的传送: 二是既有较低的复杂度又有良好的导频跟踪能力的信道估计器的设计,在确定导频发送方式和信道估计准则条件下,寻找最佳的信道估计器结构。 **在实际设计中,导频信息的选择和最佳估计器的设计通常又是相互关联的,因为估计器的性能与导频信息的传输方式有关。正交频分复用(orthogonalfrequencydivisionmultiplexing,ofdm)调制因其频带利用率高、抗频率选择性衰落的性能在通信系统中得到了广泛的应用,但ofdm解调对信道估计、时频偏估计、采样起始时刻偏差的估计精度要求很高,尤其是当使用高阶调制时,这一问题更为明显。信道估计和均衡是ofdm系统设计中的关键技术之一,通常ofdm系统的信道估计方法分为非盲信道估计方法和盲信道估计方法。非盲信道估计方法通常采用插入训练序列的方式或者插入导频的方式,盲信道估计方法则是在接收端采用相应的信号处理技术来获得信道时域或频域响应的估计值,有基于判决反馈的估计方法和基于相位的信道估计方法。

48ad9ee8e83bcc944ad4f3ccae13a92c_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

OFDM信号检测

    OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。 OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的调制和解调是分别基于IFFT和FFT来实现的,是实现复杂度最低、应用最广的一种多载波传输方案。
     OFDM主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰(ISI) 。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽的一小部分,信道均衡变得相对容易。
      OFDM技术是HPA联盟(HomePlug Powerline Alliance)工业规范的基础,它采用一种不连续的多音调技术,将被称为载波的不同频率中的大量信号合并成单一的信号,从而完成信号传送。由于这种技术具有在杂波干扰下传送信号的能力,因此常常会被利用在容易受外界干扰或者抵抗外界干扰能力较差的传输介质中。
    通常的数字调制都是在单个载波上进行,如PSK、QAM等。这种单载波的调制方法易发生码间干扰而增加误码率,而且在多径传播的环境中因受瑞利衰落的影响而会造成突发误码。若将高速率的串行数据转换为若干低速率数据流,每个低速数据流对应一个载波进行调制,组成一个多载波的同时调制的并行传输系统。这样将总的信号带宽划分为N个互不重叠的子通道(频带小于Δf),N个子通道进行正交频分多重调制,就可克服上述单载波串行数据系统的缺陷。在向B3G/4G演进的过程中,OFDM是关键的技术之一,可以结合分集,时空编码,干扰和信道间干扰抑制以及智能天线技术,最大限度的提高了系统性能。包括以下类型:V-OFDM, W-OFDM, F-OFDM, MIMO-OFDM,多带-OFDM。

    OFDM系统中二进制数据比特以PSK或苦QAM等调制方式调制到相应的子载波上。为了在接收端进行数据恢复,需要知道调制值的参考相位和幅度。在实际系统中,由于载波频率偏移、定时偏差以及信道的频率选择性衰落等的影响,信号会受到破坏,导致相位偏移和幅度变化等。为了准确恢复信号,接收端存在两种信号检测方法,差分检测和相干检测。相干检测利用信号的参考值来检测信号,所以对相干检测而言,如何在不引入过多训练序列的前提下得到检测所需的爹考值是我们需要考虑的问题,重点在于相干检测所需的信道估计算法。无线通信系统中经常采用差分检测或相干检测,在完善信道估计的前提下,为得到相同的误码率、后者所需要的信噪比比前者低3~4dB。 此外,差分检测方法比较适合于较低传输速率的OFDM系统,如欧洲的DAB系统,而对于要求高的传输速率和频谱效率的OFDM系统,相于检测则更合适。

    在信号检测中另外一个重要工作是同步问题。OFDM系统中,在接收机对子载波解调之前必须进行两项同步工作:第一, 找出符号边界的位置和最佳的时间间隔使得信道间干扰(ICI)和符号间于扰(ISI)达到最小;第二,估计和纠正接收信号的载波频率偏移,因为任何的偏移会引入子载波间干扰和符号间干扰。尽管OFDM系统相对于单载汲系统来说对相位噪声和频率偏差更为敏感,但是事实证明,利用循环前缀和加入特殊的OFDM训练符号等方法,可以获得较好的时间同步和频率同步。

dnn

    在信道变化迅速的系统中,通常依靠频域的导频子载波进行信道估计。导频子载波按照特定的规则插入到时频两维资源中。导频子载波处的信道响应可以通过最小二乘法(least-square,ls)和线性最小均方误差法(linearminimummeansquareerror,lmmse)进行估计,其他子载波处的信道响应则通过插值得到。基于判决反馈的盲信道估计方法将判决后的数据反馈至信道估计器进行去除调制信息操作,从而得到信道响应结果。基于相位的估计算法利用dqpsk调制信号幅度恒定相位为的整数倍的特性,利用接收信号相位在乘4、模2π、除以4的操作后,所有星座点都将变换到正实轴上(相位为0,幅度为1),这一操作相当于去除了dqpsk的调制信息,无需对信号进行判决。

    近几年,人工智能尤其是深度学习在无线通信物理层中也得到了广泛的应用。深度学习(Deep Learning, DL),由Hinton等人于2006年提出,是机器学习(MachineLearning, ML)的一个新领域。深度学习被引入机器学习使其更接近于最初的目标----人工智能(AI,Artificial Intelligence)。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语言和图像识别方面取得的效果,远远超过先前相关技术。它在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术,以及其它相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。

2.仿真效果预览
matlab2022a仿真结果如下:

616ea2ad893e36bcf67fd031a80fdb3a_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
2884d2202d78f70b54228025cbec8af2_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

    for snr = 1:length(NoiseVar)
        [i,snr]
        % 1. Testing data generation
        noiseVar = NoiseVar(snr);
                
        % OFDM pilot symbol (can be interleaved with random data symbols)
        PilotSym = 1/sqrt(2)*complex(sign(rand(NumPilotSym,NumSC,NumPacket)-0.5),sign(rand(NumPilotSym,NumSC,NumPacket)-0.5)); 
        PilotSym(1:PilotSpacing:end) = FixedPilotAll;
    
        % OFDM data symbol
        DataSym = 1/sqrt(2)*complex(sign(rand(NumDataSym,NumSC,NumPacket)-0.5),sign(rand(NumDataSym,NumSC,NumPacket)-0.5)); 
    
        % Transmitted OFDM frame
        TransmittedPacket = [PilotSym;DataSym];
        
        % Received OFDM frame
        ReceivedPacket = genTransmissionReceptionOFDM(TransmittedPacket,LengthCP,h,noiseVar);
        
        % Collect the data labels for the selected subcarrier
        DataLabel = zeros(size(DataSym(:,idxSC,:)));
        for c = 1:NumClass
            DataLabel(logical(DataSym(:,idxSC,:) == 1/sqrt(2)*Mod_Constellation(c))) = Label(c);
        end
        DataLabel = squeeze(DataLabel); 
 
        % Testing data collection
        XTest = cell(NumPacket,1);
        YTest = zeros(NumPacket,1);       
        for c = 1:NumClass
            [feature,label,idx] = getFeatureAndLabel(real(ReceivedPacket),imag(ReceivedPacket),DataLabel,Label(c));
            featureVec = mat2cell(feature,size(feature,1),ones(1,size(feature,2))); 
            XTest(idx) = featureVec;
            YTest(idx) = label;
        end
        YTest = categorical(YTest);
        
        %% 2. DL detection
        
        YPred = classify(Net,XTest,'MiniBatchSize',MiniBatchSize);
        SER_DL(snr,i) = 1-sum(YPred == YTest)/NumPacket;
        
        % 3. LS & MMSE detection
        
        % Channel estimation
        wrapper = @(x,y) performChanEstimation(x,y,RHH,noiseVar,NumPilot,NumSC,NumPath,idxSC);
        ReceivedPilot = mat2cell(ReceivedPacket(1,:,:),1,NumSC,ones(1,NumPacket));
        PilotSeq = mat2cell(FixedPilotAll,1,NumPilot,ones(1,NumPacket));
        [EstChanLS,EstChanMMSE] = cellfun(wrapper,ReceivedPilot,PilotSeq,'UniformOutput',false);
        EstChanLS = cell2mat(squeeze(EstChanLS));
        EstChanMMSE = cell2mat(squeeze(EstChanMMSE));
        
        % Symbol detection
        SER_LS(snr,i) = getSymbolDetection(ReceivedPacket(2,idxSC,:),EstChanLS,Mod_Constellation,Label,DataLabel);
        SER_MMSE(snr,i) = getSymbolDetection(ReceivedPacket(2,idxSC,:),EstChanMMSE,Mod_Constellation,Label,DataLabel);
        
    end
end
相关文章
|
5天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
111 55
|
2天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
47 31
|
8天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
8天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
1天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
15天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
21天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
8天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
17天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
|
14天前
|
算法
基于WOA鲸鱼优化的购售电收益与风险评估算法matlab仿真
本研究提出了一种基于鲸鱼优化算法(WOA)的购售电收益与风险评估算法。通过将售电公司购售电收益风险计算公式作为WOA的目标函数,经过迭代优化计算出最优购电策略。实验结果表明,在迭代次数超过10次后,风险价值收益优化值达到1715.1万元的最大值。WOA还确定了中长期市场、现货市场及可再生能源等不同市场的最优购电量,验证了算法的有效性。核心程序使用MATLAB2022a实现,通过多次迭代优化,实现了售电公司收益最大化和风险最小化的目标。

热门文章

最新文章