OFDM信道估计论文IP大作业概要文档格式.docx
《OFDM信道估计论文IP大作业概要文档格式.docx》由会员分享,可在线阅读,更多相关《OFDM信道估计论文IP大作业概要文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
块状类型、梳状类型和格状类型[4]。
2.1.1块状类型
图2.1所示为块状类型的导频排列。
在这种类型中,周期性地发射OFDM符号以进行信道估计,其中每个导频符号上的所有子载波都用做导频。
利用这些导频进行时域插值,沿时间轴估计信道,令
表示导频符号的周期。
为跟踪时变信道特性,导频插入周期必须与相干时间保持一致,导频符号的周期必须满足:
(2-1)
其中,
为多普勒频移。
图2.1块状类型的导频排列图2.2梳状类型的导频排列图
由于导频是周期性地插入导频符号所有的子载波中,所以块状导频的排列适用于频率选择性信道,而不适用于快衰落信道。
2.1.2梳状类型
图2.2所示为梳状类型的导频排列。
在这种类型中,在每个OFDM符号的子载波上周期性地放置导频信号,然后利用这些导频信号进行频域插值,沿频率轴进行信道估计。
令
为导频在频率上的周期。
为了跟踪频率选择性信道的特性,放置的导频符号的频率必须与相干带宽保持一致。
以进行信道估计,其中每个导频符号上的所有子载波都用做导频。
(2-2)
其中
为最大时延扩展。
与块状类型的导频排列不同,梳状类型的导频排列适用于快衰落信道,而不是频率选择性信道。
2.1.3格状类型
图2.3所示为格状类型的导频排列。
在这种类型中,以给定的周期沿时间轴和频率轴两个方向插入导频。
导频分散在时间和频率轴上,使信道估计在时域和频域上的差值更为便利。
和
分别表示导频符号在时间和频率上的周期。
为了跟踪信道的时变和频率选择特性,导频符号的排列必须同时满足:
(2-3)
图2.3梳状类型的导频排列
格状导频可以很好地跟踪时变和频率选择性信道。
2.2信道估计算法
最小二乘(LS)和最小均方误差(MMSE)技术被广泛应用于信道估计。
假设所有子信道是正交的,没有ICI,我们将N个子载波上的导频符号表示成矩阵形式:
(2-4)
为第
个子载波上的符号。
给定第
个子载波的信道增益为
,接收到的训练符号为
,噪声为
,
为
的信道估计,则有,
(2-5)
2.2.1LS信道估计
为得到信道估计
,LS信道估计需要最小化下面的代价函数:
(2-6)
通过最小化代价函数,得到LS信道估计的解为:
(2-7)
LS信道估计的均方误差(MSE)为:
(2-8)
由式(2-8)可以看出LS估计增强了噪声。
2.2.2MMSE信道估计
MMSE信道估计的核心思想是使信道估计的均方误差最小化。
信道估计的均方误差可以表示为:
(2-9)
此处
是对LS的估计信道进行加权得到的,即:
(2-10)
为加权矩阵。
由于估计误差向量
与
正交,即:
(2-11)
由式(2-11)可得:
(2-12)
以上基于导频的信道估计算法给出的仅是导频插入点的信道状态信息,为获取全部的信道状态信息,还需要进一步的插值算法处理,常用的插值算法有线性插值、二次插值、三次样条插值及高斯插值等。
实际系统中这些插值算法的实现靠滤波器完成。
3仿真及结果
该节对上节所介绍的信道估计算法进行了仿真分析,并研究了不同插值算法下,使用LS信道估计算法的系统误码性能。
具体仿真环境及参数设置如表3.1所示。
表3.1仿真环境及参数设置
带宽
1MHz
调制方式
BPSK
子载波个数
64
最大频移
70Hz
导频图案
块状
信道多径数
5
信道模型
多径衰落信道
CP数目
16
性能衡量指标
均方误差(MSE)和误码率(BER)
图3.1不同信道估计算法下的均方误差
图3.1是对LS和MMSE估计算法的均方误差的对比分析。
由于LS算法在进行信道估计时没有考虑加性噪声的影响,造成了信道估计结果偏差较大。
从图中可以看出,在取得相同估计性能的条件下,MMSE算法对信噪比的要求比LS算法要低将近5dB。
图3.2不同信道估计算法下的误码性能
图3.2是基于块状导频方案下的信道估计算法的误符号性能。
由于MMSE算法较LS算法可以更加准确的跟踪信道的变化,从而保证的接收信息的可以更加准确的获取出来,误符号性能优于LS算法。
图3.3不同插值算法下的误码性能
图3.3是对不同插值算法下的误码性能的对比分析。
从仿真结果可以看出高阶插值算法带给系统更好的误符号性能。
总结
本文首先介绍了OFDM中的信道估计算法,重点研究了LS和MMSE基于导频的信道估计算法,给出了两种算法的算法设计,并分析比较了算法性能。
最后对两种算法的性能进行了MATLAB仿真,仿真结果表明MMSE算法较LS算法可以更加准确的跟踪信道的变化,从而保证更加准确地估计出信道信息,而高阶的插值算法能有效提高系统误码性能。
参考文献
[1]高蕊.LTE物理层上行关键技术研究.西安:
西安科技大学.2009:
11~14
[2]王东.基于OFDM系统的信道估计算法的研究.西安:
西安电子科技大学.2008
[3]张继东,郑宝玉..基于导频的OFDM信道估计及其研究进展.通信学报.2003.11
[4]孙锴,黄威译.MIMO-OFDM无线通信技术及MATLAB实现.北京:
电子工业出版社,2013年6月
附录
仿真代码
(1)对比MSE性能仿真代码:
clc;
clearall;
%产生一个原始的训练序列
%选用BPSK调制,符号:
+1/-1
X=zeros(64,64);
d=rand(64,1);
fori=1:
if(d(i)>
=0.5)
d(i)=+1;
else
d(i)=-1;
end
end
X(i,i)=d(i);
%计算矩阵G(信道矩阵)
tau=[0.53.5];
%Thefractionallyspacedtaps..
%GenerationoftheGmatrix...
fork=1:
s=0;
form=1:
2
s=s+(exp(-j*pi*(1/64)*(k+63*tau(m)))*((sin(pi*tau(m))/sin(pi*(1/64)*(tau(m)-k)))));
%Gothroughtheabovecitedpaperforthetheorybehindtheformula
g(k)=s/sqrt(64);
G=g'
;
%Thus,thechannelvectorisevaluated..
H=fft(G);
%Inthefreqdomain..
u=rand(64,64);
F=fft(u)*inv(u);
%'
F'
isthetwiddlefactormatrix..
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Evaluationoftheautocovariancematrix(自协方差矩阵)ofG-Rgg
gg=zeros(64,64);
gg(i,i)=G(i);
gg_myu=sum(gg,1)/64;
gg_mid=gg-gg_myu(ones(64,1),:
);
sum_gg_mid=sum(gg_mid,1);
Rgg=(gg_mid'
*gg_mid-(sum_gg_mid'
*sum_gg_mid)/64)/(64-1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Runningforadozentrialstotryandaverageouttheresults..
form=1:
12
forn=1:
SNR_send=2*n;
XFG=X*H;
n1=ones(64,1);
n1=n1*0.000000000000000001i;
%Justtoensurethatthefunctionawgnadds'
complexgaussiannoise'
..
noise=awgn(n1,SNR_send);
variance=var(noise);
N=fft(noise);
Y=XFG+N;
%EvaluatingthemeansquarederrorfortheLSestimator..
mean_squared_error_ls=LS_MSE_calc(X,H,Y);
%EvaluatingthemeansquarederrorfortheMMSEestimator..
mean_squared_error_mmse=MMSE_MSE_calc(X,H,Y,Rgg,variance);
SNR(n)=SNR_send;
mmse_mse(m,n)=mean_squared_error_mmse;
ls_mse(m,n)=mean_squared_error_ls;
end;
end;
ls_mse
mmse_mse
mmse_mse_ave=mean(mmse_mse);
ls_mse_ave=mean(ls_mse);
%作图:
semilogy(SNR,mmse_mse_ave,'
-r*'
holdon;
semilogy(SNR,ls_mse_ave,'
-b*'
gridon;
xlabel('
SNR(dB)'
ylabel('
MSE-¾
ù
·
½
Î
ó
²
î
'
legend('
mmse-mse-ave'
'
ls-mse-ave'
title('
SNRandsquareMSEforanOFDMsystemwithMMSE/LSestimator'
(2)对比SER仿真代码:
%Generationofanaivetrainingsequence..
%AssumingBPSKmodulation...symbols:
fori=1:
%CalculationofG[ThechannelMatrix]
%Thechannnelis...
tau=[0.53.5];
%Thefractionallyspacedtaps..
g(k)=s/sqrt(64);
%Thus,thechannelvectorisevaluated..
%Inthefreqdomain..
XFG=X*H;
n1=ones(64,1);
n1=n1*0.000000000000000001i;
noise=awgn(n1,8);
%Assumingthe'
channellearning'
ishappeningat8db..
variance=var(noise);
N=fft(noise);
Y=XFG+N;
%EvaluationoftheautocovariancematrixofG-Rgg
%OK..Nowthatwehavetheingredientsready,letsmoveonandevaluatetheestimatedchannelsbytheuseoftheLSandtheMMSEalgorithms..
%EVALUATIONOFHls
%Hmmse=inv(X)*Y;
H_ls=(inv(X))*Y;
Hls=zeros(64,64);
Hls(i,i)=H_ls(i);
%EVALUATIONOFHmmse
%Hmmse=F*Rgg*inv(Rgy)*Y;
%The64X64twiddlefactormatrix..
I=eye(64,64);
Rgy=Rgg*F'
*X'
Ryy=X*F*Rgg*F'
*X'
+variance*I;
yy(i,i)=Y(i);
Gmmse=Rgy*inv(Ryy)*Y;
H_mmse=fft(Gmmse);
Hmmse(i,i)=H_mmse(i);
%Fine..thechannelshavebeenestimated,nowisthetimeforrealtimesimulations..
forn=1:
6
SNR_send=2*n;
error_count_ls=0;
%Cleartheerror_count..
error_count_mmse=0;
%Cleartheerror_count..
%Sendingaround1000datavectorsthroughthechannel
%Roughlylike1000simulationsperSNRreading..
forc=1:
1000
%GenerateRandomData[i/pmatrix..]
%Letitgothroughtheactualchannel...
noise=awgn(n1,SNR_send);
%o/pgotbythereceiver...
%Thereceiverbegins....
%I:
LSESTIMATORBASEDRECEIVER:
%I(k)representsthedecisionmatrix..