《数字信号处理》学习04-离散时间系统中的线性时不变系统

2024-09-05 01:28

本文主要是介绍《数字信号处理》学习04-离散时间系统中的线性时不变系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一,系统及离散时间系统 

 二,离散时间系统中的线性时不变系统

1,线性系统

 1) 可加性

 2) 比例性(齐次性)

3)叠加原理(叠加性质)

 2,时不变系统(移不变系统)


通过前几篇文章的学习,此时我对序列的相关概念和运算已经有所掌握,接下来我将开始学习新的概念“离散时间系统中的线性时不变系统”,

一,系统及离散时间系统 

首先需要知道系统的概念,在《信号与系统》中,系统是一个具有特定功能的整体,由相互关联的事物组合而成。

由于需要处理的信号基本是离散时间信号(既序列),因此,在这篇文章中我着重学习用于处理序列的离散时间系统。

离散时间系统是指其输入和输出信号都是离散的时间序列。

离散时间系统可以将输入序列 x(n) 变换成输出序列 y(n) ,因此可以用  T\left [ \cdot \right ] 表示这种系统,其中:

  1. T :transform 变换,输入序列 x(n) 变换成输出序列 y(n) 。
  2. 中间的点号  \cdot  用来表示输入的序列
  3. 例如:“将输入序列 x(n) 变换成输出序列 y(n)”就可以用  y(n)=T\left [ x(n) \right ]  表示。
    输出序列一般 用 英文字母 y 指代,y 是 yield  的缩写,yield 有产出,产生,产量的意思。
  4. 不同的离散时间系统会对 输入序列 x(n) 做不同的操作,例如,只在输入信号x(n)前面乘上系数n 的离散时间系统 :y(n)=T\left [ x(n) \right ]=nx(n),或者是将输入信号x(n)取平方的离散时间系统:y(n)=T\left [ x(n) \right ]=x^{2}(n)

需要注意的是:“将输入序列 x(n) 变换成输出序列 y(n)” 这是一种运算,因此,离散时间系统就是一种运算。可以用下图表示:

 二,离散时间系统中的线性时不变系统

 线性时不变系统由两部分组成:线性系统+时不变系统。

先学习线性系统。

1,线性系统

 首先需要知道什么是线性,在大学里面会有《高等数学》课,涉及到线性齐次(或非齐次)微分方程,还有《线性代数》课,可以看到,熟知线性的概念很重要。

线性:就是具有线的特性,而这个线就是直线,在列直线方程时都是使用一次方程,因此,“线性” 跟“一次”挂钩,在运算时,所涉及到的变量都必须是一次项,如果有二次及以上次数的项出现,那么就是非线性。

在《数字信号处理》中,“线性” 一词出现在 “线性系统” 中,当一个系统满足叠加原理(或叠加性质),就是一个线性系统。

线性系统的叠加原理包括比例性和可加性这两个特性。

 假设有两个不同的输入序列 x_{1}(n)  和  x_{2}(n)  分别作用于 离散时间系统  T\left [ \cdot \right ] ,得到离散时间系统 T\left [ \cdot \right ] 分别 对这两个输入序列的响应 序列 T\left [ x_{1}(n) \right ]  和  T\left [ x_{2}(n) \right ],令y_{1}(n)=T\left [ x_{1}(n) \right ],y_{2}(n)=T\left [ x_{2}(n) \right ] 

 1) 可加性

将两个响应序列相加:T\left [ x_{1}(n) \right ]+T\left [ x_{2}(n) \right ]=y_{1}(n)+y_{2}(n)

 现在,让这两个不同的序列 x_{1}(n)  和  x_{2}(n)  同时作用于离散时间系统  T\left [ \cdot \right ] ,得到离散时间系统 T\left [ \cdot \right ]  同时对这两个输入序列的响应序列  T\left [ x_{1}(n)+ x_{2}(n)\right ] ,令

T\left [ x_{1}(n)+ x_{2}(n)\right ]=y(n)

