对数似然比(LLR)计算的函数

LLR 是常用于数字通信系统中的信号检测与解码的量,尤其在**信道解码(例如LDPC或Turbo码解码)**中非常重要。函数 compute_llr 的作用是计算一个信号的对数似然比(LLR)和概率值 p1,用于评估每个比特的值。

函数头

function [llr, p1] = compute_llr(obj, y, n_0)
  • 输入参数:

    • obj: 包含该函数所属对象的属性(可能是调制解调相关的对象,如调制星座、比特映射等)。
    • y: 一个向量,表示接收的信号(通常是经过噪声污染的接收信号)。
    • n_0: 一个标量或向量,表示噪声方差(在MIMO或多路复用系统中,可能是不同接收符号的噪声方差)。
  • 输出参数:

    • llr: 对数似然比(Log-Likelihood Ratio),用于评估接收信号在不同状态下的可能性。
    • p1: 概率值,表示接收符号属于某个状态的概率。

变量初始化

p0 = zeros(length(y) * obj.n_bits, 1);
p1 = zeros(length(y) * obj.n_bits, 1);
  • p0p1 初始化为长度为 length(y) * obj.n_bits 的零向量。这些向量将用于存储每个比特位置的概率值。obj.n_bits 表示每个符号包含的比特数,length(y) 表示接收信号的符号数。

外层循环:遍历每个接收符号

for y_index = 1 : length(y)
  • 外层循环遍历接收到的每一个符号 y(y_index)y_index 是接收符号的索引。

内层循环:遍历所有可能的符号组合

for sym_index = 1 : 2^obj.n_bits
  • 内层循环遍历所有可能的符号组合。2^obj.n_bits 表示每个符号可以表示的所有比特组合的数量。例如,如果每个符号代表 2 个比特,那么该循环将遍历 4 个符号(sym_index = 1, 2, 3, 4)。

计算每个符号的概率 p_sym

if length(n_0) == 1
    p_sym = exp(-abs(y(y_index) - obj.constellation_points(sym_index))^2 / 2 / n_0);
else
    p_sym = exp(-abs(y(y_index) - obj.constellation_points(sym_index))^2 / 2 / n_0(y_index));
end
  • p_sym 是计算当前接收符号与可能的调制星座点 obj.constellation_points(sym_index) 之间的距离,并根据该距离和噪声方差 n_0 计算符号的概率。符号的概率是通过高斯分布公式计算的,表示在给定噪声条件下,接收符号 y(y_index) 发生的可能性。
    • 如果 n_0 是标量,那么所有符号使用相同的噪声方差;
    • 如果 n_0 是向量,则为每个接收符号使用不同的噪声方差。

比特的概率更新

for m_index = 1 : obj.n_bits
    if obj.bit_sym_map(sym_index, m_index) == 0
        p0((y_index-1) * obj.n_bits + m_index) = p0((y_index-1) * obj.n_bits + m_index) + p_sym;
    else
        p1((y_index-1) * obj.n_bits + m_index) = p1((y_index-1) * obj.n_bits + m_index) + p_sym;
    end
end
  • 对于每个符号,计算其对应的比特在 p0p1 中的概率值。obj.bit_sym_map 是一个映射表,用于确定每个符号中的每个比特位置。如果某个比特为 0,则将 p_sym 加到 p0 中;如果某个比特为 1,则将 p_sym 加到 p1 中。

计算对数似然比(LLR)

llr = log(p0 ./ p1);
  • LLR的计算是通过 p0p1 来得到的,llr 表示接收符号属于比特值 0 与 1 的对数似然比。LLR 可以用于软判决解码,它表示比特值为 1 的可能性与比特值为 0 的可能性的比值的对数。

归一化 p1

p1 = p1 ./ (p0 + p1);
  • p1 被归一化到 [0, 1] 的范围,表示比特为 1 的概率。计算方式为:p1 除以 p0p1 的总和。

总结

该函数 compute_llr 的核心功能是通过接收信号和已知的调制星座点,计算出每个比特的对数似然比(LLR)以及每个比特为 1 的概率 p1。这些计算结果可用于进一步的信道解码过程,尤其是在软判决解码算法中(例如 LDPC 或 Turbo 解码)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值