> 文章列表 > MIMO-OFDM系统中信道估计的快速谐波搜索技术(Matlab代码实现)

MIMO-OFDM系统中信道估计的快速谐波搜索技术(Matlab代码实现)

MIMO-OFDM系统中信道估计的快速谐波搜索技术(Matlab代码实现)

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

目前,由OFDM技术与空时编码技术相融合而成的MIMO-OFDM技术已经引起了通信领域的广泛关注和研究.在无线通信系统中,MIMO-OFDM技术不仅能够有效地增强数据传输速率,增加系统传输容量,而且能有效地抑制多径衰落和干扰.信道估计问题是MIMO-OFDM系统的一项关键技术问题,因此,本论文针对MIMO-OFDM系统的信道估计问题展开研究. 

📚2 运行结果

主函数部分代码:

clc;
clear all;
close all;
​
global ofdm chan
global xb 
​%======================================================================%                               Inputs%======================================================================% Input parameters are (if not set the defalt value will be set)% ofdm.Nb      = 1e2;                 % number of blocks% ofdm.Nt      = 2;                   % number of transmit antennas    % ofdm.Nr      = 4;                   % number of receive antennas% ofdm.K       = 128;                 % number of subcarriers    % ofdm.G       = 1/4;                 % Guard interval percentage    % ofdm.Mod     = 4;                   % QPSK Modulation% ofdm.PSpace  = 1;                   % subcarrier space between two pilots% channel parameters% chan.SNR_dB  = 15;                  % signal to noise ratio% chan.L       = 6;                   % number of taps in each transmit-receive antenna% control parameters% ofdm.ifDemodulateData = 1;          % (1,0) if 1, the code demodulates the transmitted via LS data and calculates the BER% ofdm.ifDisplayResults = 1;          % (1,0) if 1, display the results in the command window%======================================================================%                               Outputs%======================================================================% The main outputs are listed below% chan.MSE_Theory           % Minimum squared error of LSE channel estimation in theory% chan.MSE_Simulation       % Minimum squared error of LSE channel estimation in simulations% ofdm.BER                  % Bit Error Rate if ofdm.ifDemodulateData = 1
​SNR_dBV     = 3:3:15;            % vector of SNR values in dBSNR_dBVL    = length(SNR_dBV);   % length of SNR vectornMonteCarlo = 5;%e2;            % number of Monte Carlo to find the value of each point in the figureofdmIn.Nt   = 2;                 % number of transmit antennasofdmIn.Nr   = 3;                 % number of recieve antennasofdmIn.ifDisplayResults    = 0;  % turn off the display% other parameters of ofdm can also be set. see help of MIMO_OFDM_LSE_CHAN_EST
%% OutputsMSE_CHAN_SIM = zeros(nMonteCarlo,SNR_dBVL);     % MSE of LSE channel estimation in simulationMSE_CHAN_THR = zeros(nMonteCarlo,SNR_dBVL);     % MSE of LSE channel estimation in theoryMSE_CHAN_BER = zeros(nMonteCarlo,SNR_dBVL);     % BER of the MIMO OFDM with LSE channel estimation%% Parameters% system parameters (independent)ofdm.Nb      = 1e2;                 % number of blocksofdm.Nt      = 2;                   % number of transmit antenna    ofdm.Nr      = 4;                   % number of receive antennaofdm.K       = 128;                 % number of subcarriers    ofdm.G       = 1/4;                 % Guard interval percentage    ofdm.Mod     = 4;                   % QPSK Modulation    ofdm.PSpace  = 1;                   % pilot space between two pilots% channel parameterschan.SNR_dB  = 15;                  % signal to noise ratiochan.L       = 6;                   % number of channel taps between each transmit-receive antenna% control parametersofdm.ifDemodulateData = 1;          % (1,0) if 1, the code demodulates the transmitted data via LS algorithm, and calculates the BERofdm.ifDisplayResults = 1;          % (1,0) if 1, displays the results in the command window​% dependent parametersofdm.PPos    = 1:(ofdm.PSpace+1):ofdm.K;    % OFDM pilot positionssofdm.PL      = length(ofdm.PPos);           % Length of pilot subcarriersofdm.DPos    = setxor(1:ofdm.K,ofdm.PPos);  % OFDM data positionsofdm.DL      = length(ofdm.DPos);           % Length of data subcarriersofdm.BER     = 0;                           % set the BER to zerochan.sigma   = sqrt(10^(-0.1*chan.SNR_dB)); % noise power% normalization of the energy for the constelation        temp         = 0:ofdm.Mod-1;           % possible symbolstemp         = qammod(temp,ofdm.Mod);  % modulated symbolstemp         = abs(temp).^2;           % power of each point in the constellationtemp         = mean(temp);             % average energy of the constellationofdm.ModNorm = 1/sqrt(temp);           % normaliztion factor%% Data generation% symbol generationofdm.d      = randi(ofdm.Mod,ofdm.DL,ofdm.Nb,ofdm.Nt)-1;   % generation of a DL by nB by Nt matrix of data symbolsfigure,stem(ofdm.d(:,:,1))xlabel('Sample')ylabel('Data Gen')%% data Modulationofdm.dMod   = zeros(ofdm.K,ofdm.Nb,ofdm.Nt);    % memory allocation for the ofdm blocks transmitted from each Tx antennaif ofdm.DL > 0for nt = 1 : ofdm.Ntofdm.dMod(ofdm.DPos,:,nt) = ofdm.ModNorm*qammod(ofdm.d(:,:,nt),ofdm.Mod);endend
​

🎉3 参考文献

​[1]曹松景. MIMO-OFDM系统中信道估计方法的研究[D]. 重庆大学.

点击文章左下角【阅读全文】

部分理论引用网络文献,若有侵权联系博主删除。