信号处理 | AR模型与Levinson-Durbin递推

2023-05-16

模型形式

由高斯白噪声驱动的全极点模型表示如下:
e ( n ) = a 0 x ( n ) + a 1 x ( n − 1 ) + ⋯ + a p x ( n − p ) = ∑ k = 0 p a k x ( n − k ) \begin{aligned} e(n)&=a_0x(n)+a_1x(n-1)+\cdots+a_px(n-p)\\ &=\sum_{k=0}^pa_kx(n-k) \end{aligned} e(n)=a0x(n)+a1x(n1)++apx(np)=k=0pakx(nk)
其中: e ( n ) e(n) e(n)为高斯白噪声,噪声方差为 σ e 2 \sigma_e^2 σe2 p p p是模型阶数。令 a 0 = 1 a_0=1 a0=1,可以得到如下所示的AR模型:
x ( n ) = − ∑ k = 1 p a k x ( n − k ) + e ( n ) x(n)=-\sum_{k=1}^pa_kx(n-k)+e(n) x(n)=k=1pakx(nk)+e(n)

z z z域形式为:
H ( z ) = d 0 A ( z ) = d 0 1 + ∑ k = 1 p a k z − k H(z)=\frac{d_0}{A(z)}=\frac{d_0}{1+\sum_{k=1}^pa_kz^{-k}} H(z)=A(z)d0=1+k=1pakzkd0
功率谱密度可表示为:
S A R ( ω ) = σ 2 ∣ 1 + ∑ k = 1 p a k e − j ω k ∣ 2 S_{AR}(\omega)=\frac{\sigma^2}{|1+\sum_{k=1}^pa_ke^{-j\omega k}|^2} SAR(ω)=1+k=1pakejωk2σ2

模型系数

