【OFDM】粒子群优化OFDM下的PAPR和PTS算法优化仿真【含Matlab源码 3284期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞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_Pattern
4); % the position of pilot
Position_data = find(Initial_Pattern
1); % 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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值