软解调-软判决
省流
- 简单来说,软判决是对应每一位比特来说的。每一位比特的对数似然比(LLR)就是软判决值。通过LLR值与0比较,得到对应比特位是bit 0还是bit 1。
- 每一位比特LLR的计算可以通过一系列计算简化为,星座图上欧式距离的差。
本文是针对MIMO-OFDM无线通信技术及MATLAB实现的第11.7节中的内容解读。
如有不对之处,烦请各位指出。
什么是对数似然比(LLR)?
- 首先是,通俗来说,似然(likelihood):当我们在一个条件下,发生一种情况的概率有多大,也就是可能性。
那么似然比就是两个概率之比,对数似然比也自然就是去一个自然对数了。
L ( b i ) = ln ( P ( b i = 1 ∣ r ) P ( b i = 0 ∣ r ) ) (1) L\left(b_i\right)=\ln \left(\frac{P\left(b_i=1 \mid r\right)}{P\left(b_i=0 \mid r\right)}\right) \tag{1} L(bi)=ln(P(bi=0∣r)P(bi=1∣r))(1) - 公式(1)中,我们假设当接收信号为 r 时,发送信号的这一位是0还是1。如果 L ( b i ) > 0 L\left(b_i\right)>0 L(bi)>0则发射为1,如果 L ( b i ) < 0 L\left(b_i\right)<0 L(bi)<0则发射为0。
软解调是干嘛的?
- 对于一个SISO系统
x x x 为发射信号(已经调制), x ~ \tilde{x} x~为经过信道均衡后的信号。
x ~ = y h = x + z h = x + z ~ (2) \tilde{x}=\frac{y}{h}=x+\frac{z}{h}=x+\tilde{z} \tag{2} x~=hy=x+hz=x+z~(2)
z ~ \tilde{z} z~为高斯噪声。
本文中假设 x x x是利用16-QAM进行调制的,**那么我们现在要做的就是从16-QAM中找到与 x ~ \tilde{x} x~最近的星座点,以此来实现解调。
- 16QAM星座图如下:
怎么实现软解调?
- 假设 S 1 + = − 3 + 3 j , − 1 + 3 j , 1 + 3 j , 3 + 3 j , − 3 + j , − 1 + j , 1 + j , 3 + j S_1^+={-3 + 3j,-1+3j,1+3j,3+3j,-3+j,-1+j,1+j,3+j} S1+=−3+3j,−1+3j,1+3j,3+3j,−3+j,−1+j,1+j,3+j表示第一位为0的符号集。 S 1 − = − 3 − 3 j , − 1 − 3 j , 1 − 3 j , 3 − 3 j , − 3 − j , − 1 − j , 1 − j , 3 − j S_1^-={-3 -3j,-1-3j,1-3j,3-3j,-3-j,-1-j,1-j,3-j} S1−=−3−3j,−1−3j,1−3j,3−3j,−3−j,−1−j,1−j,3−j表示第一位为1的符号集。
- 计算每个比特位的LLR,假设每个符号出现概率相等,经过一系列化简推导(后续更新)可以得到LLR表示为两个欧氏距离的差值。
LLR ( b 1 ) ≈ ∣ x ~ − x 1 , o p t − ∣ 2 − ∣ x ~ − x 1 , o p t + ∣ 2 (3) \operatorname{LLR}\left(b_1\right) \approx\left|\tilde{x}-x_{1, \mathrm{opt}}^{-}\right|^2-\left|\tilde{x}-x_{1, \mathrm{opt}}^{+}\right|^2 \tag{3} LLR(b1)≈ x~−x1,opt− 2− x~−x1,opt+ 2(3)
x ~ \tilde{x} x~表示经过信道均衡后的信号(上文中有), x 1 , o p t − x_{1, \mathrm{opt}}^{-} x1,opt−表示与 x ~ \tilde{x} x~欧式距离最近的 S 1 − S_1^- S1−中的符号。 x 1 , o p t + x_{1, \mathrm{opt}}^{+} x1,opt+表示与 x ~ \tilde{x} x~欧式距离最近的 S 1 + S_1^+ S1+中的符号。
下图给出了计算16QAM星座每一位LLR的示意图。(后面的公式实际上就是在计算式(3))
LLR ( b 1 ) = { ( x ~ I − 3 ) 2 − ( x ~ I − ( − 1 ) ) 2 = − 8 x ~ I + 8 , 2 ≤ x ~ I ( x ~ I − 1 ) 2 − ( x ~ I − ( − 1 ) ) 2 = − 4 x ~ I , 0 ≤ x ~ I < 2 ( x ~ I − 1 ) 2 − ( x ~ I − ( − 1 ) ) 2 = − 4 x ~ I , − 2 ≤ x ~ I < 0 ( x ~ I − 1 ) 2 − ( x ~ I − ( − 3 ) ) 2 = − 8 x ~ I − 8 , x ~ I < − 2 LLR ( b 2 ) = { ( x ~ I − 3 ) 2 − ( x ~ I − 1 ) 2 = − 4 x ~ I + 8 , 2 ≤ x ~ I ( x ~ I − 3 ) 2 − ( x ~ I − 1 ) 2 = − 4 x ~ I + 8 , 0 ≤ x ~ I < 2 ( x ~ I − ( − 3 ) ) 2 − ( x ~ I − ( − 1 ) ) 2 = 4 x ~ I + 8 , − 2 ≤ x ~ I < 0 ( x ~ I − ( − 3 ) ) 2 − ( x ~ I − ( − 1 ) ) 2 = 4 x ~ I + 8 , x ~ I < − 2 LLR ( b 3 ) = { ( x ~ R − ( − 1 ) ) 2 − ( x ~ R − 3 ) 2 = 8 x ~ R − 8 , 2 ≤ x ~ R ( x ~ R − ( − 1 ) ) 2 − ( x ~ R − 1 ) 2 = 4 x ~ R , 0 ≤ x ~ R < 2 ( x ~ R − ( − 1 ) ) 2 − ( x ~ R − 1 ) 2 = 4 x ~ R , − 2 ≤ x ~ R < 0 ( x ~ R − ( − 3 ) ) 2 − ( x ~ R − 1 ) 2 = 8 x ~ R + 8 , x ~ R < − 2 LLR ( b 4 ) = { ( x ~ R − 3 ) 2 − ( x ~ R − 1 ) 2 = − 4 x ~ R + 8 , 2 ≤ x ~ R ( x ~ R − 3 ) 2 − ( x ~ R − 1 ) 2 = − 4 x ~ R + 8 , 0 ≤ x ~ R < 2 ( x ~ R − ( − 3 ) ) 2 − ( x ~ R − ( − 1 ) ) 2 = 4 x ~ R + 8 , − 2 ≤ x ~ R < 0 ( x ~ R − ( − 3 ) ) 2 − ( x ~ R − ( − 1 ) ) 2 = 4 x ~ R + 8 , x ~ R < − 2 \begin{align*} & \operatorname{LLR}(b1) = \begin{cases} \left(\tilde{x}_{\mathrm{I}} - 3\right)^2 - \left(\tilde{x}_{\mathrm{I}} - (-1)\right)^2 = -8 \tilde{x}_{\mathrm{I}} + 8, & 2 \leq \tilde{x}_{\mathrm{I}} \\ \left(\tilde{x}_{\mathrm{I}} - 1\right)^2 - \left(\tilde{x}_{\mathrm{I}} - (-1)\right)^2 = -4 \tilde{x}_{\mathrm{I}}, & 0 \leq \tilde{x}_{\mathrm{I}} < 2 \\ \left(\tilde{x}_{\mathrm{I}} - 1\right)^2 - \left(\tilde{x}_{\mathrm{I}} - (-1)\right)^2 = -4 \tilde{x}_{\mathrm{I}}, & -2 \leq \tilde{x}_{\mathrm{I}} < 0 \\ \left(\tilde{x}_{\mathrm{I}} - 1\right)^2 - \left(\tilde{x}_{\mathrm{I}} - (-3)\right)^2 = -8 \tilde{x}_{\mathrm{I}} - 8, & \tilde{x}_{\mathrm{I}} < -2 \end{cases} \\ & \operatorname{LLR}(b2) = \begin{cases} \left(\tilde{x}_{\mathrm{I}} - 3\right)^2 - \left(\tilde{x}_{\mathrm{I}} - 1\right)^2 = -4 \tilde{x}_{\mathrm{I}} + 8, & 2 \leq \tilde{x}_{\mathrm{I}} \\ \left(\tilde{x}_{\mathrm{I}} - 3\right)^2 - \left(\tilde{x}_{\mathrm{I}} - 1\right)^2 = -4 \tilde{x}_{\mathrm{I}} + 8, & 0 \leq \tilde{x}_{\mathrm{I}} < 2 \\ \left(\tilde{x}_{\mathrm{I}} - (-3)\right)^2 - \left(\tilde{x}_{\mathrm{I}} - (-1)\right)^2 = 4 \tilde{x}_{\mathrm{I}} + 8, & -2 \leq \tilde{x}_{\mathrm{I}} < 0 \\ \left(\tilde{x}_{\mathrm{I}} - (-3)\right)^2 - \left(\tilde{x}_{\mathrm{I}} - (-1)\right)^2 = 4 \tilde{x}_{\mathrm{I}} + 8, & \tilde{x}_{\mathrm{I}} < -2 \end{cases} \\ & \operatorname{LLR}(b3) = \begin{cases} \left(\tilde{x}_{\mathrm{R}} - (-1)\right)^2 - \left(\tilde{x}_{\mathrm{R}} - 3\right)^2 = 8 \tilde{x}_{\mathrm{R}} - 8, & 2 \leq \tilde{x}_{\mathrm{R}} \\ \left(\tilde{x}_{\mathrm{R}} - (-1)\right)^2 - \left(\tilde{x}_{\mathrm{R}} - 1\right)^2 = 4 \tilde{x}_{\mathrm{R}}, & 0 \leq \tilde{x}_{\mathrm{R}} < 2 \\ \left(\tilde{x}_{\mathrm{R}} - (-1)\right)^2 - \left(\tilde{x}_{\mathrm{R}} - 1\right)^2 = 4 \tilde{x}_{\mathrm{R}}, & -2 \leq \tilde{x}_{\mathrm{R}} < 0 \\ \left(\tilde{x}_{\mathrm{R}} - (-3)\right)^2 - \left(\tilde{x}_{\mathrm{R}} - 1\right)^2 = 8 \tilde{x}_{\mathrm{R}} + 8, & \tilde{x}_{\mathrm{R}} < -2 \end{cases} \\ & \operatorname{LLR}(b4) = \begin{cases} \left(\tilde{x}_{\mathrm{R}} - 3\right)^2 - \left(\tilde{x}_{\mathrm{R}} - 1\right)^2 = -4 \tilde{x}_{\mathrm{R}} + 8, & 2 \leq \tilde{x}_{\mathrm{R}} \\ \left(\tilde{x}_{\mathrm{R}} - 3\right)^2 - \left(\tilde{x}_{\mathrm{R}} - 1\right)^2 = -4 \tilde{x}_{\mathrm{R}} + 8, & 0 \leq \tilde{x}_{\mathrm{R}} < 2 \\ \left(\tilde{x}_{\mathrm{R}} - (-3)\right)^2 - \left(\tilde{x}_{\mathrm{R}} - (-1)\right)^2 = 4 \tilde{x}_{\mathrm{R}} + 8, & -2 \leq \tilde{x}_{\mathrm{R}} < 0 \\ \left(\tilde{x}_{\mathrm{R}} - (-3)\right)^2 - \left(\tilde{x}_{\mathrm{R}} - (-1)\right)^2 = 4 \tilde{x}_{\mathrm{R}} + 8, & \tilde{x}_{\mathrm{R}} < -2 \end{cases} \end{align*} LLR(b1)=⎩ ⎨ ⎧(x~I−3)2−(x~I−(−1))2=−8x~I+8,(x~I−1)2−(x~I−(−1))2=−4x~I,(x~I−1)2−(x~I−(−1))2=−4x~I,(x~I−1)2−(x~I−(−3))2=−8x~I−8,2≤x~I0≤x~I<2−2≤x~I<0x~I<−2LLR(b2)=⎩ ⎨ ⎧(x~I−3)2−(x~I−1)2=−4x~I+8,(x~I−3)2−(x~I−1)2=−4x~I+8,(x~I−(−3))2−(x~I−(−1))2=4x~I+8,(x~I−(−3))2−(x~I−(−1))2=4x~I+8,2≤x~I0≤x~I<2−2≤x~I<0x~I<−2LLR(b3)=⎩ ⎨ ⎧(x~R−(−1))2−(x~R−3)2=8x~R−8,(x~R−(−1))2−(x~R−1)2=4x~R,(x~R−(−1))2−(x~R−1)2=4x~R,(x~R−(−3))2−(x~R−1)2=8x~R+8,2≤x~R0≤x~R<2−2≤x~R<0x~R<−2LLR(b4)=⎩ ⎨ ⎧(x~R−3)2−(x~R−1)2=−4x~R+8,(x~R−3)2−(x~R−1)2=−4x~R+8,(x~R−(−3))2−(x~R−(−1))2=4x~R+8,(x~R−(−3))2−(x~R−(−1))2=4x~R+8,2≤x~R0≤x~R<2−2≤x~R<0x~R<−2 - 通过第二步的计算,下图给出了16QAM星座图四个比特LLR的示意图。
- 后续软判决输出比特**(还未弄清楚)**,可以参考文章1中的matlab代码。
软解调为什么可以实现性能增益?
- 软判决是一个系统的概念,不能从软判决模块的输出直接获得性能的比较,而是要经过信道解码后的输出,才能显示出性能的差异性,所以需要放在一个较完整的系统中予以评价其性能的优劣。
- 软判决所携带的比特似然比信息是给后级信道解码所利用的,要是没有后续的模块,则软判决不会带来任何性能增益。差异性体现在BER性能以及BLER性能,这是由于软判决的准确性不是体现在其符号的正负,而是体现在其幅度是否能真实反映接收信号为比特1或是比特0的概率大小,进而被信道译码所利用。
硬解调是什么?
我感觉解释的很好的是,最近写的代码里就是这么做的:
硬解调其实是把解调+硬判决的工作一起做了。简单的通过设置阈值来判断输出,以二进制来说的话,一般大于0的判1,小于0的判0。
具体参考文章5。
参考文献
1、https://www.zhihu.com/question/22019466/answer/1967818641
2、MIMO-OFDM无线通信技术及MATLAB实现
3、https://zhuanlan.zhihu.com/p/615787267
4、https://blog.csdn.net/pgone1/article/details/124469107
5、https://blog.csdn.net/ddatalent/article/details/129692524