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

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

1.算法描述

   在OFDM系统中,信道估计器的设计上要有两个问题:** 一是导频信息的选择,由于无线信道的时变特性,需要接收机不断对信道进行跟踪,因此导频信息也必须不断的传送: 二是既有较低的复杂度又有良好的导频跟踪能力的信道估计器的设计,在确定导频发送方式和信道估计准则条件下,寻找最佳的信道估计器结构。

    正交频分复用(OFDM,Orthogonal Frequency Division Multiple)技术凭借抗多径能力强、频谱利用率高、易于与其他多种接入方法相结合等特性,在第四代移动通信(The Fourth Generation,4G)系统中广泛使用并被制定在多项标准中。然而,OFDM也有着因为子载波叠加而导致的峰均比过高,和经过衰落信道后产生的非线性失真、多径衰落等问题,从而会严重影响到整个通信系统的误符号率(SER)性能[2]。

    传统的信号检测方法有最小二乘(LS)法和最小均方误差(MMSE)法,LS算法虽然实现起来比较简单、计算复杂度较低,但是其忽略了噪声的影响,因此其信噪比低时性能较差。MMSE算法考虑了噪声的影响,因此其性能比LS算法有所提升,但是这种性能优势需要事先知道信道的先验信息,因而实现起来较为困难,且这2种算法在导频数量较少时的信号检测性能较差。

    近年来,深度学习作为人工智能的基础技术,在计算机视觉和自然语言处理等学科取得巨大的成功,在图像分类、语音识别、面部识别和机器翻译风格转换等方面超越了传统机器学习方法的性能,使得无人驾驶、智能疾病诊断和个性化推荐等应用成为可能。神经网络在无线通信领域得到一些应用,例如直接采取端到端方式神经网络代替整个无线通信系统中的信道估计与均衡模块,也有用神经网络进行对信道估计的优化。将神经网络融到迭代信号重建算法,设计一种基于深度学习去噪的近似信息传递网络,利用大量数据学习信道结构,在较短时间内有效地进行信道估计,解决了由射频链路数量有限导致的信道估计难题。

   因为频谱资源十分珍贵,如果一个信道仅仅只传输一路信号,那无疑是对频谱资源的浪费, 为了能够充分利用信道带宽, 频分复用是一种很好的方法。OFDM技术是频分复用方法的一种,其基本原理如下:将串行的高速数据流转换为低速的并行数据流,然后将数据调制到相互正交的子载波上4Q。OFDM系统可以通过DFT和ID FT的方法产生相互正交的子载波,然后利用子载波之间的正交性,将原始信号从子载波中分离开来,通过这种方法可以实现OFDM无线通信系统中信号的发送与接收。

   如下图所示,经过训练的神经网络以从导频符号所估计的结果作为输入,以所有符号上的信道频率响应作为输出。

1.png

    从基于给定信道仿真模型的结果来看,由于能“学习”更准确的导频与数据符号之间的信道变化特性,相比于传统方案,该方案能获得更好的性能。然而,在训练阶段用所有符号上的理想信道信息作为目标优化数据,显然是难以实现的。 

    提供了一种基于深度学习的时变OFDM系统信号检测方法,生成信号检测网络模型输入数据集,构建一个信号检测网络模型,在网络训练前需预设好训练和测试参数,采用在线生成训练数据和测试数据的方式训练网络,测试数据喂入信号检测网络,信号检测网络模型根据喂入的特征向量,产生预测出的发送数据比特,与真实的发送数据比特进行对比,测试网络当前的性能.本发明于针对快速时变OFDM系统,结合深度学习方法,利用循环神经网络处理时间序列的优势,简化了接收机架构,成功实现信号的解调,改进了快速时变OFDM系统中的信号检测性能,本发明有效减小了系统实现复杂度,同时也提升了系统整体的误比特率性能.

    针对DNN信号检测网络对OFDM系统信号检测能力不理想的情况,本文提出了LSTM信号检测网络并介绍了框架结构以及训练过程,LSTM信号检测网络主要包含输入层、LSTM层、全连接层、softmax层以及分类层,LSTM信号检测网络能够提取输入数据之间的信息,故相比于DNN网络有更好的性能,该网络需要在已有的信道模型下生成的数据进行训练,然后再将经过训练的网络放入OFDM系统进行应用。仿真表明,LSTM信号检测网络相比于传统算法在不同导频数与有无循环前缀的情况下均有较高的性能提升,与DNN信号检测网络相比,在误符号率为10~(-2)时,有了1d B的性能提升。其次,针对之前提出的LSTM信号检测网络收敛速度慢等问题,本文提出了一种基于双向长短记忆神经网络的信号检测网络,该网络主要包含:输入层、Bi LSTM层、全连接层、softmax层以及分类层。首先需要构建Bi LSTM网络,然后利用3GPP信道模型下生成的数据对已经构建好的神经网络进行训练,最后则可将训练好的神经网络应用于OFDM系统之中,对整个系统进行信号检测。

   dnn结构如下:

