m基于MATLAB的MIMO_OFDM調(diào)制解調(diào)系統(tǒng)仿真

1.算法概述

MIMO-OFDM系統(tǒng)的接收信號(hào)是多個(gè)發(fā)射天線發(fā)送信號(hào)的衰落與加性噪聲的線性疊加缝彬,若采用通常SISO-OFDM系統(tǒng)或MIMO系統(tǒng)的估計(jì)算法估計(jì)信道,將會(huì)帶來(lái)很大的估計(jì)誤差被廓。出于設(shè)計(jì)實(shí)現(xiàn)的考慮,本文主要研究理論相對(duì)比較成熟的慢變環(huán)境下基于訓(xùn)練序列的MIMO-OFDM系統(tǒng)的信道估計(jì)算法蛉鹿。本章將主要討論MIMO-OFDM系統(tǒng)特殊訓(xùn)練序列的設(shè)計(jì)和信道估計(jì)算法的選擇取劫。


多天線系統(tǒng)的信道估計(jì)算法同單天線系統(tǒng)的相比具有更大的復(fù)雜性,因?yàn)榻邮招盘?hào)是多個(gè)發(fā)射信號(hào)的疊加信號(hào)忌卤,這些發(fā)射信號(hào)同時(shí)從多個(gè)發(fā)射天線上發(fā)射出來(lái)扫夜,幾乎同步到達(dá)任一接收天線。因此要從一個(gè)疊加信號(hào)中正確的識(shí)別出多個(gè)發(fā)射信號(hào),需要信道估計(jì)算法能估計(jì)出各發(fā)射天線到同一接收天線之間多個(gè)并行信道的信道特性笤闯。而任一發(fā)射天線到任一接收天線之間的信道估計(jì)可參考單天線系統(tǒng)的算法堕阔。


信道估計(jì)算法主要可以分為兩種:盲估計(jì)算法和非盲估計(jì)算法。盲信道估計(jì)算法不需要在發(fā)送信息中插入訓(xùn)練序列颗味,節(jié)約了帶寬超陆。盲估計(jì)算法的實(shí)現(xiàn)需要利用發(fā)送信息內(nèi)包含的統(tǒng)計(jì)信息。這通常需要在接收端對(duì)接收信號(hào)進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算脱衙,算法的運(yùn)算量一般都很大侥猬,不適合應(yīng)用于對(duì)時(shí)延要求比較高的實(shí)時(shí)系統(tǒng)。非盲估計(jì)算法是在發(fā)送信號(hào)中插入收發(fā)兩端都事先己知的信息捐韩,接收端在接收到該已知信息之后退唠,由該信息的幅度、載頻或相位變化來(lái)估計(jì)信道對(duì)發(fā)送信息所造成的衰落影響荤胁。算法應(yīng)用廣泛瞧预,幾乎可以應(yīng)用于所有的無(wú)線通信系統(tǒng)。




2.仿真效果預(yù)覽

matlab2022a仿真結(jié)果如下:






3.核心MATLAB預(yù)覽

.....................................................

for snrl=1:length(SNR)

estimation_error1=zeros(mt*mr,nse);%誤差估計(jì)

R1=besselj(0,2*pi*fm*(nse+ng)/B);

sigma2=10^(-SNR(snrl)/10);

aa=(1-R1^2)/(1-R1^2+sigma2); ?%兩個(gè)系數(shù)公式

bb=sigma2*R1/(1-R1^2+sigma2); %兩個(gè)系數(shù)公式


for iteration=1:number

if awgn==1

h=ones(mt*mr,1);

else

phi=rand*2*pi;

h=r(index+iteration)*exp(j*phi);

h=h.*(ones(mt*mr,1)*(exp(-0.5).^[1:ds]));

h=h./(sqrt(sum(abs(h).^2,2))*ones(1,ds)); %OFDM系統(tǒng)的系統(tǒng)沖激響應(yīng)函數(shù)

end

% 信道長(zhǎng)度

CL=size(h,2); ??????????????????????????????????????????????

output=zeros(mr,nse);

%%

%信號(hào)發(fā)送模塊

for tx=1:mt

%產(chǎn)生隨機(jī)數(shù)

data_b=0*round(rand(4,nse));

%利用QAM調(diào)制

data_qam(tx,:)=j*(2*(mod(data_b(1,:)+data_b(2,:),2)+2*data_b(1,:))-3)+2*(mod(data_b(3,:)+data_b(4,:),2)+2*data_b(3,:))-3;

for loop=1:mt

data_qam(tx,pilot+loop-1)=(1+j)*(loop==tx); ????????????

end

%IFFt變化

data_time_temp=ifft(data_qam(tx,:));

data_time(tx,:)=[data_time_temp(end-ng+1:end) data_time_temp];

end

%信號(hào)接收模塊

for rx=1:mr

for tx=1:mt

%卷積模塊

output_temp=conv(data_time(tx,:),h((rx-1)*mt+tx,:));

output(rx,:)=output_temp(ng+1:ng+nse)+output(rx,:);

end

np=(sum(abs(output(rx,:)).^2)/length(output(rx,:)))*sigma2;

%產(chǎn)生噪聲

