目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码
MIMO技术指在发射端和接收端分别使用多个发射天线和接收天线,使信号通过发射端与接收端的多个天线传送和接收,从而改善通信质量。它能充分利用空间资源,通过多个天线实现多发多收,在不增加频谱资源和天线发射功率的情况下,可以成倍地提高系统信道容量,显示出明显的优势、被视为下一代移动通信的核心技术。
多输入多输出(MIMO)和正交频分复用(OFDM)是LTE的两大核心技术。多输入多输出(MIMO)技术利用各种分集技术带来的分集增益可以提高系统的信道容量、数据的传输速率以及系统的频谱利用率,这些都是在不增加系统带宽和发射功率的情况下取得的;正交频分复用(OFDM)技术是多载波调制技术的一种,其物理信道是由若干个并行的正交子信道组成,因此可有效地对抗频率选择性衰落,同时通过插入循环前缀(CP)可以有效消除由多径而引起的符号间干扰(ISI)。由于多输入多输出(MIMO)在提高系统容量和正交频分复用(OFDM)在对抗多径衰落方面的优势,基于两者结合的MIMO-OFDM系统已经引起了广泛的关注。 信道估计算法和信号检测算法是MIMO-OFDM系统的关键技术。其中信道估计算法对MIMO-OFDM系统接收端的相干解调和空时检测起着至关重要的作用,信道估计的准确性将影响系统的整体性能。
2 运行结果
主函数部分代码:
%% Linear Minimum Mean Square Error % System Parameters % FFT N = 128 % M = 2 clear all; clc % Load Function libraries QPSK = QPSK_lib; OFDM_lib; %% Data % Load text file fid = fopen('usdeclar.txt'); cAr = fread(fid,inf); % Read as ASCII decimal characters fclose(fid); % % % Load 32 char string % load('Test_Strings.mat','QPSKstr'); % This will allow for a single OFDM char % cAr = double(QPSKstr); % %% Convert to binary % binDat = Binary_cnvrt(cAr); %binDat = ones(1,69480); %% Map to QPSK symbols symDat = QPSK.bin2symb(binDat,1); %% LMMSE Encoding % |s1 s3| % |s2 s4| a = reshape(symDat,2,length(symDat)/2); %% Split into Mt channels and perform IDFT N = 128; ch1 = idft(a(1,:),N); ch2 = idft(a(2,:),N); %% Parallel to Serial for each channel chDim = size(ch1); ch1 = reshape(ch1,1,chDim(1)*chDim(2)); ch2 = reshape(ch2,1,chDim(1)*chDim(2)); TX_2 = [ch1;ch2]; %% Channel Mt = 2; Mr = 2; Pt = mean(mean(TX_2.'.*conj(TX_2.'))); % Es/Mt %% SNR_dB = 20; SNR = 10^(SNR_dB/10); H = sqrt(1/2).*(randn(Mr,Mt)+1i*randn(Mr,Mt)); % Channel Coeff %H = eye(Mr,Mt); Pn = Pt/SNR; % load('ZF_n.mat'); n = sqrt(Pn/2).*(randn(Mr,length(ch1))+1i.*randn(Mr,length(ch1))); N0 = mean(mean(n.'.*conj(n.'))); %% Receiver RX_2 = H*TX_2+n; %% Serial to Parallel y1 = reshape(RX_2(1,:),chDim(1),chDim(2)); y2 = reshape(RX_2(2,:),chDim(1),chDim(2)); %% DFT ySym1 = dft(y1,chDim(1)); ySym2 = dft(y2,chDim(1)); ySym1 = ySym1(1:length(symDat)/2); % Remove extra data added from idft from TX ySym2 = ySym2(1:length(symDat)/2); %% LMMSE Decoding v2 = Mt/SNR; % Mt*N0/Es g = (H*H'+v2*eye(Mt))\H; z = g'*[ySym1; ySym2]; xh = reshape(z,1,length(ySym1)*2); % Estimation of x %% Demapper % De-map symbols and convert to binary [bin2, symDat2] = QPSK.sym2bin(xh); % Show Received symbol constellation close all figure(2) QPSK.Constellation(xh, SNR_dB); %% Calculate SER & BER SER = mean(symDat2 ~= symDat); BER = mean(binDat ~= bin2);
[1]申京. MIMO-OFDM系统中信道估计及信号检测算法的研究[D].北京邮电大学,2012.
部分理论引用网络文献,若有侵权联系博主删除。