当前位置: 首页 > news >正文

时域信道估计和时域信道均衡以及matlab代码手搓(注意是时域,后续讲ofdm相关的频域信道估计和均衡)

时域信道估计与信号均衡笔记

**约定**:共轭转置统一记为 \((\cdot)^{H}\),\(L\) 为信道多径个数(即信道冲激响应 \(h\) 的长度),\(N\) 为输入发送信号 \(x\) 的长度。

原卷积输入输出模型:
\[
y = h \otimes x + n
\]
根据卷积性质,接收输出 \(y\) 的长度为 \((N + L - 1) \times 1\),\(n\) 为加性噪声。

---

一、信道估计:估计信道冲激响应 \(h\)

1. 时域最小二乘(LS)信道估计

将卷积运算转化为矩阵乘法:把输入 \(x\) 构造为托普利茨卷积矩阵,模型改写为:
\[
y = X h + n
\]

各变量维度与形式:
- \(y\):接收输出向量,维度 \((N + L - 1) \times 1\)
- \(h\):待估计信道,维度 \(L \times 1\)
- \(X\):输入 \(x\) 的托普利茨卷积矩阵,维度 \((N + L - 1) \times L\),形式如下:

\[
X = \begin{bmatrix}
x(0) & 0 & \cdots & 0 \\
x(1) & x(0) & \cdots & 0 \\
\vdots & x(1) & \cdots & 0 \\
x(N-1) & \vdots & \ddots & x(0) \\
0 & x(N-1) & \cdots & x(1) \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & x(N-1)
\end{bmatrix}_{(N+L-1)\times L}
\]

维度验证:\((N + L - 1) \times 1 = [(N + L - 1) \times L] \cdot [L \times 1]\),匹配。

最小二乘的闭合解为:
\[
\hat{h}_{\mathrm{LS}} = \left(X^{H}X\right)^{-1} X^{H} y
\]

2. 时域最小均方误差(MMSE)信道估计

MMSE信道估计的公式为:
\[
\hat{h}_{\mathrm{MMSE}} = R_{hh} X^{H} \left( X R_{hh} X^{H} + \sigma_n^2 I \right)^{-1} y
\]
其中 \(R_{hh} = \mathbb{E}[h h^{H}]\) 是信道的自相关矩阵,\(\sigma_n^2\) 是噪声方差。

实际场景中通常无法获得完整的 \(R_{hh}\),可利用信道不同多径抽头互不相关的假设,将 \(R_{hh}\) 近似为对角矩阵:
\[
D = R_{hh} = \operatorname{diag}\left(\sigma_h^2, \sigma_h^2, \ldots, \sigma_h^2\right) \quad (\text{共 } L \text{ 个})
\]
代入后得到近似MMSE估计解:
\[
\hat{h}_{\mathrm{MMSE}} = D X^{H} \left( X D X^{H} + \sigma_n^2 I \right)^{-1} y
\]

3. 频域LS信道估计(简化实现方法)

实现步骤:
a. 将接收信号 \(y(n)\) 和训练序列 \(x(n)\) 补零到长度 \(N + L - 1\)
b. 分别做FFT变换到频域:
\[
Y[k] = \mathrm{FFT}(y(n)), \quad X[k] = \mathrm{FFT}(x(n))
\]
c. 频域LS估计得到信道频率响应:
\[
H_{\mathrm{LS}}[k] = Y[k] / X[k]
\]
d. 做IFFT变换回时域,得到时域信道估计:
\[
\hat{h}_{\mathrm{LS}}[n] = \mathrm{IFFT}(H_{\mathrm{LS}}[k])
\]
e. 只取前 \(L\) 个点,作为最终的时域信道估计结果。

---

二、得到信道估计后:信号均衡,估计发送信号 \(x\)

已知信道估计 \(\hat{h}_{\mathrm{est}}\),将 \(h\) 构造为托普利茨卷积矩阵,原卷积模型改写为:
\[
y = H x + n
\]

各变量维度统一:
- \(N\):发送信号 \(x\) 的长度,\(x\) 维度为 \(N \times 1\)
- \(L\):信道多径个数,即 \(h\) 的长度
- \(H\):由 \(h\) 构造的托普利茨卷积矩阵,维度为 \((N + L - 1) \times N\)
- \(y\):接收信号,维度为 \((N + L - 1) \times 1\)

\(H\) 的形式如下:
\[
H = \begin{bmatrix}
h(0) & 0 & \cdots & 0 \\
h(1) & h(0) & \cdots & 0 \\
\vdots & h(1) & \cdots & 0 \\
h(L-1) & \vdots & \ddots & h(0) \\
0 & h(L-1) & \cdots & h(1) \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & h(L-1)
\end{bmatrix}_{(N+L-1)\times N}
\]

1. 零迫(ZF)均衡

理想零迫解为 \(\hat{x}_{\mathrm{ZF}} = H^{-1} y\),但实际中 \(H\) 通常是病态矩阵,一般用矩阵伪逆求解:
\[
\hat{x}_{\mathrm{ZF}} = \left( H^{H} H \right)^{-1} H^{H} y = H^{+} y
\]
其中 \(H^{+}\) 表示 \(H\) 的摩尔-彭若斯伪逆,数值计算中通常用 `pinv` 函数实现。

