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

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理