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

volterra滤波器知多少

volterra滤波器知多少

  • 前言-volterra级数
  • 从级数到滤波器,其实就是一个公式的不同理解
  • 参考
      • 三级目录

前言-volterra级数

\hspace{0.5cm}意大利数学家Volterra在1880年提出的一种泛函级数,用以推广Taylor级数,适用于研究积分方程和非线性系统。它的数学表达式是一个无穷级数,其中包含输入信号的多项式项,每一项都与输入信号在不同时间点上的值有关,反映了系统的非线性和记忆特性。Volterra级数的每一项称为内核(kernel),系数用w表示,不同的阶数L1, L2, …, Lm代表了系统的不同非线性程度和记忆长度。由于volterra级数的表达式是基于输入信号的幂次方,因此它能够捕捉到非线性系统的多项式结构,但不是所有的非线性系统都能用volterra级数准确表示。在实际应用中,volterra级数的阶数需要根据系统的复杂程度和计算资源来选择,阶数过高会导致计算复杂度增加,而阶数过低则可能导致逼近不准确。三阶volterra滤波器是volterra级数的一种特例,适用于大多数通信系统中的非线性均衡,但随着阶数的增加,内核的数量呈指数级增长,给计算带来了挑战。volterra级数在工程应用中面临收敛性问题,即并非所有的非线性系统都能找到收敛的volterra级数表达式,这限制了它的实际应用范围。

以上来自ai的回答,现在大语言模型的冲击,越来越不愿意写blog笔记了,信息来得容易,会让人变得越来越懒惰。

\hspace{0.5cm}经典的百度百科(翻译自维基百科)定义为“沃尔泰拉级数”,沃尔泰级数是非线性行为中的一种模型,类似于泰勒级数。它不同于泰勒级数的地方在于能够捕捉记忆效应。在非线性系统中,泰勒级数能够用于对输入的响应的逼近,如果在特定的某个时间内,输出是严格取决于输入的。对于沃尔泰级数,非线性系统的输出取决于任何其他的时间内的输入。这种属性使得其有能力捕捉一些器件的记忆效应,比如电容和电感。
沃尔泰级数被广泛应用于药物医学和生物学,尤其是神经科学。它也被应用于电气工程学科中内部调制失真的建模。在数学上,沃尔泰级数表示功能动态的拓展、非线性、时不变泛函。它被频繁的应用在系统识别。沃尔泰级数,即为无穷个多维卷积的和。沃尔泰级数可以通过两种不同的视角来理解:其中一种考虑两个实函数之间的映射操作,另一种考虑实函数往实数上的映射操作。由于假设的时不变系统,所以后者更为常用。
连续时间领域,一个连续的时不变系统,输入x(t),输出y(t)即为沃尔泰级数展开:
y(t)=h0+∑n=1N∫ab⋯∫abhn(τ1,⋯,τn)∏j=1nx(t−τj)dτjy(t) = h_0 + \sum_{n = 1}^{N} \int_{a}^{b} \cdots \int_{a}^{b} h_n(\tau_1, \cdots, \tau_n) \prod_{j = 1}^{n} x(t - \tau_j) d\tau_j y(t)=h0+n=1Nababhn(τ1,,τn)j=1nx(tτj)dτj通常通过调节合适的输出量级,常数ho可以调节为0。函数hn称为第n阶沃尔泰核,其可以当成是该系统高阶的脉冲响应函数。如果N是有限的,那么该级数是截断的。如果a,b,N都是有限的,级数被称为双重有限。
离散时间类似于连续时间:
y(n)=h0+∑p=1P∑τ1=ab⋯∑τp=abhp(τ1,⋯,τp)∏j=1px(n−τj)y(n) = h_0 + \sum_{p = 1}^{P} \sum_{\tau_1 = a}^{b} \cdots \sum_{\tau_p = a}^{b} h_p(\tau_1, \cdots, \tau_p) \prod_{j = 1}^{p} x(n - \tau_j) y(n)=h0+p=1Pτ1=abτp=abhp(τ1,,τp)j=1px(nτj)这里,hp被称为离散时间的沃尔泰核,如果P是有限的,级数操作就是截断的。如果a,b,P都是有限的,那么级操作被称为双重有限。
上述定义可以看出,还是需要假设时不变特点的。

从级数到滤波器,其实就是一个公式的不同理解

