m基于rbf神經(jīng)網(wǎng)絡(luò)和遺傳算法優(yōu)化的MIMO-OFDM系統(tǒng)信道估計(jì)算法matlab仿真

1.算法描述

MIMO-OFDM的信道估計(jì):時(shí)哼转,頻明未,空三個(gè)域都要考慮,尤其是在空域壹蔓,不同天線發(fā)射的導(dǎo)頻序列需要相互正交亚隅,否則在接收端無法區(qū)分各個(gè)導(dǎo)頻,造成導(dǎo)頻污染庶溶,就無法正確地估計(jì)信道煮纵。正交的方法有很多,可以是時(shí)間上錯(cuò)開偏螺,在某個(gè)時(shí)間只允許某個(gè)天線發(fā)送行疏。也可以在頻率上錯(cuò)開。還可以讓導(dǎo)頻信號(hào)本身就是正交的(例如Alamouti coding)套像。如下圖所示:


算法上的區(qū)別我不是很清楚了酿联,不是研究這一塊,太深的也不懂夺巩。但常用的信道估計(jì)算法比如LS/ML估計(jì)贞让,LMMSE估計(jì)都可以用,只是形式上有點(diǎn)變化柳譬。值得一提的是喳张,配備了OFDM的MIMO系統(tǒng),往往工作在頻率選擇性衰落信道中美澳,一般稱為寬帶MIMO系統(tǒng)销部,在某種程度上其信道估計(jì)比平衰落信道中的窄帶MIMO要容易。因?yàn)閷?dǎo)頻在空域的正交使得我們僅需要將多對(duì)收發(fā)天線考慮成多個(gè)單對(duì)收發(fā)天線即可制跟,也就是說可以將MIMO系統(tǒng)變?yōu)镾ISO系統(tǒng)來分析舅桩。


MIMO-OFDM系統(tǒng)模型的接收端原理圖如圖4所示。即各個(gè)接收天線收到相應(yīng)的OFDM符號(hào)后雨膨,先進(jìn)行時(shí)頻同步處理擂涛,然后去掉相應(yīng)的CP,接著進(jìn)行OFDM解調(diào)(FFT)聊记,最后根據(jù)信道估計(jì)的結(jié)果進(jìn)行檢測(cè)解碼撒妈,恢復(fù)出接收比特流。


RBF網(wǎng)絡(luò)是一種三層前向網(wǎng)絡(luò)甥雕,由輸入到輸出的映射是非線性的踩身,而隱含層空間到輸出空間的映射是線性的胀茵,從而大大加快了學(xué)習(xí)速度并避免局部極小問題社露。RBF網(wǎng)絡(luò)結(jié)構(gòu)如下圖1所示。


這里琼娘,我們主要是通過對(duì)導(dǎo)頻序列和已知的導(dǎo)頻序列進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練峭弟,得到一個(gè)神經(jīng)網(wǎng)絡(luò)附鸽,對(duì)輸入的新號(hào)進(jìn)行實(shí)時(shí)的預(yù)測(cè)和估計(jì)。最后得到所要的接受信號(hào)瞒瘸。我們?cè)俳榻B使用改進(jìn)后的遺傳算法對(duì)RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化坷备,并進(jìn)行信道估計(jì)的方法。


遺傳算法(Genetic Algorithm-GA)是一種基于自然選擇和基因遺傳學(xué)原理的優(yōu)化搜索方法情臭。它將“優(yōu)勝劣汰省撑,適者生存”的生物進(jìn)化原理引入待優(yōu)化參數(shù)形成的編碼串群體中,按照一定的適配值函數(shù)及一系列遺傳操作對(duì)各個(gè)體進(jìn)行篩選俯在,從而使適配值高的個(gè)體被保留下來竟秫,組成新的群體,新群體中各個(gè)體適應(yīng)度不斷提高跷乐,直至滿足一定的極限條件肥败。此時(shí),群體中適配值最高的個(gè)體即為待優(yōu)化參數(shù)的最優(yōu)解愕提。正是由于遺傳算法獨(dú)具的工作原理馒稍,使它能夠在復(fù)雜空間進(jìn)行全局優(yōu)化搜索,并且具有較強(qiáng)的魯棒性浅侨。