noise=(randn(size(output(rx,:)))+i*randn(size(output(rx,:))))*sqrt(np);

%給輸入信號(hào)疊加噪聲

output(rx,:)=output(rx,:)+noise;

data_out(rx,:)=fft(output(rx,:));

end


%信道估計(jì)

H_act=zeros(mt*mr,nse);

H_est1=zeros(mt*mr,nse);

i=1;

%發(fā)送和接收估計(jì)

for tx=1:mt

for rx=1:mr

H_est_temp=data_out(rx,pilot+tx-1)./data_qam(tx,pilot+tx-1);

%IFFT變化

h_time=ifft(H_est_temp);

h_time=[h_time zeros(1,nse-length(h_time))]; ??????????????

H_est1((rx-1)*mt+tx,:)=fft(h_time);

if (tx>1)

H_est1((rx-1)*mt+tx,:)=[H_est1((rx-1)*mt+tx,nse-tx+2:nse) H_est1((rx-1)*mt+tx,1:nse-tx+1)]; ???

end

H_act((rx-1)*mt+tx,:)=fft([h((rx-1)*mt+tx,:) zeros(1,nse-CL)]);

%誤差計(jì)算

error1=(abs(H_act((rx-1)*mt+tx,:)-H_est1((rx-1)*mt+tx,:)).^2);

%誤差累加

estimation_error1((rx-1)*mt+tx,:)=estimation_error1((rx-1)*mt+tx,:)+error1; ????????????????????????????

end

end ?



end

%計(jì)算平均誤差估計(jì)

estimation_error1=estimation_error1/number;

MEE1(snrl)=sum(sum(estimation_error1))/(mt*mr*nse);

end


error1=(abs(H_act-H_est1).^2)./(abs(H_act).^2);

figure(1);

subplot(311),plot([0:length(H_act )-1],abs(H_act)); ???%信道估計(jì)

subplot(312),plot([0:length(H_est1)-1],abs(H_est1)); ??%信道估計(jì)

subplot(313),plot([0:length(error1)-1],error1); ???????%誤差估計(jì)



X=round(rand(1,N_num)) ????;

s=(X.*2-1)/sqrt(2) ???????;

sreal=s(1:2:N_num) ????;

simage=s(2:2:N_num) ???;

%=========================================

X1=sreal+j.*simage;




train_sym=round(rand(1,2*carr_sym));

t=(train_sym.*2-1)/sqrt(2);

treal=t(1:2:2*carr_sym);

timage=t(2:2:2*carr_sym);

training_symbols1=treal+j.*timage; ????%信號(hào)實(shí)部+虛部

training_symbols2=training_symbols1.'; %信號(hào)轉(zhuǎn)置

training_symbols=repmat(training_symbols2,1,Np);

pilot=1:LI+1:carr_num+Np;

if length(pilot)~=Np

pilot=[pilot,carr_num+Np];

end

%串并轉(zhuǎn)換

X2=reshape(X1,carr_num,carr_sym).';

%插入導(dǎo)頻

signal=1:carr_num+Np;

signal(pilot)=[];

X3(:,pilot)=training_symbols;

X3(:,signal)=X2;

IFFT_modulation=zeros(carr_sym,IFFT_length);

IFFT_modulation(:,carriers)=X3;

X4=ifft(IFFT_modulation,IFFT_length,2);

%加保護(hù)間隔(循環(huán)前綴)

for k=1:carr_sym;

for i=1:IFFT_length;

X6(k,i+GI)=X4(k,i);

end

for i=1:GI;

X6(k,i)=X4(k,i+IFFT_length-GI); ???

end

end

01_004_m

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仅政,一起剝皮案震驚了整個(gè)濱河市垢油,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌圆丹,老刑警劉巖滩愁,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異辫封,居然都是意外死亡硝枉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門倦微,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)妻味,“玉大人,你說(shuō)我怎么就攤上這事欣福≡鹎颍” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵拓劝,是天一觀的道長(zhǎng)雏逾。 經(jīng)常有香客問我,道長(zhǎng)郑临,這世上最難降的妖魔是什么校套? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮牧抵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己犀变,他們只是感情好妹孙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著获枝,像睡著了一般蠢正。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上省店,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天嚣崭,我揣著相機(jī)與錄音,去河邊找鬼懦傍。 笑死雹舀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粗俱。 我是一名探鬼主播说榆,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼寸认!你這毒婦竟也來(lái)了签财?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤偏塞,失蹤者是張志新(化名)和其女友劉穎唱蒸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灸叼,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡神汹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怜姿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慎冤。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沧卢,靈堂內(nèi)的尸體忽然破棺而出蚁堤,到底是詐尸還是另有隱情,我是刑警寧澤但狭,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布披诗,位于F島的核電站,受9級(jí)特大地震影響立磁,放射性物質(zhì)發(fā)生泄漏呈队。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一唱歧、第九天 我趴在偏房一處隱蔽的房頂上張望宪摧。 院中可真熱鬧粒竖,春花似錦、人聲如沸几于。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)沿彭。三九已至朽砰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喉刘,已是汗流浹背瞧柔。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留睦裳,地道東北人造锅。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像推沸,于是被迫代替她去往敵國(guó)和親备绽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容