《数字信号处理》学习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

相关文章

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 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和