遺傳算法是一類可用于復(fù)雜系統(tǒng)優(yōu)化的具有魯棒性的搜索算法纽谒,與傳統(tǒng)的優(yōu)化算法相比,具有以下特點(diǎn):

(1)以決策變量的編碼作為運(yùn)算對(duì)象如输。傳統(tǒng)的優(yōu)化算法往往直接利用決策變量的實(shí)際值本身來進(jìn)行優(yōu)化計(jì)算佛舱,但遺傳算法是使用決策變量的某種形式的編碼作為運(yùn)算對(duì)象。這種對(duì)決策變量的編碼處理方式挨决,使得我們?cè)趦?yōu)化計(jì)算中可借鑒生物學(xué)中染色體和基因等概念请祖,可以模仿自然界中生物的遺傳和進(jìn)化激勵(lì),也可以很方便地應(yīng)用遺傳操作算子脖祈。

(2)直接以適應(yīng)度作為搜索信息肆捕。傳統(tǒng)的優(yōu)化算法不僅需要利用目標(biāo)函數(shù)值,而且搜索過程往往受目標(biāo)函數(shù)的連續(xù)性約束盖高,有可能還需要滿足“目標(biāo)函數(shù)的導(dǎo)數(shù)必須存在”的要求以確定搜索方向慎陵。遺傳算法僅使用由目標(biāo)函數(shù)值變換來的適應(yīng)度函數(shù)值就可確定進(jìn)一步的搜索范圍,無需目標(biāo)函數(shù)的導(dǎo)數(shù)值等其他輔助信息喻奥。直接利用目標(biāo)函數(shù)值或個(gè)體適應(yīng)度值也可以將搜索范圍集中到適應(yīng)度較高部分的搜索空間中席纽,從而提高搜索效率。

(3)使用多個(gè)點(diǎn)的搜索信息撞蚕,具有隱含并行性润梯。傳統(tǒng)的優(yōu)化算法往往是從解空間的一個(gè)初始點(diǎn)開始最優(yōu)解的迭代搜索過程。單個(gè)點(diǎn)所提供的搜索信息不多,所以搜索效率不高纺铭,還有可能陷入局部最優(yōu)解而停滯寇钉;遺傳算法從由很多個(gè)體組成的初始種群開始最優(yōu)解的搜索過程,而不是從單個(gè)個(gè)體開始搜索舶赔。對(duì)初始群體進(jìn)行的扫倡、選擇、交叉竟纳、變異等運(yùn)算撵溃,產(chǎn)生出新一代群體,其中包括了許多群體信息锥累。這些信息可以避免搜索一些不必要的點(diǎn)征懈,從而避免陷入局部最優(yōu),逐步逼近全局最優(yōu)解揩悄。

(4) 使用概率搜索而非確定性規(guī)則卖哎。傳統(tǒng)的優(yōu)化算法往往使用確定性的搜索方法,一個(gè)搜索點(diǎn)到另一個(gè)搜索點(diǎn)的轉(zhuǎn)移有確定的轉(zhuǎn)移方向和轉(zhuǎn)移關(guān)系删性,這種確定性可能使得搜索達(dá)不到最優(yōu)店亏娜,限制了算法的應(yīng)用范圍。遺傳算法是一種自適應(yīng)搜索技術(shù)蹬挺,其選擇维贺、交叉、變異等運(yùn)算都是以一種概率方式進(jìn)行的巴帮,增加了搜索過程的靈活性溯泣,而且能以較大概率收斂于最優(yōu)解,具有較好的全局優(yōu)化求解能力榕茧。但垃沦,交叉概率、變異概率等參數(shù)也會(huì)影響算法的搜索結(jié)果和搜索效率用押,所以如何選擇遺傳算法的參數(shù)在其應(yīng)用中是一個(gè)比較重要的問題肢簿。