上面的公式也就是一种滤波器的表达,关键要看这个系数是变化的(自适应-时变系统)还是不变的(稳态-时不变系统)。还有一个就是实战中不可能有太多的阶数,二阶和三阶已经是极限了。此处参考一篇文档,从另一个角度来看一下一二三阶的volterra滤波器组成。首先假设一个线性无记忆的系统(直肠子):y(t)=h∗x(t)y(t)=h*x(t)y(t)=hx(t)然后在这个基础上,增加所谓的线性、离散、带记忆的时不变三个条件,就是经典的线性数字滤波器公式:y(n)=∑i=0nh(τi)∗x(n−τi)y(n)=\sum_{i=0}^nh(\tau_i)*x(n-\tau_i)y(n)=i=0nh(τi)x(nτi)而积分公式为y(t)=∫0th(τ)x(t−τ)dτy(t) = \int_{0}^{t} h(\tau) \, x(t - \tau) \, d\tauy(t)=0th(τ)x(tτ)dτ以上三个公式都很好理解,以下就是要烧脑了,我们实际生活的系统不可能理想的直通,存在各种非线性的魔怪,不知道 如何表达,除了一阶模拟了线性部分,能不能用高阶来模拟非线性的样子呢?答案是:能!同理我们描述一个无记忆的二阶非线性系统y2(n)=h2∗x2(t)y_2(n)=h_2*x^2(t)y2(n)=h2x2(t)下一步要考虑这个非线性离散的带记忆场景,这时候我们想一想相关运算,也就是我当前输入和历史某节点的输入相乘后可能对系统有所贡献,设定这个贡献系数为h2(pi,pj)h_2(p_i,p_j)h2(pi,pj),那么我们平铺一下这个公式y(n)=h2(p0,p0)⋅x(n)⋅x(n)+h2(p0,p1)⋅x(n)⋅x(n−1)+⋯+h2(p0,pn)⋅x(n)⋅x(0)+h2(p1,p1)⋅x(n−1)⋅x(n−1)+h2(p1,p2)⋅x(n−1)⋅x(n−2)+⋯+h2(p1,pn)⋅x(n−1)⋅x(0)+⋯+h2(pn,pn)⋅x(0)⋅x(0)=∑j=0nh2(p0,pj)⋅x(n)x(n−j)+∑j=0nh2(p1,pj)⋅x(n−1)x(n−j)+…=∑j=0n∑i=0nh2(pi,pj)⋅x(n−i)⋅x(n−j)\begin{align*} y(n) &= h_2(p_0,p_0)\cdot x(n)\cdot x(n) + h_2(p_0,p_1)\cdot x(n)\cdot x(n - 1) + \dots + h_2(p_0,p_n)\cdot x(n)\cdot x(0) \\ &\quad + h_2(p_1,p_1)\cdot x(n - 1)\cdot x(n - 1) + h_2(p_1,p_2)\cdot x(n - 1)\cdot x(n - 2) + \dots + h_2(p_1,p_n)\cdot x(n - 1)\cdot x(0) \\ &\quad + \dots + h_2(p_n,p_n)\cdot x(0)\cdot x(0) \\ &= \sum_{j= 0}^{n} h_2(p_0,p_j)\cdot x(n)x(n-j) + \sum_{j = 0}^{n} h_2(p_1,p_j)\cdot x(n - 1)x(n-j) + \dots \\ &= \sum_{j = 0}^{n} \sum_{i = 0}^{n} h_2(p_i,p_j)\cdot x(n-i)\cdot x(n-j) \end{align*}y(n)=h2(p0,p0)x(n)x(n)+h2(p0,p1)x(n)x(n1)++h2(p0,pn)x(n)x(0)+h2(p1,p1)x(n1)x(n1)+h2(p1,p2)x(n1)x(n2)++h2(p1,pn)x(n1)x(0)++h2(pn,pn)x(0)x(0)=j=0nh2(p0,pj)x(n)x(nj)+j=0nh2(p1,pj)x(n1)x(nj)+=j=0ni=0nh2(pi,pj)x(ni)x(nj)
这里h2(pi,pj)h_2(p_i,p_j)h2(pi,pj)叫做volterra的核。而一阶和二阶相加就组成了二阶volterra滤波器的基本形式。三阶同理,高阶省掉的部分叫截断。

参考

A Polynomial Multiple Variance Method for Volterra Filter Identification
二阶Volterra-LMS滤波器:非线性系统识别的利器
对Volterra级数公式的理解-1
关于三阶Volterra滤波器的一些理解
Volterra-series-based nonlinear system modeling and its engineering applications: A state-of-the-art review
Robust augmented Volterra adaptive filtering

三级目录

http://www.lryc.cn/news/583986.html

相关文章:

  • 申请注册苹果iOS企业级开发者证书需要公司拥有什么规模条件
  • Spring for Apache Pulsar->Reactive Support->Quick Tour
  • 时序数据库的存储之道:从数据特性看技术要点
  • Apache Dubbo实战:JavaSDK使用
  • Vscode——报错,加载 Web 视图时出错: Error: Could not register service worker
  • [特殊字符] 05_Jenkins 部署前端项目实现自动化部署
  • 企业网络安全的“金字塔”策略:构建全方位防护体系的核心思路
  • 基于SpringBoot旅游资源信息管理系统的设计与实现
  • 身份认证缺陷
  • 海外户储市场爆发期:安科瑞全链路能源方案如何重塑用户价值?
  • “Datawhale AI夏令营”基于带货视频评论的用户洞察挑战赛
  • 快速分页wpf
  • 微软云语音识别ASR示例Demo
  • 论文笔记(LLM distillation):Distilling Step-by-Step!
  • Flutter跨平台开发全解析
  • libimagequant 在 mac 平台编译双架构
  • 2025.07.09华为机考真题解析-第一题100分
  • SPGAN: Siamese projection Generative Adversarial Networks
  • 如何发现 Redis 中的 BigKey?
  • 速盾:高防CDN开发中的常见问题?
  • CANFD记录仪设备在无人驾驶快递车的应用
  • 数据同步平台部署指南
  • WebUI自动化知识点总结-基于Java语言
  • 解锁医疗新视界:医患共决策时间轴AI可视化工具
  • Flutter多线程机制深度解析
  • 【计算机基础理论知识】C++篇(二)
  • 利萨如图形详解:原理与Python动态绘制
  • 配置双网卡Linux主机作为路由器(连接NAT网络和仅主机模式网络)
  • pharokka phold--快速噬菌体注释工具
  • FeatherScan v4.0 – 适用于Linux的全自动内网信息收集工具