ls估计 matlab,求改正LS和LMMSE算法的matlab程序,。

这段代码展示了在无线通信环境中,使用最小均方误差(LMMSE)和最小二乘(LS)方法进行信道估计的MATLAB实现。输入参数包括输入信号、导频间隔、导频序列和导频数量等。LMMSE算法考虑了信道的多径衰落特性,通过建立信道相关矩阵进行估计。然而,程序在运行时遇到了问题,作者寻求帮助以解决无法正常运行的状况。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

function output=ls_estimation(input,pilot_inter,pilot_sequence,pilot_num);

[N,NL]=size(input);

output=zeros(N,NL-pilot_num);

i=1;

count=0;

while i<=NL

Hi=input(:,i)./pilot_sequence;

count=count+1;

if count*pilot_inter<=(NL-pilot_num)

for j=((count-1)*pilot_inter+1):count*pilot_inter

output(:,j)=input(:,(i+j-(count-1)*pilot_inter))./Hi;

end

else

for j=((count-1)*pilot_inter+1):(NL-pilot_num)

output(:,j)=input(:,(i+j-(count-1)*pilot_inter))./Hi;

end

end

i=i+pilot_inter+1;

end

这是LS的

function output=lmmse_estimation(input,pilot_inter,pilot_sequence,pilot_num,trms,t_max,snr);

%trms为多经信道的平均延时,t_max为最大延时,此处所有的时间都是已经对采样间隔做了归一化后的结果

beta=17/9;

[N,NL]=size(input);

Rhh=zeros(N,N);

for k=1:N

for l=1:N

Rhh(k,l)=(1-exp((-1)*t_max*((1/trms)+j*2*pi*(k-l)/N)))./(trms*(1-exp((-1)*t_max/trms))*((1/trms)+j*2*pi*(k-l)/N));

end

end

output=zeros(N,NL-pilot_num);

i=1;

count=0;

while i<=NL

Hi=input(:,i)./pilot_sequence;

Hlmmse=Rhh*inv(Rhh+(beta/snr)*eye(N))*Hi;

count=count+1;

if count*pilot_inter<=(NL-pilot_num)

for j=((count-1)*pilot_inter+1):count*pilot_inter

output(:,j)=input(:,(i+j-(count-1)*pilot_inter))./Hlmmse;

end

else

for j=((count-1)*pilot_inter+1):(NL-pilot_num)

output(:,j)=input(:,(i+j-(count-1)*pilot_inter))./Hlmmse;

end

end

i=i+pilot_inter+1;

end

这是LMMSE的 老是程序跑不起来。。求大神gaiz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值