綜上,由于遺傳算法的整體搜索策略和優(yōu)化搜索方式在計(jì)算時(shí)不依賴于梯度信息或其他輔助知識(shí)蜻拨,只需要求解影響搜索方向的目標(biāo)函數(shù)和相應(yīng)的適應(yīng)度函數(shù)池充,所以遺傳算法提供了一種求解復(fù)雜系統(tǒng)問題的通用框架。它不依賴于問題的具體領(lǐng)域缎讼,對(duì)問題的種類有很強(qiáng)的魯棒性收夸,所以廣泛應(yīng)用于各種領(lǐng)域,包括:函數(shù)優(yōu)化血崭、組合優(yōu)化生產(chǎn)調(diào)度問題卧惜、自動(dòng)控制

厘灼、機(jī)器人學(xué)、圖像處理(圖像恢復(fù)序苏、圖像邊緣特征提取…)手幢、人工生命捷凄、遺傳編程忱详、機(jī)器學(xué)習(xí)。


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

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


3.MATLAB部分代碼預(yù)覽

%參數(shù)初始化

Ta_num ?????????????= 2;%發(fā)送天線數(shù)目

Ra_num ?????????????= 2;%接收天線數(shù)目

%導(dǎo)頻

mod_type ???????????= 'QPSK';

IFFT_len ???????????= 64;

Carriers ???????????= 50;

bits_symbol ????????= 2;

symbols_per_carrier = 12;

%導(dǎo)頻間隔

interval ???????????= 5 ;

Np ?????????????????= ceil(Carriers/interval)+1;

N_number ???????????= Carriers*symbols_per_carrier*bits_symbol;

carriers ???????????= 1:Carriers+Np;

%保護(hù)間隔長(zhǎng)度

Cps ????????????????= 8; ????????????

SNR ????????????????= [-8:2:20]; ??

%蒙特卡洛的仿真思路跺涤,每次SNR循環(huán)多次計(jì)算平均

Stimes ?????????????= 100;

X ?= zeros(1,N_number);

X1 = [];

X2 = [];

X3 = [];

X4 = [];

X5 = [];

X6 = [];

X7 = [];

Y1 = [];

Y2 = [];

Y3 = [];

Y4 = [];

Y5 = [];

Y6 = [];

Y7 = [];

Y70 ??= [];

Y7_ZJ = [];

XX ??????= zeros(1,N_number);

dif_bit ?= zeros(1,N_number);


for tt = 1:20

tt

%產(chǎn)生二進(jìn)制隨即序列

X ??????????????????????????= func_signal_gen(N_number,Carriers);

%QPSK調(diào)制

[X1,X_initial] ?????????????= func_QPSK(X,N_number);

%導(dǎo)頻

[pilot,training_symbols] ???= func_pilot(symbols_per_carrier,Np,interval,Carriers);

%串并

X2 ?????????????????????????= reshape(X1,symbols_per_carrier,Carriers);

%插入導(dǎo)頻

[X3,signal] ????????????????= func_pilot_insert(X2,pilot,Carriers,Np,training_symbols);

%IFFT

IFFT_modulation ????????????= zeros(symbols_per_carrier,IFFT_len);

IFFT_modulation(:,carriers) = X3;

X4 ?????????????????????????= ifft(IFFT_modulation,IFFT_len,2);

%加循環(huán)前綴

X6 ?????????????????????????= func_cp(X4,symbols_per_carrier,IFFT_len,Cps);

%并串

