数字定时误差检测算法系列之 ——— Mueller-Muller算法

本文介绍了Mueller-Muller算法,一种基于判决反馈的低复杂度定时误差检测方法,适用于单倍采样率。重点讲解了其工作原理、常见实现、敏感性分析以及选择样本数据的重要性。算法的公式(7)及其变体被详细讨论,以及为何滚降系数对精度的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Mueller-Muller 算法简介

        Mueller-Muller 算法是一种非数据辅助,基于判决反馈,实现复杂度低,广泛应用于实际工程中的一种定时误差检测算法。Mueller-Muller 算法最大的特点是工作于单倍采样率下,每个码元仅需要一个采样点即可提取出定时误差。

2. Mueller - Muller 算法常见实现方式

         Mueller-Muller 算法是单倍采样率下基于判决反馈的定时误差提取算法,所以,一般的实现方式如图1所示:

图示 1

假设采样数据x_{n-1}判决为符号a_{n-1},采样数据x_n判决为符号a_n,n表示第n时刻。则, Mueller-Muller 算法定时误差输出为:

   e_n = a_{n-1}x_n - a_nx_{n-1}                 (1)

其实现电路图如下图所示(最左边方框表示符号判决):

 

图示 2

 根据Mueller论文的推导,x_n也可以替换为x_n-a_n。此外,也可以将a_n替代为sign(x_n)。具体的使用方法需要结合工程实际情况来选择。

3. Mueller - Muller 算法原理

        假设T为符号周期(单个码元持续时间), a_n表示输入码元符号,h(t)表示系统响应,则输入信号可以表示为:

                                   x(t) = \sum_{n}a_nh(t-kT) + n(t) + 1                                       (2)

\tau表示在(0,T]范围内的采样时刻,则在 t = \tau + mT 时刻对x(t)的采样值为:

                           x(\tau + nT) = a_nh(\tau + nT) + \sum_{i,i\neq n}a_{n-i} h(\tau + iT) + n(\tau + nT)       (3)

记 h_0 = h(\tau + nT)h_i = h(\tau + iT)x_n=x(\tau + nT)

则对(1)求期望:

                              E\{e_n\} = E\{a_{n-1}x_n\} - E\{a_nx_{n-1}\}                                            (4)

其中,

                      E\{a_{n-1}x_n\} = E\{ a_{n-1}a_nh_0\} + E\{\sum_{i,i\neq n}a_{n-1}a_{n-i} h_i\}                          (5)

因为数据a_n是随机数,h_i是确定的数据,求期望实际是对a_n求期望。(5)式中不带噪声项,因为这里假设噪声均值为0。因为数据比特是互相独立的,所以有:

                                 E\{a_{n-i}a_{n-1}\}=\left\{\begin{matrix} 0, i\neq 1\\ 1,i=1 \end{matrix}\right..                                (6)

上式中假设了数据a_n是归一化数据。 所以 E\{a_{n-1}x_n\} = h_1。同理,E\{a_nx_{n-1}\} = h_{-1}。则有定时误差函数:

                                    f(\tau) = E\{e_n\} = h_1 - h_{-1}                               (7)

(7)式就是 Mueller-Muller算法的本质。(1)式是它的一种基于判决的近优实现方式。

4. 基于公式(7)的Mueller - Muller 算法的理解

        公式(7)成立的一般前提是系统冲激响应偶对称。如图所示:

图 3

当 h_1 < h_{-1} 时,采样时刻超前于最佳采样时刻,当 h_1 > h_{-1}时,采样时刻落后于最佳采样时刻,当时h_1 = h_{-1},采样时刻为最佳采样时刻。此时的定时误差函数f(\tau)为关于原点的奇函数。如下图所示:

 图4

 图4中,分别展示了不同滚降系数(0,0.5,1.0)下的升余弦响应的误差函数曲线。随着滚降系数的减小,定时误差函数的斜度越大,定时误差越灵敏。有别于其他鉴相算法,Mueller-Muller 算法是滚降系数越小越好。

        我们在第二小节提到,公式(1)是公式(7)的近优实现,公式(1)的期望就是公式(7),也就是平均意义上公式(1)和公式(7)相等。那么,公式(1)相对于公式(7)的偏离度是多少 呢?我们可以用公式(1)的方差来衡量。公式(1)的方差有:

S=\frac{1}{2}\sum _{i,i\neq 0}{h_i}^2 - [2-\frac{E\{​{a_i}^4\}}{E^2\{​{a_i}^2\}}]\frac{​{h_1}^2+{h_{-1}}^2}{4}+\frac{\sigma^2}{2E\{​{a_i}^2\}}                     (8)

从公式(8)可以看出,公式(1)的准确度取决于系统噪声、主抽头前后两个符号干扰、剩余符号间干扰以及系统符号调制方式。这是一个很矛盾的公式,鉴相结果受符号间干扰,又依靠前后两个符号的干扰。所以,一般鉴相和均衡会同时做,或者某一项启动后,立马启动另一项。

5. 一般的Mueller - Muller 算法

        一般的Mueller - Muller定时误差提取公式为:

f(\tau) = \sum_{i}u_ih_i                           (9)

实现方式是:

z_i= \sum_{i}g_ix_i                                  (10)

其中,x_i为i时刻接收样本。适当选取g_i,可以使公式(10)的期望为公式(9), 方差最小或接近最小。

       根据Mueller的建议:

        (1)系统响应为偶对称时,定时误差提取公式为公式(7);

        (2)系统响应为奇对称时,定时误差提取公式为:

f(\tau) = h_1 + h_{-1}                            (11)

         (3)系统相位失真比较严重时,定时误差公式为:

f(\tau) = h_0                                        (12)

        (4) 不建议使用更多项的h_i来提取误差函数。因为在估计h_i时,如果对a_i判决错误,会导致误差传播,使得鉴相不准确。

此外,在不少论文中,还使用了其他的定时误差提取公式。

【参考资料】

[1] K. Mueller and M. Muller, Timing Recovery in Digital Synchronous Data Receivers, IEEE Transactions on Communications, vol. COM-24, no. 5, pp. 516-531, May 1976.

[2]  Mueller and Muller Timing Synchronization Algorithm - Wireless Pi

思考题:

1. 为什么Mueller - Muller算法对相位噪声更敏感?

2.样本数据x_i从何处取比较合适?

3.  为什么可以将x_i 替换为x_i - a_i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值