基于DNN深度学习网络的OFDM+QPSK信号检测算法matlab仿真

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

matlab2022a

3.部分核心程序

.............................................................................
Transmitted_signal                 = OFDM_Transmitter(data_in_IFFT, NFFT, NCP);
 
 
        %信道
        Ray_h_ofdm             = (1 / sqrt(2)) * randn(len_symbol, 1) + (1 / sqrt(2)) * 1j * randn(len_symbol, 1); % Rayleigh channel coff
        Rayleigh_h_channel     = repmat(Ray_h_ofdm, Frame_size, 1);
        Rayleigh_Fading_Signal = awgn(Rayleigh_h_channel .* Transmitted_signal,SNR,'measured');
        signal_ideal           = Rayleigh_Fading_Signal ./ Rayleigh_h_channel;
 
        Multitap_h = [(randn + 1j * randn);...
                      (randn + 1j * randn) / 24] ;
        
        %卷积通过信道
        Multipath_Signal        = conv(Transmitted_signal, Multitap_h);
 
        Multipath_Signal        = awgn(Multipath_Signal(1 : length(Transmitted_signal)),SNR,'measured');
        % OFDM 接收
        [Rsignals0, Rsignalsh0] = OFDM_Receiver(Multipath_Signal, NFFT, NCP, len_symbol, signal_ideal);
 
        % 进行深度学习部分,使用已训练好的神经网络进行解调
        [DNN_feature_signal, ~, ~] = Extract_Feature_OFDM(Rsignals0, dataSym(1:2), M, QPSK_signal(1:8));
        Received_data_DNN          = predict(DNN_Trained, DNN_feature_signal);
        Received_data_DNN          = transpose(Received_data_DNN);
        DNN_Received_data          = Received_data_DNN(1:2:end, :) + 1j * Received_data_DNN(2:2:end, :);
 
        DNN_dataSym_Rx             = QPSK_Demodulator(DNN_Received_data);
        
        DNN_dataSym_Received       = de2bi(DNN_dataSym_Rx, 2);
        DNN_Data_Received          = reshape(DNN_dataSym_Received, [], 1);
 
        DNN_sym_err(ij, 1)         = sum(sum(round(dataSym(1:8)) ~= round(DNN_dataSym_Rx)));
        DNN_bit_err(ij, 1)         = sum(sum(round(reshape(de2bi(dataSym(1:8), 2),[],1)) ~= round(DNN_Data_Received)));  
    end
    Bers(idx, 1) = sum(DNN_bit_err, 1) / N_bits_DNN; % 计算平均比特误码率
    Sers(idx, 1) = sum(DNN_sym_err, 1) / N_QPSK_DNN; % 计算平均符号误码率
0029

4.算法理论概述

正交频分复用(OFDM)是一种多载波调制技术,已经广泛应用于数字通信领域。OFDM信号检测是接收端的关键问题之一,目的是将接收到的OFDM信号恢复为原始数据。由于OFDM信号具有高带宽效率、抗多径衰落等特点,可以在高速移动环境下实现高速数据传输。但是,OFDM信号的检测存在一些困难,例如频率偏移、信道估计误差、多路径干扰等。为了解决这些问题,近年来,深度学习技术被广泛应用于OFDM信号检测中。

1.OFDM信号模型

OFDM信号是一种基于频域分解的多载波调制技术。OFDM信号可以表示为:

x(t)=\\sum_{n=0}\^{N-1}\\sum_{k=0}\^{K-1}s_{n,k}g(t-nT)e\^{j2\\pi k\\Delta f(t-nT)}

其中,s_{n,k}是数据符号,g(t)是正交矩形脉冲,T是符号间隔,K是子载波数,\\Delta f是子载波间隔。OFDM信号可以通过将数据符号映射到各个子载波上来传输数据,每个子载波都有自己的调制方式和调制参数。

2.DNN深度学习网络

DNN深度学习网络是一种基于多层神经网络的机器学习算法。DNN深度学习网络可以通过多个隐藏层来学习数据的高级特征,从而实现对数据的分类、回归等任务。DNN深度学习网络的数学模型可以表示为:

y=f(W\^{(L)}f(W\^{(L-1)}...f(W\^{(1)}x+b\^{(1)})...)+b\^{(L)})

其中,x是输入数据,y是输出数据,W\^{(i)}b\^{(i)}是第i层的权重和偏置,f是激活函数。

3.基于DNN的OFDM信号检测模型

基于DNN的OFDM信号检测模型可以表示为:

\\hat{s}*{n,k}=\\arg\\max*{s_{n,k}}P(s_{n,k}\|r_{n,k},\\theta)

其中,\\hat{s}*{n,k}是预测的数据符号,r*{n,k}是接收到的OFDM信号,\\theta是模型参数。该模型可以通过DNN深度学习网络来学习OFDM信号的映射关系,从而实现OFDM信号的检测。

在实际应用中,需要实现实时OFDM信号检测。这可以通过将训练好的模型部署到实际系统中来实现。在实时检测过程中,需要对接收到的OFDM信号进行预处理,并将其输入到训练好的模型中进行检测。实时检测的实现需要考虑到时间延迟、资源限制等因素。

基于DNN深度学习网络的OFDM信号检测已广泛应用于数字通信领域。它可以用于解决OFDM信号检测中的一些难题,例如频率偏移、信道估计误差、多路径干扰等。此外,它还可以用于无线电频谱感知、无线电干扰检测等领域。

5.算法完整程序工程

OOOOO

OOO

O

相关推荐
埃菲尔铁塔_CV算法几秒前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR几秒前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
打羽毛球吗️7 分钟前
机器学习中的两种主要思路:数据驱动与模型驱动
人工智能·机器学习
好喜欢吃红柚子24 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python28 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯37 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
正义的彬彬侠40 分钟前
《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析
人工智能·决策树·机器学习·集成学习·boosting·xgboost
Debroon1 小时前
RuleAlign 规则对齐框架:将医生的诊断规则形式化并注入模型,无需额外人工标注的自动对齐方法
人工智能
羊小猪~~1 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
AI小杨1 小时前
【车道线检测】一、传统车道线检测:基于霍夫变换的车道线检测史诗级详细教程
人工智能·opencv·计算机视觉·霍夫变换·车道线检测