💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🔊博主简介:985研究生,Matlab领域科研开发者;
🚅座右铭:行百里者,半于九十。
🏆代码获取方式:
CSDN Matlab武动乾坤—代码获取方式
更多Matlab信号处理仿真内容点击👇
①Matlab信号处理(进阶版)
⛳️关注CSDN Matlab武动乾坤,更多资源等你来!!
⛄一、深度学习OFDM系统信号检测简介
1 OFDM系统模型
OFDM系统是一种常用的多载波调制方式, 因为其具有能够在带宽较窄的情况下传输大量数据、能够对抗频率选择性衰落、传输速率高、实现简单、信道利用率高、抗窄带干扰能力强等优点而受到广泛使用。本节主要介绍了OFDM系统实现的基本原理以及系统模型。
1.1OFDM系统基本原理
因为频谱资源十分珍贵,如果一个信道仅仅只传输一路信号,那无疑是对频谱资源的浪费, 为了能够充分利用信道带宽, 频分复用是一种很好的方法。OFDM技术是频分复用方法的一种,其基本原理如下:将串行的高速数据流转换为低速的并行数据流,然后将数据调制到相互正交的子载波上4Q。OFDM系统可以通过DFT和ID FT的方法产生相互正交的子载波,然后利用子载波之间的正交性,将原始信号从子载波中分离开来,通过这种方法可以实现OFDM无线通信系统中信号的发送与接收。
1.2OFDM系统模型
OFDM符号是由若干个子载波组成, 且每个子载波都要受到相移键控I+!!(phase-shift keying, PSK) 或者正交幅度调制+2(Quadrature Amplitude Modulation, QAM) 的调制。在发送端, 设N为子载波的数量, T为OFDM符号的宽度, d(i=0, 1…N-1)为分配给每个子载波的数据符号, f:为第0个子载波的载波频率, rect() =1, |sT/2,则从t=1, 开始的OFDM符号表达式为:
但是使用离散傅里叶变换也有其缺点, 因为随着OFDM无线通信系统的子载波数目的增多,离散傅里叶变换的运算复杂度也会呈指数倍增长,因此在实际工程中常常使用FFT/IF FT代替离散傅里叶变换, 这样可以很大程度上减少运算的时间和占用的硬件资源,同时也可以降低数据传输时延。
由图2.2所示, 信源发出比特流信号, 比特流信号需要经过PSK或者QAM调制,然后经过串并转换的同时加入导频信号后被分成M路数据,M路数据经过快速傅里叶逆变换后转换为N个时域离散信号, 插入循环前缀(Cyclic Prefix, CP) 是为了避免ICI对整个系统的影响,其具体过程是取N个时域信号的后L,位数据放在该符号的前面形成循环结构, 这样就能保证即使是有时延的OFDM符号在经过FFT后依然是整数倍周期。最后将插入CP之后的OFDM符号经过并串转换之后就可以通过发射机发送出去。接收机接收到信号之后先把数据进行串并转换,然后按照按照插入CP的方式移除CP,CP的长度应该大于信道的时延, 只有这样才能消除符号间干扰, 然后对信号进行FFT变换,将信号从时域转换到频域,接收信号可以表示为
Y=XH+Z(2-8)
式中:Y为接收信号的频域形式,x为发送信号的频域形式,H为信道冲激响应,z为噪声。
⛄二、部分源代码
clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
%============================= setting common parameter =%
NumCarr = 1024; % the number of transmission subcarriers
NumSymb = 1e3; % the number of symbols
mapsize = 2; % using QPSK modulation
VV = [2 4 8 16]; % the number of subblocks
OverSampleRate = 4; % over sample rate
Partition = 1; % the way of parition:1 -> adjacency partition;2 -> interlaced partition
W = 1; % the log of the length of weighting factor set
%========================================================%
%============================ setting intial parameter for PSO_PTS %
Num_Particle = 10; % the number of particles per generation
Gn = 30; % the max iteration number
c1 = 2; c2 = 2; % learning factor
Vmax = 0.2; % the max velocity
wmax = 0.9; % the max inertia weight vector
wmin = 0.4; % the min inertia weight vector
w = wmax-(wmax-wmin)/Gn*(1:Gn); % inertia weight vector
v_min = -Vmax; v_max = Vmax;
%==================================================================%
%========================== initialization data of system ===========================%
MapSymb = get80216map( 2^mapsize ); % initial mapping method
Initial_Pattern = ones( NumCarr,1 ); % initial all of position as 1
Initial_Pattern([1:28,end-26:end]) = 0; % initial guard band as 0
Initial_Pattern(45:24:end-27) = 4; % initial pilot position as 4
Position_pilot = find(Initial_Pattern4); % the position of pilot
Position_data = find(Initial_Pattern1); % the position of transimitted data
Length_pilot = length(Position_pilot); % the length of pilot
Length_data = length(Position_data); % the length of transimitted data
PAPRNoPTS = zeros(1,NumSymb); % use to note the papr without PTS
PAPR_PSO = zeros(length(VV),NumSymb); % use to note the papr with PSO_PTS
PAPR0 = 0:0.25:12; % the vaule range of PAPR0
CntNoPTS = zeros(1,length(PAPR0)); % use to note the value of CCDF without PTS
Cnt_PSO = zeros(length(VV),length(PAPR0)); % use to note the value of CCDF with PSO_PTS
%========================================================================================%
%---------------------------------- Computing PAPR -------------------------------------%
for n = 1:1:NumSymb
Datatx = floor(rand(Length_data,1)*(2^mapsize));
DataMap = MapSymb(Datatx+1);
Symbol_tx = Initial_Pattern;
Symbol_tx(Position_pilot) = round(rand(Length_pilot,1));
Symbol_tx(Position_data) = DataMap;
%---------------------------------- PAPR without PTS --------------------------------%
Symbol_ifft = ifft([Symbol_tx(1:NumCarr/2);zeros(NumCarr*(OverSampleRate-1),1);...
Symbol_tx(NumCarr/2+1:end)]);
PowerPerBit = abs(Symbol_ifft).^2;
PowerMean = mean(PowerPerBit);
PowerMax = max(PowerPerBit);
PAPRNoPTS(1,n) = PowerMax/PowerMean;
%------------------------------------------------------------------------------------%
for kk = 1:1:length(VV)
%------------------------------- Partition OFDM Symbol --------------------------%
V = VV(kk);
Symbol_block = zeros( NumCarr,V );
Symbol_ifft2 = zeros( NumCarr*OverSampleRate,V );
for v = 1:1:V
if ( Partition == 1 )
Symbol_block(((v-1)*NumCarr/V+1):(v*NumCarr/V),v) = Symbol_tx(((v-1)*NumCarr/V+1):(v*NumCarr/V));
elseif ( Partition == 2 )
Symbol_block(v:V:NumCarr,v) = Symbol_tx(v:V:NumCarr);
end
Symbol_ifft2(:,v) = ifft([Symbol_block(1:NumCarr/2,v);zeros(NumCarr*(OverSampleRate-1),1);...
Symbol_block(NumCarr/2+1:end,v)]);
end
%--------------------------------------------------------------------------------%
%----------------------------- PAPR with PSO_PTS --------------------------------%
initial_w = randi([0,1],[W*V,Num_Particle]); % initial position
initial_v = v_min + (v_max-v_min).*rand(W*V,Num_Particle); % inital volcity
PAPR_PSO(kk,n) = PSO_PTS( Symbol_ifft2,W,Gn,initial_w,initial_v,c1,c2,Vmax,w );
%--------------------------------------------------------------------------------%
end
n
end
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 高俊伟.基于深度学习的OFDM信号检测算法研究[D].哈尔滨工程大学
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合