当前位置: 首页 > news >正文

基于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 coffRayleigh_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)));  endBers(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

http://www.lryc.cn/news/95514.html

相关文章:

  • 学生管理系统-05封装选项卡
  • 关于一些C++、Qt、Python方面的术语
  • k8s中强制删除pv
  • 60寸透明屏的透明度怎么样?
  • Python:使用openpyxl读取Excel文件转为json数据
  • 在Microsoft Excel中如何快速合并表格
  • 【RS】基于规则的面向对象分类
  • SWF格式视频怎么转换成AVI格式?简单的转换方法分享
  • Hive数据仓库
  • 公网访问的Linux CentOS本地Web站点搭建指南
  • ChatGPT:人机交互新境界,AI智能引领未来
  • 微信小程序值相同的数据,一个数据setDate修改后,另一个值相同的数据也会修改
  • Spring5学习笔记 — IOC
  • DevOps自动化平台开发之 Shell脚本执行的封装
  • STM32CubeIDE(I2C)
  • http 请求报文响应报文的格式以及Token cookie session 区别
  • 智能汽车的主动悬架工作原理详述
  • vue2和vue3的一些技术点复习
  • 安装nvm 切换node版本
  • 【html中的BFC是什么】
  • 苹果账号被禁用怎么办
  • 跨境出海企业,如何防范恶意退货欺诈
  • 数据出境要依法“过安检”!什么是数据出境?
  • ARM——点灯实验
  • Kubernetes 使用 helm 部署 NFS Provisioner
  • Istio Pilot源码学习(二):ServiceController服务发现
  • Spring框架中的ResourcePatternResolver只能指定jar包内文件,指定容器中文件路径报错:FileNotFoundException
  • pytorch工具——认识pytorch
  • 解决Jmeter响应内容显示乱码
  • ChatGPT和搜索引擎哪个更好用