【通信】 OFDM通信系統(tǒng)仿真含Matlab源碼
【通信】 OFDM通信系統(tǒng)仿真含Matlab源碼
TT_Matlab
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。
1 簡(jiǎn)介
根據(jù)正交頻分復(fù)用(OFDM)的基本原理,設(shè)計(jì)了一種基于OFDM技術(shù)的通信系統(tǒng).采用MATLAB軟件,對(duì)此基帶通信系統(tǒng)中的信源模塊,數(shù)據(jù)映射編碼模塊,OFDM調(diào)制模塊,信道模塊,OFDM解調(diào)模塊,數(shù)據(jù)逆映射譯碼模塊進(jìn)行了編程仿真,并對(duì)各模塊級(jí)聯(lián)構(gòu)成的系統(tǒng)進(jìn)行了性能仿真研究.通過(guò)仿真,研究了循環(huán)前綴對(duì)消除系統(tǒng)符號(hào)間干擾(ISI)的作用,并對(duì)多載波與單載波系統(tǒng)性能進(jìn)行了對(duì)比分析,得出了幾點(diǎn)結(jié)論.
2 完整代碼
%本程序用于OFDM基本原理的仿真,數(shù)據(jù)采用QPSK調(diào)制
clear all;
close all;
clc;
SubCarryN=128;%子載波數(shù)
fftLen=128;%FFT長(zhǎng)度為128
SymbN=6;%一幀中OFDM符號(hào)個(gè)數(shù)
GuardLen=32;%保護(hù)時(shí)隙的長(zhǎng)度
SNR=50;%信噪比取值,dB為單位
SignalLen=SubCarryN*SymbN*2;%輸入比特序列長(zhǎng)度=子載波數(shù)x每載波符號(hào)數(shù)x每符號(hào)比特?cái)?shù)
Signal=round(rand(1,SignalLen));%輸出待調(diào)制的二進(jìn)制比特流
for i=1:SubCarryN
for j=1:SymbN*2
ParaBitSig(i,j)=Signal(i*j);%串并轉(zhuǎn)換為行數(shù)SubCarryN,列數(shù)2*SymbN
end
end
%進(jìn)行QPSK數(shù)據(jù)調(diào)制,將數(shù)據(jù)分為兩個(gè)通道
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);%產(chǎn)生復(fù)信號(hào)
y=ifft(x);%通過(guò)傅里葉反變換,將頻域數(shù)據(jù)轉(zhuǎn)換為時(shí)域數(shù)據(jù)
ich2=real(y);%I信道取變換后的實(shí)部
qch2=imag(y);%Q信道取變換后的虛部
%插入保護(hù)間隔
ich3=[ich2(fftLen-GuardLen+1:fftLen,:);ich2];
qch3=[qch2(fftLen-GuardLen+1:fftLen,:);qch2];
%并串轉(zhuǎn)換
ich4=reshape(ich3,1,(fftLen+GuardLen)*SymbN);
qch4=reshape(qch3,1,(fftLen+GuardLen)*SymbN);
%形成復(fù)數(shù)發(fā)射數(shù)據(jù)
TrData=ich4+qch4.*sqrt(-1);
%接收機(jī)部分
%加入高斯白噪聲
ReData=awgn(TrData,SNR,’measured’);
%接收端
%移去保護(hù)時(shí)隙
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解調(diào)
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);
%符號(hào)抽樣判決
Resig=ReSig>0.5;
%畫(huà)圖
figure(1);
subplot(211);stem(Signal(1:40),’b’),grid;
title(’輸入的前40比特信號(hào)’)
subplot(212),stem(Resig(1:40),’b’),grid;
title(’接收到前40比特序列’)
figure(2);
subplot(121),plot(ich1,qch1,’o’),grid;
ylabel(’正交分量’),xlabel(’同相分量’);
title(’發(fā)送端的QPSK星座映射’)
subplot(122);plot(ReIChan,ReQChan,’o’),grid;
ylabel(’正交分量’),xlabel(’同相分量’);
title(’接收端的QPSK星座映射’)
figure(3);
subplot(311),stem(ich2(:,1),’b’),grid;
title(’IFFT后的實(shí)部序列’)
subplot(312),stem(ich3(:,1),’b’),grid;
title(’插入保護(hù)間隔后的實(shí)部序列’)
subplot(313),stem(idata2(:,1),’b’),grid;
title(’接收端去除保護(hù)間隔后的實(shí)部序列’)
3 仿真結(jié)果
4 參考文獻(xiàn)
[1]李松濤, 江修富, 郭文峰,等. 基于MATLAB的OFDM通信系統(tǒng)仿真研究[J]. 系統(tǒng)仿真學(xué)報(bào), 2005(z2):3.
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問(wèn)題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
-
2023年各省最新電價(jià)一覽!8省中午執(zhí)行谷段電價(jià)! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
全國(guó)消防救援總隊(duì)主官及簡(jiǎn)歷(2023.2) 2023-02-10
-
我們的前輩!歷屆全國(guó)工程勘察設(shè)計(jì)大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報(bào) 2022-04-26