2.png

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

3.png

3.MATLAB核心程序

clear;
close all;
warning off;
addpath(genpath(pwd));
 
%% Load training and validation data
 
load('TrainingData.mat');
load('ValidationData.mat');
 
%% Define training parameters
 
MiniBatchSize = 1000;
MaxEpochs = 100;
InputSize = 2*NumOFDMsym*NumSC;
NumHiddenUnits = 16;
NumClass = length(Label);
 
%% Form DNN layers
 
Layers = [ ...
    sequenceInputLayer(InputSize)
    lstmLayer(NumHiddenUnits,'OutputMode','last')
    fullyConnectedLayer(NumClass)
    softmaxLayer
    classificationLayer];
 
%% Define trainig options
 
Options = trainingOptions('adam',...
    'InitialLearnRate',0.01,...
    'ValidationData',{XValid,YValid}, ...
    'ExecutionEnvironment','auto', ...
    'GradientThreshold',1, ...
    'LearnRateDropFactor',0.1,...
    'MaxEpochs',MaxEpochs, ...
    'MiniBatchSize',MiniBatchSize, ...
    'Shuffle','every-epoch', ...
    'Verbose',0,...
    'Plots','training-progress');
 
%% Train DNN
A88
相关文章
|
3天前
|
算法 5G 数据安全/隐私保护
大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP
本文介绍了大规模MIMO系统中的信道估计方法,包括最小二乘法(LS)、正交匹配追踪(OMP)、多正交匹配追踪(MOMP)和压缩感知算法CoSaMP。展示了MATLAB 2022a仿真的结果,验证了不同算法在信道估计中的表现。最小二乘法适用于非稀疏信道,而OMP、MOMP和CoSaMP更适合稀疏信道。MATLAB核心程序实现了这些算法并进行了性能对比。以下是部分
144 84
|
1天前
|
机器学习/深度学习 人工智能 算法
深度学习的奥秘:探索神经网络的魔法
在本文中,我们将一起踏上一场奇妙的旅程,探索深度学习背后的科学奥秘。通过简单易懂的语言和有趣的比喻,我们将解锁神经网络的强大力量,并了解它们如何改变我们的世界。无论你是科技爱好者还是对人工智能充满好奇的朋友,这篇文章都将为你打开一扇通往未来的大门。
|
8天前
|
机器学习/深度学习 算法 TensorFlow
深入探索强化学习与深度学习的融合:使用TensorFlow框架实现深度Q网络算法及高效调试技巧
【8月更文挑战第31天】强化学习是机器学习的重要分支,尤其在深度学习的推动下,能够解决更为复杂的问题。深度Q网络(DQN)结合了深度学习与强化学习的优势,通过神经网络逼近动作价值函数,在多种任务中表现出色。本文探讨了使用TensorFlow实现DQN算法的方法及其调试技巧。DQN通过神经网络学习不同状态下采取动作的预期回报Q(s,a),处理高维状态空间。
21 1
|
8天前
|
机器学习/深度学习 数据采集
深度学习的魔法:用神经网络识别手写数字
【8月更文挑战第31天】在这个数字时代,手写数字的识别技术显得尤为重要。本文将通过构建一个简单的神经网络模型来演示如何使用深度学习进行手写数字的识别。我们将一步步引导你了解数据预处理、模型搭建、训练和测试的过程,让你体会到深度学习的魅力。无论你是初学者还是有一定基础的学习者,这篇文章都将为你打开深度学习的大门。
|
8天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)入门
【8月更文挑战第31天】在人工智能的璀璨星空中,卷积神经网络(CNN)如同一颗耀眼的星辰,以其卓越的图像处理能力在深度学习领域熠熠生辉。本文将带你领略CNN的魅力,从其结构原理到实战应用,深入浅出地探索这一技术的奥秘。我们将通过Python代码片段,一起实现一个简单的CNN模型,并讨论其在现实世界问题中的应用潜力。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往深度学习世界的大门。
|
5天前
|
机器学习/深度学习 算法 开发者
深度学习的魔法:用神经网络识别手写数字
【9月更文挑战第2天】在这篇技术文章中,我们将一起探索深度学习的奥秘,并尝试使用神经网络来识别手写数字。通过简单的代码示例,我们将了解如何构建和训练一个深度学习模型,以及如何使用它来进行手写数字的识别。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实践技巧。
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的艺术:探索神经网络的奥秘
【9月更文挑战第2天】 在人工智能的宏伟画卷中,深度学习以其独特的魅力和强大的能力占据了中心舞台。本文将深入浅出地探讨深度学习的核心——神经网络,揭示其如何模拟人脑处理信息的方式,以及它在图像识别、自然语言处理等领域的应用。我们将从基础概念出发,逐步深入到网络结构的设计思想,最后探讨深度学习面临的挑战与未来发展方向。通过本文,读者将获得对深度学习基本原理的理解,并激发进一步探索这一领域的好奇心。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)入门
【8月更文挑战第31天】在人工智能的浪潮中,深度学习以其强大的数据处理能力成为时代的宠儿。本文将引导你走进深度学习的核心组件之一——卷积神经网络(CNN),并带你一探其背后的奥秘。通过简明的语言和直观的代码示例,我们将一起构建一个简易的CNN模型,理解它在图像处理领域的应用,并探索如何利用Python和TensorFlow实现它。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往深度学习世界的大门。
|
8天前
|
测试技术 数据库
探索JSF单元测试秘籍!如何让您的应用更稳固、更高效?揭秘成功背后的测试之道!
【8月更文挑战第31天】在 JavaServer Faces(JSF)应用开发中,确保代码质量和可维护性至关重要。本文详细介绍了如何通过单元测试实现这一目标。首先,阐述了单元测试的重要性及其对应用稳定性的影响;其次,提出了提高 JSF 应用可测试性的设计建议,如避免直接访问外部资源和使用依赖注入;最后,通过一个具体的 `UserBean` 示例,展示了如何利用 JUnit 和 Mockito 框架编写有效的单元测试。通过这些方法,不仅能够确保代码质量,还能提高开发效率和降低维护成本。
20 0
|
8天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习入门:使用Python和TensorFlow构建你的第一个神经网络
【8月更文挑战第31天】 本文是一篇面向初学者的深度学习指南,旨在通过简洁明了的语言引导读者了解并实现他们的第一个神经网络。我们将一起探索深度学习的基本概念,并逐步构建一个能够识别手写数字的简单模型。文章将展示如何使用Python语言和TensorFlow框架来训练我们的网络,并通过直观的例子使抽象的概念具体化。无论你是编程新手还是深度学习领域的新兵,这篇文章都将成为你探索这个激动人心领域的垫脚石。