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

离散时间系统模型

离散时间系统模型

        离散时间系统模型是表示数字滤波器的方案。MATLAB® 科学计算环境支持若干种离散时间系统模型,这些模型将在以下章节中介绍:

  1. ​传递函数
  2. 零极点增益
  3. 状态空间
  4. 部分分式展开式(残差形式)
  5. 二阶节 (SOS)
  6. 格型结构体
  7. 卷积矩阵

传递函数

      传递函数是数字滤波器的一种基本 Z 域表示,它将滤波器表示为两个多项式的比值。它是此工具箱的主要离散时间模型。数字滤波器的差分方程的 Z 变换的传递函数模型说明如下

       此处,常量 b(i) 和 a(i) 是滤波器系数,滤波器的阶数是 n 和 m 的最大值。在 MATLAB 环境中,您将这些系数存储在两个向量中(按照惯例是行向量),一个行向量用于分子,一个行向量用于分母。有关传递函数形式的详细信息,请参阅滤波器和传递函数。

零极点增益

传递函数的分解形式(又称为零极点增益形式)为

       按照惯例,多项式系数存储在行向量中,多项式根存储在列向量中。因此,在零极点增益形式中,传递函数的分子和分母的零点和极点位置位于列向量中。分解传递函数增益 k 是 MATLAB 标量。

poly 和 roots 函数在多项式表示和零极点增益表示之间转换。例如,一个简单 IIR 滤波器如下

b = [2 3 4];
a = [1 3 3 1];

此滤波器的零点和极点是

q = roots(b)
p = roots(a)
% Gain factor
k = b(1)/a(1)

回到最初的多项式,

bb = k*poly(q)
aa = poly(p)

请注意,本例中的 b 和 a 表示传递函数:

       对于 b = [2 3 4]roots 函数会缺失 z 等于 0 时的零点。事实上,只要输入传递函数的极点数多于零点数(或相反),该函数都会缺失 z 等于 0 时的极点和零点。这在大多数情况下是可以接受的。然而,为了避免此问题,请在使用 roots 函数之前,直接追加零以使向量长度相同;

 例如,b = [b 0]

状态空间

      将数字滤波器或差分方程组表示为一组一阶差分方程组始终是可能的。在矩阵或状态空间形式中,您可以将公式写为

,

其中 u 是输入,x 是状态向量,而 y 是输出。对于单通道系统,A 是 m×m 矩阵,其中 m 是滤波器的阶数,B 是列向量,C 是行向量,D 是标量。对于输入 u 和输出 y 成为向量、BC 和 D 成为矩阵的多通道系统,状态空间表示法尤其方便。

       状态空间表示很容易扩展到 MATLAB 环境。ABC 和 D 是矩形数组;MATLAB 函数将它们分别视为单个变量。

对状态空间方程进行 Z 变换并将其组合,表明状态空间形式和传递函数形式的等效性:

       如果您不熟悉线性系统的状态空间表示,不要担心。一些滤波器设计算法在内部使用状态空间形式,但无需了解任何状态空间概念即可成功使用它们。不过,如果您的应用大量使用基于状态空间的信号处理,请了解 Control System Toolbox™ 产品,以获得全面的状态空间工具库。

部分分式展开式(残差形式)

每个传递函数还具有对应的部分分式展开(又称为残差形式),如下式所示

前提是 H(z) 没有重复的极点。此处,n 是有理传递函数 b(z)/a(z) 的分母多项式的次数。如果 r 是重极点 sr,则 H (z) 具有以下形式的项:

       Signal Processing Toolbox™ 中的 residuez 函数用于将传递函数转换为部分分式展开式形式,或者反之。residuez 末尾的“z”表示 z 域或离散域。residuez 以列向量 p 形式返回极点,以列向量 r 形式返回极点对应的残差,以行向量 k 形式返回原始传递函数的任何不恰当部分。如果两个极点的差值的模小于任一极点的模的 0.1%,则 residuez 确定这两个极点相同。