两个不同的输入序列 x_{1}(n)  和  x_{2}(n) ,不管是分别作用于 离散时间系统  T\left [ \cdot \right ] 还是同时作用于 离散时间系统  T\left [ \cdot \right ] ,相加后的响应序列相等,则这个系统满足可加性:   T\left [ x_{1}(n)+ x_{2}(n)\right ]=y(n)=y_{1}(n)+y_{2}(n)

 2) 比例性(齐次性)

 将两个不同的输入序列 x_{1}(n)  和  x_{2}(n) 分别乘上不同系数 a_{1},a_{2} 并作用于离散时间系统T\left [ \cdot \right ] 

如果得到的响应序列满足  T\left [ a_{1}x_{1}(n)\right ]=a_{1}y_{1}(n),T\left [ a_{2}x_{2}(n)\right ]=a_{2}y_{2}(n) ,则这个系统满足比例性(齐次性)

3)叠加原理(叠加性质)

将系统满足 可加性 及 比例性 的公式合二为一,得到线性系统满足叠加原理的公式,如下👇 

T\left [ a_{1}x_{1}(n)+ a_{2}x_{2}(n)\right ]=a_{1}y_{1}(n)+a_{2}y_{2}(n)

上面的公式是以两个输入序列为例,列出的公式,但是对于一个线性系统来说,可以有两个及两个以上的输入序列作用于该线性系统,假设有N个输入序列作用于线性系统,则响应的也会有N个响应序列输出,公式可以写成如下形式:

T\left [ \sum_{i=1}^{N}a_{i}x_{i}(n) \right ]= \sum_{i=1}^{N}a_{i}y_{i}(n)

 线性系统肯定满足:“零输入产生零输出”(当输入序列x(n)的序列值全为0时,0乘任何数都为0,并且,多个0相加的结果也是0,所以响应序列y(n)的序列值也全为0)

 知道了线性系统的相关概念,我现在可以开始理论和实践相结合,做一道题:

 由题目可以看到,输入序列x(n)作用于的离散时间系统T\left [ \cdot \right ],是先将输入序列 x(n) 乘上系数2,接着将序列 2x(n) 上移5个时间单位,最后得到响应序列y(n)

需要注意的是,在做题的过程中,要一直牢记:离散时间系统是对 输入序列 x(n) 的响应

 个人解:先运用可加性的公式判断该系统是否满足可加性

T\left [ x_{1}(n) \right ]=2x_{1}(n)+5=y_{1}(n)

T\left [ x_{2}(n) \right ]=2x_{2}(n)+5=y_{2}(n) 

 T\left [ x_{1}(n)+x_{2}(n) \right ]=2(x_{1}(n)+x_{2}(n))+5=2x_{1}(n)+2x_{2}(n)+5=y_{3}(n)

由于y_{1}(n)+y_{2}(n)=2x_{1}(n)+2x_{2}(n)+10,而 y_{3}(n)=2x_{1}(n)+2x_{2}(n)+5

 所以y_{1}(n)+y_{2}(n)\neq y_{3}(n),因此该系统不满足可加性,不是线性系统,是非线性系统。

书上解:

 2,时不变系统(移不变系统)

时不变系统是指,无论输入序列x(n)在时间上何时作用于离散时间系统 T[\cdot ],系统的响应 y(n) 仅与输入信号x(n)的形状和时间延迟有关,而与输入信号x(n)的实际时间无关。换句话说,如果输入信号 x(n)的时间延迟了n_{0}​ 个单位时间,则系统的输出  y(n)也会相应地延迟n_{0}个单位时间,即 y(n)=T\left [x(n-m) \right ]=y(n-m)。 

 如果一个系统的输入输出满足式 T\left [x(n-m) \right ]=y(n-m),那么它就是一个时不变系统。

 开始上题👇

 解:让乘了系数 n 的输入序列 x(n) 作用于延时m个单位时间的离散时间系统,即T\left [ x(n-m) \right ]=nx(n-m)

接着也让响应序列 y(n) 延时m个单位时间,得到 y(n-m)=(n-m)x(n-m)

可以看到,T\left [x(n-m) \right ]\neq y(n-m),因此该系统是时变系统。

书上的解答:

 如果一个系统既是线性系统,又是时不变系统,那么就可以称这个系统为线性时不变系统(LTI:linear  线性的  time 时间的  invariable不变的)

有问题请在评论区留言或者是私信我,回复时间不超过一天。 

这篇关于《数字信号处理》学习04-离散时间系统中的线性时不变系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137574

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文