MIMO-OFDM系統的接收信號是多個發射天線發送信號的衰落與加性噪聲的線性疊加,若采用通常SISO-OFDM系統或MIMO系統的估計算法估計信道,將會帶來很大的估計誤差。出于設計實現的考慮,本文主要研究理論相對比較成熟的慢變環境下基于訓練序列的MIMO-OFDM系統的信道估計算法。本章將主要討論MIMO-OFDM系統特殊訓練序列的設計和信道估計算法的選擇。
多天線系統的信道估計算法同單天線系統的相比具有更大的復雜性,因為接收信號是多個發射信號的疊加信號,這些發射信號同時從多個發射天線上發射出來,幾乎同步到達任一接收天線。因此要從一個疊加信號中正確的識別出多個發射信號,需要信道估計算法能估計出各發射天線到同一接收天線之間多個并行信道的信道特性。而任一發射天線到任一接收天線之間的信道估計可參考單天線系統的算法。
信道估計算法主要可以分為兩種:盲估計算法和非盲估計算法。盲信道估計算法不需要在發送信息中插入訓練序列,節約了帶寬。盲估計算法的實現需要利用發送信息內包含的統計信息。這通常需要在接收端對接收信號進行復雜的數學運算,算法的運算量一般都很大,不適合應用于對時延要求比較高的實時系統。非盲估計算法是在發送信號中插入收發兩端都事先己知的信息,接收端在接收到該已知信息之后,由該信息的幅度、載頻或相位變化來估計信道對發送信息所造成的衰落影響。算法應用廣泛,幾乎可以應用于所有的無線通信系統。
輸入信號經復用器分解成n個長度相同的數據流,然后進行獨立地編碼和調制,因此它不是基于發射分集的。這些編碼器可以是二進制的卷積編碼器,也可以是不經過任何編碼直接輸出。下面就來重點介紹一下這個系統的MATLAB的實現方法。
for k=1:N
Tc=c(k)*cos(2*pi*fd(k)*t+theta(k))+Tc;
Ts=c(k)*sin(2*pi*fd(k)*t+theta(k))+Ts;
end
r=ones(mt*mr,1)*(Tc.^2+Ts.^2).^0.5;
這段代碼主要用來產生所需要的信號,分別有SIN,COS兩個分量。
for tx=1:mt
data_b=0*round(rand(4,nse));
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
data_time_temp=ifft(data_qam(tx,:));
data_time(tx,:)=[data_time_temp(end-ng+1:end) data_time_temp];
end
這段代碼主要用來模擬MIMO-OFDM系統的發送部分,首先模擬實際情況生成一個隨機信號,然后將隨機信號通過QAM調制再經過IFFT變化得到我們所要的信號。這個過程就是上述系統結果的描述。
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;
noise=(randn(size(output(rx,:)))+i*randn(size(output(rx,:))))*sqrt(np);
output(rx,:)=output(rx,:)+noise;
data_out(rx,:)=fft(output(rx,:));
end
這段代碼主要用來模擬MIMO-OFDM系統的接收部分。由于系統工作的時候,肯定會有噪聲的影響,所以只有通過模擬一個系統的噪聲才能正確的模擬系統的工作性。這里,我們通過產生一個隨機數和原始的信號進行疊加來模擬我們所接收到的信號。
以上,我們模擬MIMO-OFDM系統的發送和接收模塊,下面就來建立一個系統的信道估計模塊:具體代碼如下所示:
for tx=1:mt
for rx=1:mr
H_est_temp=data_out(rx,pilot+tx-1)./data_qam(tx,pilot+tx-1);
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)]);
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
通過這個方法,我們就可以做系統的信道估計了,此外還能計算系統的平均誤差檢測,從而驗證系統的正確性。
審核編輯:黃飛
-
ofdm
+關注
關注
6文章
349瀏覽量
57001 -
MIMO
+關注
關注
12文章
594瀏覽量
76827 -
復用器
+關注
關注
1文章
707瀏覽量
28308 -
天線系統
+關注
關注
1文章
50瀏覽量
12245 -
卷積編碼器
+關注
關注
0文章
6瀏覽量
2434
發布評論請先 登錄
相關推薦
評論