知道了模型形式,那么如何确定模型系数{ a k a_k ak}?首先给出 x x x自相关函数 r x x r_{xx} rxx的定义:
r x x ( i ) = E [ x ( n ) x ( n − i ) ] r_{xx}(i)=E[x(n)x(n-i)] rxx(i)=E[x(n)x(ni)]
将AR模型带入上式,得到:
r x x ( i ) = E [ ( − ∑ k = 1 p a k x ( n − k ) + e ( n ) ) x ( n − i ) ] = − ∑ k = 1 p a k E [ x ( n − k ) x ( n − i ) ] + E [ e ( n ) x ( n − i ) ] = { − ∑ k = 1 p a k r x x ( i − k ) i > 0 − ∑ k = 1 p a k r x x ( i − k ) + σ e 2 i = 0 \begin{aligned} r_{xx}(i)&=E[(-\sum_{k=1}^pa_kx(n-k)+e(n))x(n-i)]\\ &=-\sum_{k=1}^pa_kE[x(n-k)x(n-i)]+E[e(n)x(n-i)]\\ &=\begin{cases}-\sum_{k=1}^pa_kr_{xx}(i-k)&i>0\\ -\sum_{k=1}^pa_kr_{xx}(i-k)+\sigma_e^2&i=0 \end{cases} \end{aligned} rxx(i)=E[(k=1pakx(nk)+e(n))x(ni)]=k=1pakE[x(nk)x(ni)]+E[e(n)x(ni)]={k=1pakrxx(ik)k=1pakrxx(ik)+σe2i>0i=0
即:
r x x ( i ) = { − ∑ k = 1 p a k r x x ( i − k ) i > 0 − ∑ k = 1 p a k r x x ( i − k ) + σ e 2 i = 0 r_{xx}(i)=\begin{cases}-\sum_{k=1}^pa_kr_{xx}(i-k)&i>0\\ -\sum_{k=1}^pa_kr_{xx}(i-k)+\sigma_e^2&i=0\end{cases} rxx(i)={k=1pakrxx(ik)k=1pakrxx(ik)+σe2i>0i=0
这就是Yule-Walker方程,将上式转换为矩阵相乘形式,其中用到了自相关函数的对称性 r ( − i ) = r ( i ) r(-i)=r(i) r(i)=r(i)
[ r ( 0 ) r ( 1 ) ⋯ r ( p ) r ( 1 ) r ( 0 ) ⋯ r ( p − 1 ) r ( 2 ) r ( 1 ) ⋯ r ( p − 2 ) ⋮ ⋮ ⋮ r ( p ) r ( p − 1 ) ⋯ r ( 1 ) ] [ 1 a 1 a 2 ⋮ a p ] = [ σ e 2 0 0 ⋮ 0 ] \begin{bmatrix} r(0)&r(1)&\cdots&r(p)\\ r(1)&r(0)&\cdots&r(p-1)\\ r(2)&r(1)&\cdots&r(p-2)\\ \vdots&\vdots&&\vdots\\ r(p)&r(p-1)&\cdots&r(1) \end{bmatrix} \begin{bmatrix} 1\\a_1\\a_2\\\vdots\\a_p \end{bmatrix} =\begin{bmatrix}\sigma^2_e\\0\\0\\\vdots\\0\end{bmatrix} r(0)r(1)r(2)r(p)r(1)r(0)r(1)r(p1)r(p)r(p1)r(p2)r(1)1a1a2ap=σe2000
一共有 p + 1 p+1 p+1个方程,未知参数包括 p p p个AR模型系数 { a k } \{a_k\} {ak}以及1个噪声方差 σ e 2 \sigma_e^2 σe2。观察到上式除了第一个方程,其余方程均与 σ e 2 \sigma_e^2 σe2无关,因此可以利用其余的 p p p个方程求解AR模型系数,将该方程转换为如下形式:
[ r ( 0 ) ⋯ r ( p − 1 ) r ( 1 ) ⋯ r ( p − 2 ) ⋮ ⋮ r ( p − 1 ) ⋯ r ( 1 ) ] [ a 1 a 2 ⋮ a p ] = − [ r ( 1 ) r ( 2 ) ⋮ r ( p ) ] \begin{bmatrix} r(0)&\cdots&r(p-1)\\ r(1)&\cdots&r(p-2)\\ \vdots&&\vdots\\ r(p-1)&\cdots&r(1) \end{bmatrix} \begin{bmatrix} a_1\\a_2\\\vdots\\a_p \end{bmatrix} =-\begin{bmatrix}r(1)\\r(2)\\\vdots\\r(p)\end{bmatrix} r(0)r(1)r(p1)r(p1)r(p2)r(1)a1a2ap=r(1)r(2)r(p)
R = [ r ( 0 ) ⋯ r ( p − 1 ) r ( 1 ) ⋯ r ( p − 2 ) ⋮ ⋮ r ( p − 1 ) ⋯ r ( 1 ) ] R=\begin{bmatrix} r(0)&\cdots&r(p-1)\\ r(1)&\cdots&r(p-2)\\ \vdots&&\vdots\\ r(p-1)&\cdots&r(1) \end{bmatrix} R=r(0)r(1)r(p1)r(p1)r(p2)r(1) r = [ r ( 1 ) r ( 2 ) ⋮ r ( p ) ] r=\begin{bmatrix}r(1)\\r(2)\\\vdots\\r(p)\end{bmatrix} r=r(1)r(2)r(p) a = [ a 1 a 2 ⋮ a p ] a=\begin{bmatrix} a_1\\a_2\\\vdots\\a_p \end{bmatrix} a=a1a2ap,上式可以表示为 R a = − r Ra=-r Ra=r,所以:
a = − R − 1 r a=-R^{-1}r a=R1r

但是当模型阶次较高时,使用矩阵求逆的方法求解模型系数就不合适了,需要更高效的方法。观察到矩阵 R R R是一个托普利兹矩阵,可以使用Levinson-Durbin递推来求解AR模型的系数。

Levinson-Durbin递推

已经 x ( n ) x(n) x(n) p + 1 p+1 p+1个自相关函数 { r x x ( 0 ) , r x x ( 1 ) , ⋯   , r x x ( p ) } \{r_{xx}(0),r_{xx}(1),\cdots,r_{xx}(p)\} {rxx(0),rxx(1),,rxx(p)},Levinson-Durbin递推过程如下:

  1. 计算 m = 1 m=1 m=1阶AR模型系数:
    a 1 ( 1 ) = − r x x ( 1 ) r x x ( 0 ) σ 1 2 = r x x ( 0 ) − ∣ r x x ( 1 ) ∣ 2 r x x ( 0 ) \begin{aligned} a_1^{(1)}&=-\frac{r_{xx}(1)}{r_{xx}(0)}\\ \sigma_1^2&=r_{xx}(0)-\frac{|r_{xx}(1)|^2}{r_{xx}(0)} \end{aligned} a1(1)σ12=rxx(0)rxx(1)=rxx(0)rxx(0)rxx(1)2

  2. 递推计算 m = 2 , 3 , ⋯   , p m=2,3,\cdots,p m=2,3,,p阶AR模型系数:
    k m = r x x ( m ) + ∑ i = 1 m − 1 a i ( m − 1 ) r x x ( m − i ) σ m − 1 2 a m ( m ) = k m a i ( m ) = a i ( m − 1 ) + k m a m − i ( m − 1 ) σ m 2 = σ m − 1 2 ( 1 − ∣ k m ∣ 2 ) \begin{aligned} k_m&=\frac{r_{xx}(m)+\sum_{i=1}^{m-1}a_i^{(m-1)}r_{xx}(m-i)}{\sigma_{m-1}^2}\\ a_m^{(m)}&=k_m\\ a_i^{(m)}&=a_i^{(m-1)}+k_ma_{m-i}^{(m-1)}\\ \sigma_m^2&=\sigma_{m-1}^2(1-|k_m|^2)\\ \end{aligned} kmam(m)ai(m)σm2=σm12rxx(m)+i=1m1ai(m1)rxx(mi)=km=ai(m1)+kmami(m1)=σm12(1km2)

举一个栗子,假设 r x x ( 0 ) = 3 r_{xx}(0)=3 rxx(0)=3 r x x ( 1 ) = 2 r_{xx}(1)=2 rxx(1)=2 r x x ( 2 ) = 1 r_{xx}(2)=1 rxx(2)=1,使用Levinson-Durbin递推2阶AR模型系数:

  1. 计算 m = 1 m=1 m=1阶AR模型系数:
    a 1 ( 1 ) = − r x x ( 1 ) r x x ( 0 ) = − 2 3 σ 1 2 = r x x ( 0 ) − ∣ r x x ( 1 ) ∣ 2 r x x ( 0 ) = 5 3 \begin{aligned} a_1^{(1)}&=-\frac{r_{xx}(1)}{r_{xx}(0)}=-\frac{2}{3}\\ \sigma_1^2&=r_{xx}(0)-\frac{|r_{xx}(1)|^2}{r_{xx}(0)}=\frac{5}{3} \end{aligned} a1(1)σ12=rxx(0)rxx(1)=32=rxx(0)rxx(0)rxx(1)2=35

  2. 递推计算 m = 2 m=2 m=2阶AR模型系数:
    k 2 = r x x ( 2 ) + a 1 ( 1 ) r x x ( 1 ) σ 1 2 = 1 5 a 2 ( 2 ) = k 2 = 1 5 a 1 ( 2 ) = a 1 ( 1 ) + k 2 a 1 ( 1 ) = − 4 5 σ 2 2 = σ 1 2 ( 1 − ∣ k 2 ∣ 2 ) = 8 5 \begin{aligned} k_2&=\frac{r_{xx}(2)+a_1^{(1)}r_{xx}(1)}{\sigma_{1}^2}=\frac{1}{5}\\ a_2^{(2)}&=k_2=\frac{1}{5}\\ a_1^{(2)}&=a_1^{(1)}+k_2a_{1}^{(1)}=-\frac{4}{5}\\ \sigma_2^2&=\sigma_{1}^2(1-|k_2|^2)=\frac{8}{5}\\ \end{aligned} k2a2(2)a1(2)σ22=σ12rxx(2)+a1(1)rxx(1)=51=k2=51=a1(1)+k2a1(1)=54=σ12(1k22)=58

所以2阶AR模型为:
x ( n ) = − ∑ k = 1 2 a k x ( n − k ) = 0.8 x ( n − 1 ) − 0.2 x ( n − 2 ) x(n)=-\sum_{k=1}^2a_kx(n-k)=0.8x(n-1)-0.2x(n-2) x(n)=k=12akx(nk)=0.8x(n1)0.2x(n2)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

信号处理 | AR模型与Levinson-Durbin递推 的相关文章

  • 打破传统降噪技术 看网易云信在语音降噪的实践应用

    导读 随着音视频会议 娱乐互动直播 在线教育产品的火热发展 产品中令人愉悦的音效音质体验是必不可少的 文 飒飒 网易云信音视频算法工程师 但在音视频实时通信中 难免会遇到各种我们不希望出现的声音 例如电流声 键盘敲击声 嘈杂声等 这些统称为
  • 小波理论的基本概念及概述 学习笔记

    本文来自 https blog csdn net seek97 article details 81266223 感谢前辈的分析和总结 下文我做了简要的修改 一 前言 欢迎阅读此份关于小波变换的入门教程 小波变换是一个相对较新的概念 其出现
  • 模拟域频率与数字域频率关系

    我的书 淘宝购买链接 当当购买链接 京东购买链接 数字频率于模拟频率互相转化的公式如下 2 f
  • 类EMD的“信号分解方法”及MATLAB实现(第三篇)——CEEMDAN

    来帮忙填坑了 今天接着之前讲过的EEMD和CEEMD 来介绍一下 类EMD 分解方法的第三篇 1 CEEMDAN 自适应噪声完备集合经验模态分解 的概念 CEEMDAN 1 Complete Ensemble Empirical Mode
  • python 绘制 频谱图

    效果图 t np arange 0 time 1 0 sampling rate wavename morl cmorB C where B is the bandwidth and C is the center frequency to
  • 记录 Libevent的常用功能示例

    介绍 Libevent是开源社区一款高性能的I O框架库 是reactor模式的优秀体现 网上相关资料很多 这篇博文主要以尽量简练的代码实现TcpServer服务器功能 代码覆盖大部分的常用函数接口 通过代码能对Libevent的整体框架
  • matlab时域频域信号特征提取资料整合

    1 前言 最近在做一个项目 需要将声纳信号中的特征都提取出来进行分析 资料查到头秃终于整合出来了些东西 记录一下 由于不是专业人员 如果发现任何错误请不要大意的附在评论区 我会及时修改 谢谢 2 思路 思路这段引用自知乎大佬aresmiki
  • 信号处理算法(4):全球最快的傅里叶变换算法(FFTW)

    本文大部分内容转载自博客 congwulong https blog csdn net congwulong article details 7576012 FFTW Fastest Fourier Transform in the Wes
  • 基于空间平滑MUSIC算法的相干信号DOA估计(1)

    空间平滑MUSIC算法 1 1 前言 在上一篇博客中有提到 当多个入射信号相干时 传统MUSIC算法的效果就会不理想 具体原因是多个入射信号相干时 有部分能量就会散发到噪声子空间 使得MUSIC算法不能对其进行有效估计 针对这种情况 解相干
  • EC11编码器和单片机通信

    EC11编码器 EC11编码器通常又被称作为旋转编码器 一般主要是用于亮度 温度 频率 音量调节等参数控制 三只脚中的C脚接地 AB脚接上拉电阻后 当左转或右转时 AB脚就有脉冲信号输出 S1和S2脚为按压开关 按下时导通 旋转编码器的引脚
  • 用于分析脉冲类信号的二阶瞬态提取变换研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 文献来源 该文提出一种高分辨率时频分析方法
  • SDRAM操作说明——打开DDR3的大门

    SDRAM synchronous dynamic random access memory 同步动态随机存储器 所谓同步就是指需要时钟信号来控制命令数据 动态是指存储阵列需要不断地刷新来保证数据不会丢失 随机是指存取数据可以根据需要在不同
  • 图像构成与信号处理之二——信号滤波

    一 信号滤波与图像滤波 信号滤波和图像滤波都是信号处理的重要任务 它们在不同领域中有广泛的应用 一 信号滤波 信号滤波是对信号进行处理的过程 通过去除或抑制不需要的频率成分 以实现信号的平滑或去噪 信号滤波的目标是改变信号的频谱分布 以达到
  • 正交多载波调制(OFDM)

    Orthogonal Frequency Division Multiplexing OFDM OFDM is a special case of multi carrier communication as opposed to a co
  • 视频码率(Bitrate),帧率(FPS)和分辨率的联系与区别

    一 视频码率 码率就是数据传输时单位时间传送的数据位数 一般我们用的单位是kbps即千位每秒 也就是取样率 并不等同与采样率 采样率的单位是Hz 表示每秒采样的次数 单位时间内取样率越大 精度就越高 处理出来的文件就越接近原始文件 但是文件
  • 汽车雷达-综述

    目录 1 简介 2 发展史 3 技术参数 4 采用SIGe毫米波T R组件 5 汽车雷达中主要的信号处理单元 5 1 远程雷达 5 1 1 总体框图 5 1 2 FFT 5 1 3 DOA估计 5 1 3 1 和差测角 5 1 3 2 顺序
  • 离散傅里叶变换的一些理解和LTE基带信号生成的数学理解

    离散傅里叶变换 DFT 快速傅里叶变换 FFT 是一种运用蝶形算子计算DFT的方法 下面是matlab实现代码 close all clear fs 200 N 256 采样freq和数据点数 n 0 N 1 t n fs 时间序列 x 0
  • 单边带(SSB)调制技术

    文章目录 单边带 SSB 调制技术 1 双边带简述 2 单边带调制 单边带 SSB 调制技术 1 双边带简述 首先简述一下双边带调制 所谓双边带 DSB double sideband 调制 本质上就是调幅 时域上将基带信号x t 和高频载
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)

    FMC141是一款基于VITA57 4标准的4通道2 8GSPS 2 5GSPS 1 6GSPS采样率16位DA播放FMC子卡 该板卡为FMC 标准 符合VITA57 4与VITA57 1规范 16通道的JESD204B接口通过FMC 连接
  • 波端口的使用

    波导端口代表了计算域的一种特殊边界条件 它既可以激发能量 也可以吸收能量 这种端口模拟了连接到该结构的无限长波导 波导模式从结构向边界平面传播 从而以非常低的反射水平离开计算域 当端口中的波导模式与结构内部波导的模式完全匹配时 可以实现非常

随机推荐

  • TCP实时图像传输

    之前尝试过使用UDP进行图像传输 xff0c 而UDP协议要求包小于64K xff0c 对于较大的图像 xff0c 需要使用分片压缩的方式进行传输 xff0c 操作较复杂 xff0c 同时不能保证图片的每一部分都能够正确传输 详见 xff1
  • STM32部分BUG及解决方法记录(不定期更新)

    1 编译使用CubeMX生成的代码时报错 Error L6218E Undefined symbol HAL PWREx DisableUCPDDeadBattery referred from stm32g4xx hal msp o 解决
  • 语音信号处理 | Python实现端点检测

    由于项目需要 xff0c 我要使用Python对语音进行端点检测 xff0c 在之前的博客使用短时能量和谱质心特征进行端点检测中 xff0c 我使用MATLAB实现了一个语音端点检测算法 xff0c 下面我将使用Python重新实现这个这个
  • 进程,线程,应用程序。概念理解

    简单的说 xff0c 进程 可以承载一组相关的 NET 程序集 xff0c 而 应用程序域 xff08 简称AppDomain xff09 是对该进程的逻辑细分 一个应用程序域进一步被细分成多个 上下文边界 xff0c 这些边界用来分组目的
  • 搭建STM32开发环境

    安装keil 点击这里下载安装最新版的keil 破解 以管理员身份运行keil xff0c 打开File gt License Management 复制CID xff0c 如下 xff1a 运行keygen2032 exe xff0c 修
  • 路径规划 | 图搜索算法:DFS、BFS、GBFS、Dijkstra、A*

    地图数据常常可以用图 Graph 这类数据结构表示 xff0c 那么在图结构中常用的搜索算法也可以应用到路径规划中 本文将从图搜索算法的基本流程入手 xff0c 层层递进地介绍几种图搜索算法 首先是两种针对无权图的基本图搜索算法 xff1a
  • 移动机器人中地图的表示

    在学习算法之前 xff0c 首先要做的是理解数据 xff0c 所以本专栏在开始介绍运动规划算法前 xff0c 首先介绍一下地图的数据形式 地图有很多种表示形式 xff0c 在移动机器人中比较常用的是尺度地图 拓扑地图 语义地图 尺度地图 x
  • 路径规划 | 随机采样算法:PRM、RRT、RRT-Connect、RRT*

    基于图搜索的路径规划算法主要用于低维度空间上的路径规划问题 xff0c 它在这类问题中往往具有较好的完备性 xff0c 但是需要对环境进行完整的建模工作 xff0c 在高维度空间中往往会出现维数灾难 为了解决这些问题 xff0c 本文将介绍
  • ROS多机通信

    配置主从机IP地址 分别使用sudo vi etc hosts在主从机的 etc hosts文件中添加下面的代码 xff0c 其中pi是主机的用户名 xff0c esdc是从机的用户名 ip要相应的进行更改 xff0c 可以使用ifconf
  • 路径规划 | 图搜索算法:JPS

    JPS算法全称为Jump Point Search xff0c 也就是跳点算法 xff0c 可以视为A 算法的一种改进算法 xff0c 它保留了A 算法的主体框架 xff0c 区别在于 xff1a A 算法是将当前节点的所有未访问邻居节点加
  • 路径规划 | 随机采样算法:Informed-RRT*

    在文章路径规划 随机采样算法 xff1a PRM RRT RRT Connect RRT 中 xff0c 介绍了具备渐近最优性的RRT 算法 随着采样点数的增多 xff0c RRT 算法的规划结果会逐渐收敛到最优 但是可以观察到 xff0c
  • Ubuntu20安装ROS noetic

    Ubuntu20对应的ROS版本为ROS noetic xff0c 安装过程如下 xff1a 1 打开Software amp Updates xff0c 勾选main universe restricted multiverse这四项 2
  • 使用VSCode进行远程C++开发

    本文以Windows连接Ubuntu子系统 WSL 为例来介绍VSCode的远程开发流程 首先在VSCode中安装Remote WSL插件 xff0c 重启VSCode xff0c 如下图所示 xff0c 连接WSL 如果是其他远程 xff
  • ROS话题发布和订阅节点的C++&Python实现

    本文将分别使用C 43 43 和Python来实现话题发布者和订阅者 xff0c 首先创建一个功能包 xff0c 命名为topic pub sub xff0c 添加roscpp xff0c rospy等依赖项 C 43 43 实现 创建话题
  • 只要活着,我愿意一辈子都做程序员

    前不久 xff0c 我看过一个有意思的帖子 xff0c 标题是 35岁是程序员的终点 作者列举了35岁的年龄已经不适合继续做程序员的种种原因 xff0c 试图说服在这个年龄段的程序员做出改变 xff0c 初一看 xff0c 我自己也觉得很有
  • 机器人自主导航 | ROS与移动底盘通信

    本实验是实现机器人自主导航的重要步骤 xff0c 对于轮式机器人 xff0c 可以通过在底盘加装轮式里程计的方式来获得机器人的速度数据 xff0c 这些数据可以用来辅助机器人实现自主定位 xff0c 同时机器人还需要将控制指令发送给移动底盘
  • 使用C++调用Python模块(Linux)

    使用Python调用C 43 43 库见 xff1a 我的另一篇博客 工程配置 本文使用的项目构建工具为CMake xff0c 使用FindPython工具在CMake工程中找到Python库 xff0c 注意CMake最低版本为3 12
  • ROS开机自启设置

    使用robot upstart功能包即可实现节点的开机自启 安装功能包 安装robot upstart功能包 xff0c 本文使用的Ubuntu20对应的ROS版本为noetic span class token function sudo
  • 信号处理 | 维纳滤波推导

    首先给出互相关函数定义 xff1a r s x m
  • 信号处理 | AR模型与Levinson-Durbin递推

    模型形式 由高斯白噪声驱动的全极点模型表示如下 xff1a e n