当前位置:   article > 正文

【无线通信】信道估计

信道估计

一、信道估计的概念

信道估计,就是从接收数据中将假定的某个信道模型的模型参数估计出来的过程。
信道估计的目的在于使信道的不确定性降至最小,获取信道参数。

二、信道估计的分类

1、基于训练序列的信道估计算法

这种方法的原理就是在发射数据符号外,还需要发射前导(Preamble)或导频(pilot)信号;如最小二乘LS、最小均方误差MMSE等基于训练序列的信道估计算法被广泛应用于信道估计;

优点:训练符号能够提供较好的性能;

缺点:由于除了发射数据符号外,还需要发射前导或导频信号,由此训练序列过长会降低频谱效率;

2、盲/半盲信道估计算法

从接收信号的结构和统计信息中获取信道状态信息CSI (channel state information)或均衡器系数,无需或很少训练序列。主要包括基于最大期望的信道估计、基于子空间的信道估计技术等。

优点:减少资源的开销;

缺点:性能比基于训练序列的信道估计算法差;

三、LS信道估计

1.LS最优信道矩阵推导

信道估计数学表达式
上图中,Y为实际接收到的数据,Y’为估计的接收数据,其大小均为N1X1的矩阵(N1为参与计算的数据数量),Z 为噪声,也是一个N1X1的矩阵,H是真实信道矩阵,即信道的实际参数,H’是估计信道矩阵,通过算法估计出来的参数,大小为N2X1(N2为估计的多径数量)。X为发送数据矩阵,是一个N1XN2的矩阵,其包含的数据为按行进行符号延迟的数据。
首先明确一点,在LS信道估计中,我们使用Y和Y‘’来进行计算,估计出的结果是H’而并非H,若估计的结果H’使得Y’与Y误差最小,则能得到的结果应该是H’与H(带三角)的误差最小,但H(带三角)也不是真实的信道矩阵,其内还包含了一个误差项Z/X,因此对于LS信道估计而言,其结果的精度是受这个误差项影响的,而这个误差项概括来说就是和SNR相关,SNR越大,误差项越小,估计精度越高。
LS准则的代价函数:
LS准则的代价函数
求一阶到二阶导可以得到最优信道矩阵:一阶到二阶导
LS结果
LS最终结果

LS算法计算简单、复杂度低,不需要信道的任何先验统计特性。该方法导频处信道频域响应(CFR)通过LS算法估计得到,数据符号处CFR通过插值方法获得。然而,由于LS估计方法不能消除导频处噪声的影响,并且插值类信道估计方法不能有效消除由于多径引起的频域选择兴衰落信道的影响,导致数据处CFR获取不准确,因此LS算法的估计性能较差。

信道估计中的LS算法是最基本且常用的算法,用最朴实的话说就是忽略噪声,直接除。其公式表示为H(i)=Y(i)/X(i)。频域接收信号导频位置Y,本地已知导频X。两者简单相除,就可以得到导频位置的信道估计值H(i)。

2.LS信道估计MATLAB代码实现

% 生成信号和信道
channel = [0.3+0.5i, 0.6-0.4i, 0.2+0.1i]; % 信道参数
signal = randn(1, 1000) + 1i*randn(1, 1000); % 生成随机信号

% 信号经过信道
received_signal = conv(signal, channel);

% 构建信道矩阵
M = length(channel); % 信道阶数
N = length(received_signal); % 接收信号长度
H = zeros(N, M); % 信道矩阵

for i = 1:N
    for j = 1:M
        if i-j+1 > 0
            H(i, j) = received_signal(i-j+1);
        end
    end
end

% LS信道估计
% pinv生成伪逆矩阵
estimated_channel = pinv(H)*received_signal';

% 显示结果
disp('实际信道: ');
disp(channel);
disp('估计信道: ');
disp(estimated_channel');
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

四、MMSE信道估计

1.MMSE最优信道矩阵推导

https://zhuanlan.zhihu.com/p/378335850
这里定义和解释看这个博主的文章,写的挺详细。

2.MMSE信道估计MATLAB代码实现

还没找到比较好的代码/(ㄒoㄒ)/~~ 先空着吧,等我学会再补充上。

参考文章:
https://blog.csdn.net/ccsss22/article/details/130450934?spm=1001.2014.3001.5506

https://zhuanlan.zhihu.com/p/378335622

https://blog.csdn.net/m0_46278609/article/details/130924786?spm=1001.2014.3001.5506

https://blog.csdn.net/shenyuhou/article/details/121450609

https://blog.csdn.net/ddatalent/article/details/121132095

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/662049
推荐阅读
相关标签
  

闽ICP备14008679号