X7 ?????????????????????????= reshape(X6.',1,symbols_per_carrier*(IFFT_len+Cps));

%信道

Tx_data ????????????????????= func_multipath_channel(X7,Carriers,Ta_num,Ra_num);

%設(shè)置由中繼節(jié)點(diǎn)轉(zhuǎn)換的信號(hào)

%如果是多個(gè)中繼匈睁,那么選擇功率最大的一個(gè),因此桶错,本質(zhì)就是選擇計(jì)算一個(gè)中繼點(diǎn)

%所以這里就設(shè)置一個(gè)中繼點(diǎn)來計(jì)算

Tx_data_ZJ ?????????????????= func_multipath_channel_DJ(X7,Carriers,Ta_num,Ra_num);

%高斯白噪聲

Error_ber ?= [];

for snr_db = SNR

snr_db

% ????????RandStream.setDefaultStream(RandStream('mt19937ar','seed',tt));

code_power ?= 0;

code_power ?= [norm(Tx_data)]^2/(length(Tx_data));

bit_power ??= code_power/bits_symbol;

noise_power = 10*log10((bit_power/(10^(snr_db/10))));

noise1 ?????= wgn(1,length(Tx_data),noise_power,'complex');

% ????????RandStream.setDefaultStream(RandStream('mt19937ar','seed',tt+1));

code_power ?= 0;

code_power ?= [norm(Tx_data)]^2/(length(Tx_data));

bit_power ??= code_power/bits_symbol;

noise_power = 10*log10((bit_power/(10^(snr_db/10))));

noise2 ?????= wgn(1,length(Tx_data),noise_power,'complex'); ?

%最后接收到的信號(hào)

Y70 ????????= Tx_data+noise1;

%中繼接收到的信號(hào)

Y7_ZJ ??????= Tx_data_ZJ+noise2;

%MRC接收

Y7 ?????????= Y70+Y7_ZJ;

%串并變換

Y6 ?????????= reshape(Y7,IFFT_len+Cps,symbols_per_carrier).';

%去保護(hù)間隔

Y5 ?????????= func_cp_del(Y6,symbols_per_carrier,IFFT_len,Cps);

%FFT航唆,傅立葉變換

Y4 ?????????= fft(Y5,IFFT_len,2);

Y3 ?????????= Y4(:,carriers);

%進(jìn)行信道估計(jì)

%實(shí)部

Y2_real ????= func_RBF_channel_est(real(Y3),signal,pilot,symbols_per_carrier,Np,real(training_symbols),Carriers,interval);

%虛部

Y2_imag ????= func_RBF_channel_est(imag(Y3),signal,pilot,symbols_per_carrier,Np,imag(training_symbols),Carriers,interval);

Y2 ?????????= Y2_real +sqrt(-1)*Y2_imag;

YY1 ????????= reshape(Y2,N_number/bits_symbol,1);

%QPSK解調(diào)

[y_real1,y_image1,y_re1,y_im1] = func_deqpsk(YY1);

r01 = [];

r11 = [];

for k=1:length(y_re1);

r11 = [r11,[y_re1(k),y_im1(k)]];

end ????

dif_bit1 ???????= round(X_initial - r11);

ber_snr1=0;

for k=1:N_number;

if dif_bit1(k)~=0;

ber_snr1=ber_snr1+1;

end

end

Error_ber = [Error_ber,ber_snr1];

end

BERs(:,tt) = Error_ber./N_number;

end

Ber_avg = mean(BERs,2);

01_083_m

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市院刁,隨后出現(xiàn)的幾起案子糯钙,更是在濱河造成了極大的恐慌,老刑警劉巖退腥,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件任岸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡狡刘,警方通過查閱死者的電腦和手機(jī)享潜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗅蔬,“玉大人剑按,你說我怎么就攤上這事±绞酰” “怎么了艺蝴?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鸟废。 經(jīng)常有香客問我吴趴,道長(zhǎng),這世上最難降的妖魔是什么侮攀? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任锣枝,我火速辦了婚禮,結(jié)果婚禮上兰英,老公的妹妹穿的比我還像新娘撇叁。我一直安慰自己,他們只是感情好畦贸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布陨闹。 她就那樣靜靜地躺著楞捂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪趋厉。 梳的紋絲不亂的頭發(fā)上寨闹,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音君账,去河邊找鬼繁堡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛乡数,可吹牛的內(nèi)容都是我干的椭蹄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼净赴,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼绳矩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起玖翅,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤翼馆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后金度,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體应媚,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年审姓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了珍特。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡魔吐,死狀恐怖扎筒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情酬姆,我是刑警寧澤嗜桌,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站辞色,受9級(jí)特大地震影響骨宠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜相满,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一层亿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧立美,春花似錦匿又、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裕偿。三九已至,卻和暖如春痛单,著一層夾襖步出監(jiān)牢的瞬間嘿棘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工旭绒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸟妙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓快压,卻偏偏與公主長(zhǎng)得像圆仔,于是被迫代替她去往敵國(guó)和親垃瞧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔫劣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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