OFDM图像传输系统matlab仿真,以图片作为数据源进行发送,接收端还原图片,对比MPSK,MQAM等调制方式
Posted 51matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OFDM图像传输系统matlab仿真,以图片作为数据源进行发送,接收端还原图片,对比MPSK,MQAM等调制方式相关的知识,希望对你有一定的参考价值。
1.算法仿真效果
matlab2022a仿真结果如下:
2.算法涉及理论知识概要
移动视频图像传输,广泛用于公安指挥车、交通事故勘探车、消防武警现场指挥车和海关、油田、矿山、水利、电力、金融、海事,以及其它的紧急、应急指挥系统,主要作用是将现场的实时图像传输回指挥中心,使指挥中心的指挥决策人员如身临其境,提高决策的准确性和及时性,提高工作效率。下面就移动视频图像传输采用公网和专用技术两种情况作相关介绍。
利用4G传输图像
无线网络的移动传输技术具有很多优点:保密性好、抗干扰能力强、抗多径衰落、系统容量的配置灵活、建网成本低等。设备采用MPEG-4压缩方式,用MPEG-4的CIF格式压缩图像,可以达到每秒2帧左右的速率。
OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。
OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的调制和解调是分别基于IFFT和FFT来实现的,是实现复杂度最低、应用最广的一种多载波传输方案。
在通信系统中,信道所能提供的带宽通常比传送一路信号所需的带宽要宽得多。如果一个信道只传送一路信号是非常浪费的,为了能够充分利用信道的带宽,就可以采用频分复用的方法.OFDM主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰(ISI) 。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽的一小部分,信道均衡变得相对容易。
除了对固定点的图像监控的需求外,移动图像传输的需求也相当旺盛。移动视频图像传输,广泛用于公安指挥车、交通事故勘探车、消防武警现场指挥车和海关、油田、矿山、水利、电力、金融、海事,以及其它的紧急、应急指挥系统,主要作用是将现场的实时图像传输回指挥中心,使指挥中心的指挥决策人员如身临其境,提高决策的准确性和及时性。
3.MATLAB核心程序
sym_rem = mod(mod_order-mod(length(im_bin),mod_order),mod_order); padding = repmat(\'0\',sym_rem,1); im_bin_padded = [im_bin;padding]; cons_data = reshape(im_bin_padded,mod_order,length(im_bin_padded)/mod_order)\'; cons_sym_id = bin2dec(cons_data); % BPSK if mod_order == 1 mod_ind = 2^(mod_order-1); n = 0:pi/mod_ind:2*pi-pi/mod_ind; in_phase = cos(n); quadrature = sin(n); symbol_book = (in_phase + quadrature*1i); end % Phase shift keying about unit circle if mod_order == 2 || mod_order == 3 mod_ind = 2^(mod_order-1); n = 0:pi/mod_ind:2*pi-pi/mod_ind; in_phase = cos(n+pi/4); quadrature = sin(n+pi/4); symbol_book = (in_phase + quadrature*1i); end %16QAM, 64QAM if mod_order == 4 || mod_order == 6 mod_ind = sqrt(2^mod_order); %n = 0:pi/mod_ind:2*pi-pi/mod_ind; in_phase = repmat(linspace(-1,1,mod_ind),mod_ind,1); quadrature = repmat(linspace(-1,1,mod_ind)\',1,mod_ind); symbol_book = (in_phase(:) + quadrature(:)*1i); end
现代通信基于OFDM通信系统仿真matlab源码
一、简介
二、源代码
%本程序用于OFDM基本原理的仿真,数据采用QPSK调制
clear all;
close all;
clc;
SubCarryN=128;%子载波数
fftLen=128;%FFT长度为128
SymbN=6;%一帧中OFDM符号个数
GuardLen=32;%保护时隙的长度
SNR=50;%信噪比取值,dB为单位
SignalLen=SubCarryN*SymbN*2;%输入比特序列长度=子载波数x每载波符号数x每符号比特数
Signal=round(rand(1,SignalLen));%输出待调制的二进制比特流
for i=1:SubCarryN
for j=1:SymbN*2
ParaBitSig(i,j)=Signal(i*j);%串并转换为行数SubCarryN,列数2*SymbN
end
end
%进行QPSK数据调制,将数据分为两个通道
for j=1:SymbN
ich(:,j)=ParaBitSig(:,2*j-1);%同相分量
qch(:,j)=ParaBitSig(:,2*j);%正交分量
end
kmod=1./sqrt(2);
ich0=ich.*2-1;
qch0=qch.*2-1;
ich1=ich0.*kmod;
qch1=qch0.*kmod;
x=ich1+qch1.*sqrt(-1);%产生复信号
y=ifft(x);%通过傅里叶反变换,将频域数据转换为时域数据
ich2=real(y);%I信道取变换后的实部
qch2=imag(y);%Q信道取变换后的虚部
%插入保护间隔
ich3=[ich2(fftLen-GuardLen+1:fftLen,:);ich2];
qch3=[qch2(fftLen-GuardLen+1:fftLen,:);qch2];
%并串转换
ich4=reshape(ich3,1,(fftLen+GuardLen)*SymbN);
qch4=reshape(qch3,1,(fftLen+GuardLen)*SymbN);
%形成复数发射数据
TrData=ich4+qch4.*sqrt(-1);
%接收机部分
%加入高斯白噪声
ReData=awgn(TrData,SNR,'measured');
%接收端
%移去保护时隙
idata=real(ReData);
qdata=imag(ReData);
idata1=reshape(idata,fftLen+GuardLen,SymbN);
qdata1=reshape(qdata,fftLen+GuardLen,SymbN);
idata2=idata1(GuardLen+1:GuardLen+fftLen,:);
qdata2=qdata1(GuardLen+1:GuardLen+fftLen,:);
%FFT
Rex=idata2+qdata2*sqrt(-1);
ry=fft(Rex);
%QPSK解调
ReIChan=real(ry);
ReQChan=imag(ry);
ReIChan1=ReIChan/kmod;
ReQChan1=ReQChan/kmod;
ReIChan0=(ReIChan1+1)/2;
ReQChan0=(ReQChan1+1)/2;
%QPSK逆映射
for j=1:SymbN
RePara(:,2*j-1)=ReIChan0(:,j);
RePara(:,2*j)=ReQChan0(:,j);
end
ReSig=reshape(RePara',1,SubCarryN*SymbN*2);
%符号抽样判决
Resig=ReSig>0.5;
%画图
三、运行结果
代码下载https://www.cnblogs.com/ttmatlab/p/14882966.html
以上是关于OFDM图像传输系统matlab仿真,以图片作为数据源进行发送,接收端还原图片,对比MPSK,MQAM等调制方式的主要内容,如果未能解决你的问题,请参考以下文章
误码率仿真基于matlab多径信道下OFDM通信系统误码率仿真含Matlab源码 2078期