m基于OFDM+QPSK和DNN深度学习信道估计的无线图像传输matlab仿真,输出误码率曲线,并用实际图片进行测试

简介: m基于OFDM+QPSK和DNN深度学习信道估计的无线图像传输matlab仿真,输出误码率曲线,并用实际图片进行测试

1.算法仿真效果
matlab2022a仿真结果如下:

75ae6cfbcde758ab104c94db55dc0bcf_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg
2662a2fde973ef92b0036844c3987587_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg
f05bb99ed027a3505ede1b921ad1994b_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg
dc94a04661dc9d20130ebc0a9d92832d_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

2.算法涉及理论知识概要
基于OFDM+QPSK和DNN深度学习信道估计的无线图像传输"是一种无线通信系统,它利用正交频分复用(OFDM)和四相位偏移键控(QPSK)技术来传输图像数据,并借助深度神经网络(DNN)来进行信道估计,从而提高信号传输的可靠性和效率。

   OFDM是一种常用的多载波调制技术,它将高速数据流分为多个低速子载波,并使每个子载波之间正交,从而提高频谱利用率和抗干扰能力。QPSK是一种常见的调制方式,它将每两个比特映射为一个复数信号点,每个信号点对应四个相位(0°、90°、180°、270°)。无线图像传输系统由发送端和接收端组成。发送端将图像数据转换为比特流,然后采用QPSK调制和OFDM技术将比特流映射到不同的子载波上,生成OFDM符号序列。接收端接收OFDM符号序列,并利用DNN进行信道估计,根据估计得到的信道状态信息对接收信号进行解调和解调制,最终恢复出原始图像数据。

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

   DNN是一种深度学习模型,用于从接收信号中学习信道特征。DNN的输入是接收信号的采样值,输出是对应的信道状态信息。训练DNN需要使用已知信道状态信息的样本,通过梯度下降等优化算法来调整DNN的参数,使其能够准确地估计信道状态信息。 

实现过程

图像编码:将图像数据转换为比特流。

QPSK调制:将比特流映射为QPSK符号。

OFDM调制:将QPSK符号映射到不同的OFDM子载波上,生成OFDM符号序列。

信道传输:通过无线信道传输OFDM符号序列,引入噪声和衰落。

接收和采样:接收端对信号进行采样,得到接收信号的采样值。

DNN信道估计:使用已知信道状态信息的样本训练DNN模型,得到信道估计模型。

信道估计:利用DNN模型对接收信号进行信道估计,得到信道状态信息。

解调和解码:根据信道状态信息对接收信号进行解调和解码,恢复出原始图像数据。

3.MATLAB核心程序

clear;
close all;
warning off;
addpath 'func\'
Ttrain  = load('T_train.mat'); 

Ptrain2 = [];
Ttrain2 = [];

for i = 1
    for j = 1:1
        Ptrain = load(['P_train',num2str(i),'_',num2str(j),'.mat']);   
        Ptrain2 = [Ptrain2;Ptrain.Ch_feature  ];
        Ttrain2 = [Ttrain2;Ttrain.Ch_feature  ];
    end
end

%输入层权值和偏移值
WI     = rand(size(Ttrain2))/1000;
BI     = rand(size(Ttrain2))/1000;
%定义4个隐含层
W1     = rand(size(Ttrain2));
BI1    = rand(size(Ttrain2));
W2     = rand(size(Ttrain2)/2);
BI2    = rand(size(Ttrain2)/2);
%输出层
WO     = rand(size(Ttrain2)/2);
BO     = rand(size(Ttrain2)/2);
%学习率
Lr     = 0.0005;
%迭代次数
Iter   = 2000;

for  it = 1:Iter
     it
     %训练
     tmps1  = Ptrain2.*WI+BI;
     tmps2  = tmps1.*W1+BI1;  
     %激活的
     tmps2_ = [];
     tmps2_ = func_ReLu(tmps2);

     tmps3  = tmps2_(1:2:end,1:2:end).*W2+BI2; 
     tmps4  = tmps3.*WO+BO;             
     error  = (Ttrain2(1:2:end,1:2:end)-tmps4);

     %更新权值
     W1     = W1 + Lr*repmat(error,2,2);
     BI1    = BI1+ Lr*repmat(error,2,2);
     W2     = W2 + Lr*error;
     BI2    = BI2+ Lr*error;
     %输出层
     WO     = WO + Lr*error;
     BO     = BO + Lr*error;
     errors(it) = mean2(abs(error));
end

figure;
plot(errors,'b','linewidth',2);
grid on
xlabel('训练次数');
ylabel('训练误差');

save dl0.mat errors WI BI W1 BI1 W2 BI2 WO BO
相关文章
|
1月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
130 8
|
2月前
|
机器学习/深度学习 算法 5G
【信道估计】毫米波大规模MIMO系统的透镜天线阵列可靠波束空间信道估计研究(Matlab实现)
【信道估计】毫米波大规模MIMO系统的透镜天线阵列可靠波束空间信道估计研究(Matlab实现)
|
2月前
|
机器学习/深度学习 数据采集 编解码
基于深度学习分类的时相关MIMO信道的递归CSI量化(Matlab代码实现)
基于深度学习分类的时相关MIMO信道的递归CSI量化(Matlab代码实现)
159 1
|
2月前
|
5G Python
【零强化均衡器的MIMO】【BPSK】在瑞利衰落信道中使用零强化均衡器的2x2 MIMO系统(Matlab代码实现)
【零强化均衡器的MIMO】【BPSK】在瑞利衰落信道中使用零强化均衡器的2x2 MIMO系统(Matlab代码实现)
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
402 0
来自OpenCv的DNN模块助力图像分类任务
来自OpenCv的DNN模块助力图像分类任务
305 0
来自OpenCv的DNN模块助力图像分类任务
|
机器学习/深度学习
DNN 模块MVP 模式学习中的一些问题
为了让View部分可以测试,我们使用interface来分离View和业务逻辑的耦合。 我的问题是: Q:对于在aspx.design.cs中声明的控件,我们也需要在interface中声明吗?如果要声明,那么在aspx.design.cs中的控件声明是不是就是interface的实现? 我们不能在interface直接声明跟aspx.design.cs控件同名的变量,我们应该认为aspx.design.cs中的控件就是view的一部分,我们无法控制。
558 0
|
机器学习/深度学习 前端开发
介绍一些免费的DNN模块
Administration Advanced Control Panel Free fully featured ajax enabled control panel replacement for Dot...
924 0
|
机器学习/深度学习 SEO
介绍几个DNN SEO模块,可免费试用的
iFinity Url Master - Get the best SEO results by taking control of your DNN urls iFinity Tagger - Tag your DNN content and create specific, target...
707 0
|
XML 机器学习/深度学习 数据格式
DNN Navisuite菜单模块原始XML文件的格式
DNN 比较好用的一个菜单模块式Navsuite模块,这个模块因为使用XML+XSL的技术手段,可以灵活的生成各种各样的菜单样式。 你可以通过修改style目录下的xsl文件来创建自己的菜单样式,但有一个问题是这个模块没有非常详细的手册,生成的XML是什么格式我们并不熟悉,我这里把生成的XML贴出来给大家参考。
889 0

热门文章

最新文章