m基于MIMO通信系统的半盲信道估计算法matlab仿真,包括QPSK,ML检测,Turbo编译码等

1.算法仿真效果

matlab2022a仿真结果如下:



2.算法涉及理论知识概要

所谓信道估计,就是从接收数据中将假定的某个信道模型的模型参数估计出来的过程。如果信道是线性的话,那么信道估计就是对系统冲激响应进行估计。需强调的是信道估计是信道对输入信号影响的一种数学表示,而“好”的信道估计则是使得某种估计误差最小化的估计算法。

无线通信系统的性能很大程度上受到无线信道的影响,如阴影衰落和频率选择性衰落等等,使得发射机和接收机之间的传播路径非常复杂。无线信道并不像有线信道固定并可预见,而是具有很大的随机性,这就对接收机的设计提出了很大的挑战。在OFDM系统的相干检测中需要对信道进行估计,信道估计的精度将直接影响整个系统的性能。为了能在接收端准确的恢复发射端的发送信号,人们采用各种措施来抵抗多径效应对传输信号的影响,信道估计技术的实现需要知道无线信道的信息,如信道的阶数、多普勒频移和多径时延或者信道的冲激响应等参数。因此,信道参数估计是实现无线通信系统的一项关键技术。能否获得详细的信道信息,从而在接收端正确地解调出发射信号,是衡量一个无线通信系统性能的重要指标。因此,对于信道参数估计算法的研究是一项有重要意义的工作。


信道估计算法从输入数据的类型来分,可以划分为时域和频域两大类方法。频域方法主要针对多载波系统;时域方法适用于所有单载波和多载波系统,其借助于参考信号或发送数据的统计特性,估计衰落信道中各多径分量的衰落系数。从信道估计算法先验信息的角度,则可分为以下三类:

(1) 基于参考信号的估计。该类算法按一定估计准则确定待估参数,或者按某些准则进行逐步跟踪和调整待估参数的估计值。其特点是需要借助参考信号,即导频或训练序列。基于训练序列和导频序列的估计统称为基于参考信号的估计算法。

基于训练序列的信道估计算法适用于突发传输方式的系统。通过发送已知的训练序列,在接收端进行初始的信道估计,当发送有用的信息数据时,利用初始的信道估计结果进行一个判决更新,完成实时的信道估计。基于导频符号的信道估计适用于连续传输的系统。通过在发送的有用数据中插入已知的导频符号,可以得到导频位置的信道估计结果;接着利用导频位置的信道估计结果,通过内插得到有用数据位置的信道估计结果,完成信道估计

(2) 盲估计。利用调制信号本身固有的、与具体承载信息比特无关的一些特征,或是采用判决反馈的方法来进行信道估计的方法。

(3) 半盲估计。结合盲估计与基于训练序列估计这两种方法优点的信道估计方法。

一般来讲,通过设计训练序列或在数据中周期性地插入导频符号来进行估计的方法比较常用。而盲估计和半盲信道估计算法无需或者需要较短的训练序列,频谱效率高,因此获得了广泛的研究。但是一般盲估计和半盲估计方法的计算复杂度较高,且可能出现相位模糊(基于子空间的方法)、误差传播(如判决反馈类方法)、收敛慢或陷入局部极小等问题,需要较长的观察数据,这在一定程度上限制了它们的实用性。









3.MATLAB核心程序

M            = 10;

%Loop until the job is killed or until the SNR or BER target is reached.


MTKL         = 200;

Berrs1       = zeros(M,MTKL);

Berrs2       = zeros(M,MTKL);

for mk = 1:MTKL

mk

MSE  = [];

MCE  = [];

for NT = NTS

SNR         = SNRset;

%Convert from SNR (in dB) to noise power spectral density.

N0          = 1/(10^(SNR/10));

error_count = 0;

bit_count   = 0;

%semi-blind channel estimation

H_length    = 1;                     

fm          = 50;                          

fs          = 1e4;                        

B           = fir1(1023,fm/(fs/2));   

n_I         = randn(nTx*nRx,H_length);

n_Q         = randn(nTx*nRx,H_length);

a_I         = filter2(B,n_I);

a_Q         = filter2(B,n_Q);


Rayleigh_fading = 1/sqrt(2)*[a_I+j*a_Q];

H               = reshape(Rayleigh_fading,[nRx,nTx,H_length]);

iteration_index = 0;

ii              = 1;

%generating the training bits

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


n                = 1/sqrt(2)*[randn(nRx,NT(ii)) + j*randn(nRx,NT(ii))];                  

%received training signal Y

Y                = H*training_block+10^(-SNR/20)*n;

%Least square channel estimation

H_hat            = Y*training_block'*inv(training_block*training_block');


number_iteration = M;

H_updated_hat    = H_hat;   


A     = [];

J     = [];

S_Hat = [];

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

tmps                 = abs(H_updated_hat-H);

MSE(iteration_index) = mse(tmps(:));

MCE(iteration_index) =(1/(nTx*nRx))*sum(sum((abs(H_updated_hat-H).^2)));

end

end

Berrs1(:,mk) = MSE;

Berrs2(:,mk) = MCE;

end

for i = 1:M

tmp1      = Berrs1(i,:);

tmp2      = Berrs2(i,:);

INDX1 = [];

INDX2 = [];

for j = 1:length(tmp1)

if isnan(tmp1(j)) == 1

INDX1 = [INDX1,j];

end

if tmp1(j) > 1000

INDX1 = [INDX1,j];

end

end

for j = 1:length(tmp2)

if isnan(tmp2(j)) == 1

INDX2 = [INDX2,j];

end

if tmp2(j) > 1000

INDX2 = [INDX2,j];

end

end    

tmp1(INDX1) = [];

tmp2(INDX2) = [];

Bersf1(i) = sqrt(mean(tmp1));

Bersf2(i) = mean(tmp2);

end

figure;        

semilogy(1:M,Bersf1,'b-o');

xlabel('number of iterations');

ylabel('MSE');

grid on


figure;        

semilogy(1:M,Bersf2,'b-o');

xlabel('number of iterations');

ylabel('MCE');

grid on

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容