2. MMSE均衡

**情况1**:信道冲激响应 \(h\) 已知时(单径情况或每个子载波上的标量形式)
\[
\hat{x}_{\mathrm{MMSE}} = \frac{h^*}{|h|^2 + \sigma_n^2} \, y
\]
(注:此式适用于单径信道或频域每个子载波上的处理;对于多径时域,应采用下面的矩阵形式。)

**情况2**:\(h\) 为估计得到时,构造托普利茨矩阵 \(H\) 后,MMSE均衡滤波器为:
\[
W = \left( H^{H} H + \sigma_n^2 I \right)^{-1} H^{H}
\]
最终发送信号估计为:
\[
\hat{x}_{\mathrm{MMSE}} = W \, y
\]

三、相关核心代码

模拟4径场景下,不同信道估计和信道均衡算法的对比

L = 4; % 信道冲激响应长度 N = 1000; % 总符号数(导频+数据) SNR_dB = 15; % 信噪比(dB) pilot_length = 64; % 导频序列长度 %% 信道估计 % 导频部分接收信号 y_pilot = y(1:pilot_length); % 最小二乘信道估计 h_estls = (X_pilot' * X_pilot) \ (X_pilot' * y_pilot); % MMSE信道估计(使用理想信道信息) R_h = h_true * h_true'; % 理想情况知道真实信道 C_n = noise_power * eye(pilot_length); H_mmse = R_h * X_pilot' / (X_pilot * R_h * X_pilot' + C_n); h_estmmse = H_mmse * y_pilot;
%% 迫零均衡 (Zero-Forcing Equalization) % 构造信道矩阵(复数) H_ls = toeplitz([h_estls; zeros(N-L,1)], [h_estls(1), zeros(1,N-1)]); H_mmse = toeplitz([h_estmmse; zeros(N-L,1)], [h_estmmse(1), zeros(1,N-1)]); % 迫零均衡器(直接求逆) W_zf_ls = pinv(H_ls); % 使用伪逆避免病态矩阵 W_zf_mmse = pinv(H_mmse); % 迫零均衡 x_zf_ls = W_zf_ls * y; x_zf_mmse = W_zf_mmse * y; %% MMSE均衡(用于对比) W_mmse_eq_ls = (H_ls' * H_ls + (noise_power/var(x)) * eye(N)) \ H_ls'; x_mmse_ls = W_mmse_eq_ls * y; W_mmse_eq_mmse = (H_mmse' * H_mmse + (noise_power/var(x)) * eye(N)) \ H_mmse'; x_mmse_mmse = W_mmse_eq_mmse * y;

四、运行效果展示

http://www.jsqmd.com/news/511846/

相关文章:

  • 聊聊2026年金杉木双筋直拼板ENF级板材厂家,哪家性价比高 - myqiye
  • 用Three.js+OrbitControls打造可旋转的3D中国地图:新手避坑指南
  • 百考通:AI赋能实践报告,智能生成优质内容,让实习总结高效又专业
  • 字符编码:从基础到实战的核心解析
  • 基于企微API与CRM对接,构建试听后的自动化跟进与转化SOP
  • 苹果 M5 系列 MacBook 发布,升级与选择的深度剖析
  • 讲讲甘肃万通汽修教育网址和学校地址,学新能源汽车价格如何 - mypinpai
  • 当大事件突然降临,普通人的第一反应往往是懵的
  • 【无人售货柜・RK+YOLO】篇 4:效果拉满!针对无人售货柜场景的 YOLO 模型优化技巧,解决 90% 的识别问题
  • Ant Table隐藏技巧:用reduce+sticky实现财务系统级合计行
  • 基于观测器的LOS制导结合反步法控制:无人船艇路径跟踪控制的Fossen模型在Matlab S...
  • BrowseComp-ZH:中文网络生态下大模型检索能力的极限挑战
  • 思阳GEO思考:3步破解搜索痛点,抢占AI优先推荐
  • Face Analysis WebUI模型安全防护策略
  • 【无人售货柜・RK+YOLO】篇 5:RK3576 部署第一步!YOLO 模型转 RKNN 全流程,新手必避的量化大坑
  • Perplexity+NotebookLM=天才
  • 双碳目标下的能耗监测大屏:企业通用
  • Vue3 + Vxe-Table 实战:手把手教你实现可编辑表格的实时合计与平均(附完整代码)
  • 域名解析与配置
  • C# 字典(Dictionary)入门:从零开始掌握键值对集合
  • Python实战:用NumPy手撕SVD分解(附完整代码与可视化)
  • 智能邮件秘书:OpenClaw+Qwen3-32B自动分类与回复重要邮件
  • 连云港离婚律师推荐 适配各类复杂家事纠纷 - 讯息观点
  • 【Qclaw】Read HEARTBEAT.md if it exists (workspace context). Follow it strictly
  • 540万元奖金!2026年数学界“诺贝尔奖”揭晓
  • 解读汽车洗美服务选购要点,易漆修在京津地区排名如何 - 工业设备
  • 【大模型实践篇】Vanna:基于RAG的SQL生成框架从入门到精通的实战指南
  • 项目性能优化
  • 进程:pcb
  • DAY3学习