部分分式展开式在信号处理中以一种求传递函数的逆 Z 变换的方法出现。例如,下式

的部分分式展开式是

b = [-4 8];
a = [1 6 8];
[r,p,k] = residuez(b,a)

它对应于

要想求出 H(z) 的逆 Z 变换,可以求 H(z) 的两个加数的逆 Z 变换之和,这可给出因果冲激响应:

要在 MATLAB 环境中验证这一点,请键入

imp = [1 0 0 0 0];
resptf = filter(b,a,imp)
respres = filter(r(1),[1 -p(1)],imp)+...filter(r(2),[1 -p(2)],imp)

二阶节 (SOS)

任何传递函数 H(z) 都有二阶节表示

其中 L 是描述系统的二阶节的数量。MATLAB 环境将离散时间系统的二阶节形式表示为 L×6 数组 sossos 的每行包含一个二阶节,其中行元素是描述该二阶节的三个分子和三个分母系数。

       有许多方法以二阶节形式表示滤波器。通过仔细对极点和零点对组进行配对、对级联中的各节进行排序以及对各节进行乘性定标,可以在某些定点滤波器实现中降低量化噪声增益并避免溢出。Linear System Transformations 中所述的函数 zp2sos 和 ss2sos 用于执行零极点配对、节缩放和节排序。

注意

所有 Signal Processing Toolbox 二阶节变换仅适用于数字滤波器。

格型结构体

对于由多项式系数 a(n) 说明的离散的 N 阶全极点或全零滤波器,n = 1,2...,N+1,有 N 个对应的格型结构体系数 k (n),n = 1,2...,N。参数 k (n) 也称为滤波器的反射系数。给定这些反射系数,您可以实现如下所示的离散滤波器。

FIR 和 IIR 格型滤波器结构图

对于由多项式系数 a 和 b 说明的一般零极点 IIR 滤波器,分母 a 有格型系数 k (n),分子 b 有阶梯系数 v (n)。格型/梯形滤波器可以实现为

格型/梯形滤波器示意图

工具箱函数 tf2latc 接受多项式形式的 FIR 或 IIR 滤波器,并返回对应的反射系数。多项式形式的 FIR 滤波器的一个示例是

b = [1.0000   0.6149   0.9899   0.0000   0.0031  -0.0082];

此滤波器的格型(反射系数)表示为

k = tf2latc(b)

对于 IIR 滤波器,反射系数的幅值提供简单的稳定性检查。如果对应于一个多项式的所有反射系数的量级都小于 1,则该多项式的所有根都在单位圆内。例如,假设某 IIR 滤波器具有上述分子多项式 b 和如下的分母多项式:

a = [1 1/2 1/3];

则该滤波器的格型表示为

[k,v] = tf2latc(b,a);  

对于 k 中的所有反射系数,abs(k) < 1,因此该滤波器是稳定的。

函数 latc2tf 根据滤波器的格型(反射)系数计算滤波器的多项式系数。给定反射系数向量 k,对应的多项式形式为

b = latc2tf(k);

格型或格型/梯形系数可用于使用函数 latcfilt 实现滤波器。

卷积矩阵

在信号处理中,对两个向量或矩阵求卷积等效于用一个输入操作数对另一个输入操作数进行滤波。这种关系支持将数字滤波器表示为卷积矩阵

给定任意向量,工具箱函数 convmtx 生成一个矩阵,该矩阵与另一个向量的内积等于这两个向量的卷积。生成的矩阵表示一个数字滤波器,您可以将其应用于适当长度的任何向量;操作数的内部维度必须一致才能计算内积。

表示数字滤波器分子系数的向量 b 的卷积矩阵为

