离散时间系统模型

离散时间系统模型

        离散时间系统模型是表示数字滤波器的方案。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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/138315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot配置文件 —— 超详细全方位教程

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您也对这篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) &#x1f9f8;祝诸君前程似锦&#xff0c;归来仍初心不忘&#xff01; &#x1f4dc;Spring&#xff0c;SpringBoot和SpringMVC的关系以及区别 —— 超准确…

Windows电脑训练 RT-DETR 改进算法 (Ultralytics) 教程,改进RTDETR算法(包括使用训练、验证、推理教程)

手把手从零开始训练 RT-DETR 改进项目 (Ultralytics版本) 教程,改进RTDETR算法 本文以Windows服务器为例:从零开始使用Windows训练 RT-DETR 算法项目 《芒果剑指 RT-DETR 目标检测算法 改进》 适用于芒果专栏改进RT-DETR算法 文章目录 百度 RT-DETR 算法介绍改进网络代码汇…

MySQL:语法速查手册【更新中...】

一、定义基本表 1、常用的完整性约束 主码约束 primary key外键约束 foreign key唯一性约束 unique非空性约束 not null取值约束 check2、例题 【例1】建立一个“学生”表Student&#xff0c;由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中…

8个月过去了,中国大模型落地进展如何?

就目前来看&#xff0c;大模型落地金融、能源行业先行&#xff0c;智能客服等生成类应用大于决策类应用&#xff0c;落地价值不及预期。然而随着行业定制化、模型轻量级化和数据安全化等技术的发展&#xff0c;AI大模型的落地应用将迎来更加广阔的发展空间。 作者|斗斗 编辑…

CPS:实现销售和广告的完美结合

随着互联网的快速发展&#xff0c;电商行业呈现出爆炸性的增长。在这个充满竞争的市场中&#xff0c;如何有效地吸引和引导消费者购买产品&#xff0c;成为电商企业成功的关键。而CPS&#xff08;Cost Per Sales&#xff09;作为一种创新的广告模式&#xff0c;正逐渐成为电商行…

关于pip basicsr,facexlib,realesrgan et al.安装报错。

首先basicsr是一个超分的库&#xff0c;在ubuntu系统上pip时会报错。 上图这种错误&#xff0c;或者其他的错误&#xff0c;有的方法让去github上安装&#xff0c;那种方法到setup.py的时候也会报错。 问题在于首先 -i的源要换成阿里的源&#xff0c;然后要安装他要求的库&…

ds前后台博客系统

源码私信或者公众号java大师获取 博客简介&#xff1a;本博客采用Spring Boot LayUI做为基础&#xff0c;进行的博客系统开发&#xff0c;与bootvue相比&#xff0c;更为适合开发简单的系统&#xff0c;并且更容易上手&#xff0c;简单&#xff01;高效&#xff01;更易上手&a…

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

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

使用 `open-uri.with_proxy` 方法打开网页

Ruby 爬虫程序如下&#xff1a; require open-uri require nokogiri# 定义代理信息 proxy_host jshk.com.cn# 定义要爬取的网页 URL url http://www.example.com# 使用代理信息打开网页 open-uri.with_proxy(proxy_host, proxy_port) do |proxy|# 使用 Nokogiri 库解析网页内…

mysql主从复制和读写分离

什么叫主从复制&#xff1f; 主从复制架构图和数据流向 主MySQL上的数据、新增、修改库、表、表里的数据。都会同步到从MySQL上 面试题&#xff1a;MySQL的主从复制模式 1、 异步复制&#xff1a;MySQL的默认复制就是异步复制。工作中也一般使用异步复制。只要执行完之后&am…

excel记录wFm数值(推理过程)

1 导入计算wfm库2 实例化具体的指标 3 列表循环之前&#xff0c;设置空list 4 单图评测-将图号、图片名、数值记录 列表里面存储dict 5 将excel列表结果逐个存入excel.xlsx文件 完整代码 test_CPD.py ### test_CPD.py ### import torch import torch.nn.functional as Fimpor…

Autosar模块介绍:FEE(Flash模拟EEPROM)

上一篇 | 返回主目录 | 下一篇 Autosar模块介绍&#xff1a;FEE(Flash模拟EEPROM 1 基本术语解释2 Ea组成结构图3 Ea基本操作3.1 通用操作3.2 作业的进程&#xff08;通用需求&#xff09;3.3 读操作过程3.4 写操作过程3.5 擦除过程3.6 比较过程 4 Ea常用操作时序4.1 初始化4.…

SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对这篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) &#x1f4dc;SpringIOC和DI的代码实现&#xff0c;Spring如何存取对象&#xff1f;Controller、Service、Repository、Component、Configuration、Bean DI详…

【沐风老师】3dMax使用克隆修改器插件创建旋转楼梯教程

3DMAX克隆修改器插件&#xff0c;它通过增量平移、旋转和缩放输入几何体来创建对象的副本。在某些方面&#xff0c;它类似于 3dMax 的内置“阵列”工具&#xff0c;但有一个主要优点 -克隆修改器是完全参数化的&#xff0c;因此您可以随时更改重复项的数量及其分布。其他功能包…

LeetCode-剑指 Offer 22. 链表中倒数第k个节点(C语言 )

目录捏 一、题目描述二、示例与提示三、思路四、代码 一、题目描述 给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号&#xff0c;请查找并返回倒数第 cnt 个训练项目编号。 二、示例与提示 示例 1&#xff1a; 输入&#xff1a; head [2,4,7,8], cnt 1 输…

北大Cobot V4.3换新登场

库博SAST V4.3焕然一新&#xff0c;重装上市。作为国内最早的研究并成功开发SAST产品的团队&#xff0c;北大软件下属与北京大学国家工程与软件工程研究中心组成的库博团队&#xff0c;从2012年就起步研发静态应用安全测试产品—Cobot。历经10余年迭代升级&#xff0c;目前已经…

JAVA数据代码示例

首先&#xff0c;我们需要导入一些必要的Java库 java import java.net.URL; import java.net.HttpURLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; 然后&#xff0c;我们可以创建一个URL对象&#xff0c;表示我们要爬取的网页的URL。 jav…

Linux安装微信

Linux安装微信 环境&#xff1a;ubuntu 20.04 https://archive.ubuntukylin.com/ubuntukylin/pool/partner/weixin_2.1.4_amd64.deb sudo dpkg -i weixin_2.1.4_amd64.deb完成 参考文章

uniapp h5发行

前端使用uniapp开发项目完成后&#xff0c;需要将页面打包&#xff0c;生成H5的静态文件&#xff0c;部署在服务器上。 这样通过服务器链接地址&#xff0c;直接可以在手机上点开来访问。 打包全步骤如下&#xff1a; 首先在manifest.json文件中进行基础配置&#xff0c;获取…

银行数据中心机房动力环境监控系统设计与优化

安科瑞电气股份有限公司 上海嘉定201801 摘要&#xff1a;结合银行数据中心建设项目&#xff0c;设计银行数据中心机房动力环境监控系统&#xff0c;分析银行数据中心机房监控对象、搭建系统监控架构&#xff0c;给出监控实现方法&#xff0c;*后针对运行一段时间出现的问题&a…