b = [1 2 3];
x = randn(3,1);
C = convmtx(b',3);

求 b 与 x 的卷积的两种等效方法如下。

y1 = C*x;
y2 = conv(b,x);

相关文章:

离散时间系统模型

离散时间系统模型 离散时间系统模型是表示数字滤波器的方案。MATLAB 科学计算环境支持若干种离散时间系统模型&#xff0c;这些模型将在以下章节中介绍&#xff1a; ​传递函数零极点增益状态空间部分分式展开式&#xff08;残差形式&#xff09;二阶节 (SOS)格型结构体卷积矩…...

Nginx学习(在 Docker 中使用 Nginx)

1. 安装Nginx 使用 docker pull nginx 下载最新的 Nginx Docker 镜像。 下载完毕后&#xff0c;使用 docker run -d -p 80:80 --name nginx nginx&#xff0c;即可启动 Nginx 容器。其中&#xff0c;-p 80:80 表示将容器的 80 端口映射到 主机的 80 端口&#xff1b;--name ng…...

【Java】集合(一)单列集合List

1.集合 可以动态保存任意多个对象&#xff0c;并提供了一系列的操作对象的方法&#xff1a;add、remove、set、get等。 2.集合框架体系 分为两大类&#xff1a; 单列集合和双列集合 3.List接口基本介绍 List接口是Collection接口的子接口 List集合类中元素有序&#xff0…...

实战 | 基于卷积神经网络的蘑菇识别微信小程序

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2023.11.13 Last edited: 2023.11.13 导读&#xff1a;其实没啥难的&#xff0c;主要是随手搞了就发出来把&#xff0c;太久没有水过帖子了&…...

如何选择共享wifi项目服务商,需要注意哪些?

在移动互联网时代&#xff0c;无线网络已经成为人们生活中不可或缺的一部分。随着5G时代的到来&#xff0c;共享WiFi项目成为了市场上备受关注的焦点。在众多共享WiFi公司中&#xff0c;如何选择共享wifi项目服务商合作&#xff0c;今天我们就来盘点下哪些公司可靠&#xff01;…...

ubuntu20.04 MYNTEYE S 相机运行与标定记录

ubuntu20.04 MYNTEYE S 相机运行与标定记录 环境 ubuntu20.04 opencv3.3.1 硬件 mynteye S1030 OpenCV 3.4.3 安装 Jetson Nano小觅相机(MYNT EYE S)开发调试指南 mkdir -p ~/tools/opencv cd ~/tools/opencvgit clone https://github.com/opencv/opencv.git cd opencv/…...

有效降低数据库存储成本方案与实践 | 京东云技术团队

背景 随着平台的不断壮大&#xff0c;业务的不断发展&#xff0c;后端系统的数据量、存储所使用的硬件成本也逐年递增。从发展的眼光看&#xff0c;业务与系统要想健康的发展&#xff0c;成本增加的问题必须重视起来。目前业界普遍认同开源节流大方向&#xff0c;很多企业部门…...

分布式数据库Schema 变更 in F1 TiDB

分布式数据库Schema 变更 in F1 & TiDB 【转载】TiDB 源码阅读系列文章&#xff08;十七&#xff09;DDL 源码解析 | PingCAP 上述文章主要叙述了从DDL语句发起到执行的过程&#xff0c;简单介绍了弄一套相同的模式来后台处理数据回填&#xff0c;从而提高DDL的并发度的一…...

图形库篇 | EasyX | 图像处理

图形库篇 | EasyX | 图像处理 图像类型 IMAGE表示图像,用于定义一个图像变量,与导入的图片资源一一对应。 IMAGE img;加载与绘制图像 函数功能函数加载图像void loadimage(IMAGE* pDstImg,LPCTSTR pImgFile,int nwidth = 0,int nHeight = 0,bool bResize = false)绘制图像v…...

AWTK UI 自动化测试工具发布

AWTK UI 自动化 提供了兼容 Appium 的接口&#xff0c;可以使用 Appium 的工具来进行 UI 自动化测试。但是使用起来有点麻烦&#xff0c;用的人不多&#xff0c;所以最终决定开发一个 AWTK 专用的 UI 自动化测试工具。相比 Appium&#xff0c;这个工具有下列特点&#xff1a; …...

Java后端开发——JDBC入门实验

JDBC&#xff08;Java Database Connectivity&#xff09;是Java编程语言中用于与数据库建立连接并进行数据库操作的API&#xff08;应用程序编程接口&#xff09;。JDBC允许开发人员连接到数据库&#xff0c;执行各种操作&#xff08;如插入、更新、删除和查询数据&#xff09…...

LCA

定义 最近公共祖先简称 LCA&#xff08;Lowest Common Ancestor&#xff09;。两个节点的最近公共祖先&#xff0c;就是这两个点的公共祖先里面&#xff0c;离根最远的那个。 性质 如果 不为 的祖先并且 不为 的祖先&#xff0c;那么 分别处于 的两棵不同子树中&#…...

ts学习02-数据类型

新建index.html <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </h…...

javaSE的发展历史以及openjdk和oracleJdk

1 JavaSE 的发展历史 1.1 Java 语言的介绍 SUN 公司在 1991 年成立了一个称为绿色计划&#xff08;Green Project&#xff09;的项目&#xff0c;由 James Gosling&#xff08;高斯林&#xff09;博士领导&#xff0c;绿色计划的目的是开发一种能够在各种消费性电子产品&…...

【入门Flink】- 10基于时间的双流联合(join)

统计固定时间内两条流数据的匹配情况&#xff0c;需要自定义来实现——可以用窗口&#xff08;window&#xff09;来表示。为了更方便地实现基于时间的合流操作&#xff0c;Flink 的 DataStrema API 提供了内置的 join 算子。 窗口联结&#xff08;Window Join&#xff09; 一…...

【Python Opencv】图片与视频的操作

文章目录 前言一、opencv图片1.1 读取图像1.2 显示图像1.3 写入图像1.4 示例代码 二、Opencv视频2.1 从相机捕获视频获取摄像头一帧一帧读取显示图片VideoCapture 中的get和set函数示例代码 2.2 从文件播放视频示例代码 2.3 保存视频示例代码 总结 前言 在计算机视觉和图像处理…...

【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

&#x1f38a;专栏【JavaSE】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;System类⭐exit()⭐currentTimeMillis()&#x1f384;用…...

【Git】的分支和标签的讲解及实际应用场景

目录 讲解 环境讲述 分支标签的区别 分支 命令 场景应用 标签 命令 标签规范 讲解 环境讲述 当软件从开发到正式环境部署的过程中&#xff0c;不同环境的作用 开发环境&#xff1a;用于开发人员进行软件开发、测试和调试。在这个环境中&#xff0c;开发人员可以快速地…...

修改django开发环境runserver命令默认的端口

runserver默认8000端口 虽然python manage.py runserver 8080 可以指定端口&#xff0c;但不想每次runserver都添加8080这个参数 可以通过修改manage.py进行修改&#xff0c;只需要加三行&#xff1a; from django.core.management.commands.runserver import Command as Ru…...

kubeadm安装k8s高可用集群

目录 一、环境规划 二、注意事项&#xff1a; 三、环境准备&#xff1a; 1. 关闭防火墙规则&#xff0c;关闭selinux&#xff0c;关闭swap交换&#xff1a; 2. 修改主机名 3. 所有节点修改hosts文件&#xff1a; 4. 所有节点时间同步&#xff1a; 5. 所有节点实现Linux的资…...

三自由度动力学模型Simulink_Carsim; Simulink_Carsim联合仿真验证模型; 包括车辆误差跟踪模型; 包括纵滑刚度、侧偏刚度估计方法; 包括详细PPT(22页)

三自由度动力学模型Simulink/Carsim; Simulink/Carsim联合仿真验证模型; 包括车辆误差跟踪模型; 包括纵滑刚度、侧偏刚度估计方法; 包括详细PPT&#xff08;22页&#xff09;&#x1f697; 三自由度动力学模型及Simulink/Carsim联合仿真资料 核心数学推导与代码实现 图片中的推…...

MinHook终极指南:为什么纯C语言实现是API钩子的最佳选择

MinHook终极指南&#xff1a;为什么纯C语言实现是API钩子的最佳选择 【免费下载链接】minhook The Minimalistic x86/x64 API Hooking Library for Windows 项目地址: https://gitcode.com/gh_mirrors/mi/minhook MinHook是一个极简主义的x86/x64 API钩子库&#xff0c;…...

[具身智能-257]:监督式学习、无监督式学习、半监督式学习、强化学习的概念、差别、代码实现的原理

这四种学习范式&#xff0c;其实就是教机器“如何聪明”的四种不同方法。我们可以把它们想象成四种不同的“教育模式”&#xff0c;每种模式下&#xff0c;机器面临的“考题”和“老师”都不一样。&#x1f393; 监督学习&#xff1a;有老师手把手教核心概念 想象一下&#xff…...

Android 8.0长时定时关机总延迟?我换了种思路,用系统广播ACTION_TIME_TICK轻松搞定

Android定时任务稳定性优化&#xff1a;从AlarmManager到系统广播的实践之路 在智能硬件和特定应用场景中&#xff0c;定时功能的可靠性往往直接影响用户体验。想象一下&#xff0c;你为孩子设置的学习软件定时关闭功能延迟了几分钟&#xff0c;或者智能家居设备的自动关机未能…...

保姆级教程:在Ubuntu 20.04上跑通ORB-SLAM3双目模式(EuRoC MH04数据集实测)

从零到一&#xff1a;Ubuntu 20.04下ORB-SLAM3双目模式实战全记录&#xff08;EuRoC MH04数据集篇&#xff09; 当第一次在实验室的显示器上看到ORB-SLAM3成功重建出MH04数据集的完整三维环境时&#xff0c;那种成就感至今难忘。作为视觉SLAM领域的标杆算法&#xff0c;ORB-SL…...

Vue3+Cesium实战避坑指南:从环境配置到坐标转换的常见问题解析

1. Vue3Cesium环境配置避坑指南 第一次在Vue3项目中集成Cesium时&#xff0c;我踩了不少坑。记得当时光是让地球显示出来就折腾了大半天&#xff0c;各种报错让人抓狂。现在回想起来&#xff0c;其实很多问题都有规律可循。 1.1 正确安装Cesium依赖 新手最容易犯的错误就是直接…...

别再只盯着Dice了!医疗影像分割模型评估,用DeepMind的surface-distance库搞定Hausdorff 95%和ASSD

医疗影像分割评估进阶&#xff1a;为什么Hausdorff 95%和ASSD比Dice更能反映临床价值 在KiTS19肾脏肿瘤分割挑战赛中&#xff0c;一支参赛队伍的3D Dice系数达到0.92&#xff0c;却在临床医生评估环节被指出"肿瘤边界模糊不清"。这个典型案例揭示了医疗影像分割评估的…...

RTX4090D显存优化:OpenClaw长文本任务的内存管理技巧

RTX4090D显存优化&#xff1a;OpenClaw长文本任务的内存管理技巧 1. 当32K上下文遇上24G显存 第一次在RTX4090D上尝试用Qwen3-32B处理32K tokens的长文档时&#xff0c;我的终端突然弹出了显存不足的警告。这让我意识到&#xff0c;即使拥有24GB显存的旗舰显卡&#xff0c;面…...

微服务下的跨域问题

在单体架构时代&#xff0c;跨域问题还不算突出&#xff1b;但进入微服务、前后端分离、多端统一时代&#xff0c;跨域几乎是每个项目必踩的坑。尤其在微服务架构下&#xff0c;网关、认证、分布式部署、多域名并存&#xff0c;让跨域变得更复杂、更隐蔽。本文从浏览器同源策略…...

React Native Tab View与状态管理库集成:Redux、MobX实战指南

React Native Tab View与状态管理库集成&#xff1a;Redux、MobX实战指南 【免费下载链接】react-native-tab-view A cross-platform Tab View component for React Native 项目地址: https://gitcode.com/gh_mirrors/re/react-native-tab-view 在React Native应用开发中…...