信号系统之线性系统详解

1 线性系统

信号描述了一个参数如何随另一个参数变化。例如,电子电路中的电压随时间变化,或图像中随距离变化的亮度。系统是响应输入信号而产生输出信号的任何过程。如图中的框图所示。

有几个规则用于命名信号:

  • 连续信号使用圆括号,例如:x(t) 和 y(t),而离散信号使用中括号,例如:x[n] 和 y[n]。
  • 信号使用小写字母。大写字母保留用于频域。
  • 信号的名称通常用于描述它所代表的参数。例如,取决于时间的电压可以称为:v(t),或者每天测量的股票市场价格可以称为:p[d]。

2 线性要求

如果一个系统具有两个数学性质:均匀性(homogeneity)和可加性(additivity),则称为线性(linear)。如果能证明一个系统同时具有这两个属性,那么就证明了这个系统是线性的。同样,如果能证明一个系统没有一个或两个属性,就证明了它不是线性的。

第三个属性,即移位不变性(shift invariance),不是线性度的严格要求,但它是大多数DSP技术的强制性属性。这三个属性构成了如何定义和使用线性系统理论的数学。

如图所示,均匀性是指输入信号幅度的变化导致输出信号幅度的相应变化。在数学术语中,如果 x[n] 的输入信号导致 y[n] 的输出信号,则 kx[n] 的输入导致 ky[n] 的输出,对于任何输入信号和常数 k。

可加性的性质如图所示。考虑一个系统,其中 x 1 [ n ] x_1[n] x1[n] 的输入产生 y 1 [ n ] y_1[n] y1[n] 的输出。进一步假设不同的输入 x 2 [ n ] x_2[n] x2[n] 产生另一个输出 y 2 [ n ] y_2[n] y2[n]。对于所有可能的输入信号,如果输入 x 1 [ n ] + x 2 [ n ] x_1[n] + x_{2}[n] x1[n]+x2[n] 导致输出为 y 1 [ n ] + y 2 [ n ] y_1[n] + y_{2}[n] y1[n]+y2[n],则称该系统是加法的。换言之,在输入端添加的信号会产生在输出端添加的信号

如图所示,移位不变性意味着输入信号的移位只会导致输出信号的相同移位。如果输入信号 x[n] 导致输出 y[n],则输入信号 x[n+s] 输出输出 y[n+s],对于任何输入信号和任何常数 s。通过在自变量 n 上添加常数 s,波形可以在水平方向上前进或延迟。例如,当 s=2 时,信号向左移动两个样本;当 s=-2 时,信号向右移动两个样本。

移位不变性很重要,因为它意味着系统的特征不会随时间(或自变量的任何变化)而变化。如果输入中的某个点导致输出中出现块状,则可以放心,另一个点将导致相同的块状块。

3 静态线性度和正弦保真度

静态线性(Static linearity)定义了线性系统在信号不变时(即直流或静态信号)的反应。线性系统的静态响应非常简单:输出是输入乘以一个常数。也就是说,根据相应的输出值绘制的可能输入值的图形是一条穿过原点的直线。下图显示了两种常见的线性系统:电阻器的欧姆定律和弹簧的胡克定律。

为了进行比较,下图显示了两个非线性系统的静态关系:pn结二极管和铁的磁性。

所有线性系统都具有静态线性特性,但并非总是如此。有些系统显示静态线性,但相对于变化的信号不是线性的。在这些系统中,输入信号是静态的还是变化的并不重要。这些称为无内存系统,因为输出仅取决于输入的当前状态,而不取决于其历史记录。例如,电阻器中的瞬时电流仅取决于其两端的瞬时电压,而不取决于信号如何成为它们的值。如果系统具有静态线性,并且是无记忆的,则系统必须是线性的。

线性系统的一个重要特征是它们在正弦曲线上的表现,我们将这一特性称为正弦保真度(sinusoidal fidelity):如果线性系统的输入是正弦波,则输出也将是正弦波,并且频率与输入完全相同。正弦波是唯一具有此属性的波形。

4 线性的特殊属性

线性是可交换的(commutative),是一种涉及两个或多个系统组合的属性。下图显示了大致思路。个系统以级联方式组合在一起,也就是说,一个系统的输出是下一个系统的输入。如果每个系统都是线性的,那么整体组合也将是线性的。

交换特性表明,级联中系统的顺序可以重新排列,而不会影响整体组合的特征。例如,假设一个电路由两级组成,一级用于放大,一级用于滤波。放大后过滤,还是过滤后放大,哪个最好?如果两个阶段都是线性的,则顺序没有任何区别,总体结果是相同的。实际的电子器件具有非线性效应,可能会使阶次变得重要,例如:干扰、直流偏移、内部噪声、压摆率失真等。

下图显示了线性系统理论的下一步:多个输入和输出。如果具有多个输入和/或输出的系统由线性子系统和信号相加组成,则该系统将是线性的。复杂性无关紧要,只是系统内部不允许任何非线性内容。

乘法在线性系统中的使用经常被误解。因为乘法可以是线性的,也可以是非线性的,这取决于信号的乘法。下图说明了这两种情况。将输入信号乘以常数的系统是线性的。该系统是放大器或衰减器,分别取决于常数是大于还是小于 1。相反,将一个信号乘以另一个信号是非线性的。想象一个正弦曲线乘以另一个正弦曲线;由此产生的波形显然不是正弦波。

另一种经常被误解的情况与电子产品中添加的寄生信号有关,例如直流偏移和热噪声。这些外来信号的添加是线性的还是非线性的?答案取决于污染信号的来源。如果它们被视为来自系统内部,则该过程是非线性的。这是因为正弦输入不会产生纯正弦输出。相反,外来信号可以看作是在多输入系统的单独输入上从外部进入系统。这使得过程是线性的,因为系统内只需要添加信号

5 叠加:DSP的基础

当我们处理线性系统时,组合信号的唯一方法是缩放(信号乘以常数),然后加法。例如,一个信号不能乘以另一个信号。下图显示了一个示例:将三个信号相加: x 0 [ n ] x_0[n] x0[n] x 1 [ n ] x_1[n] x1[n] x 2 [ n ] x_2[n] x2[n] 形成第四个信号 x[n]。这种通过缩放和加法组合信号的过程称为合成(synthesis)

分解(Decomposition)是合成的逆运算,其中单个信号被分解成两个或多个加性分量。这比合成更复杂,因为任何给定信号都有无限可能的分解。例如,数字 15 和 25 只能合成(加)成数字 40。相比之下,数字 40 可以分解为:1+39 或 2+38 或 -30.5+60+10.5 等。

现在来谈谈DSP的核心:叠加(superposition),即理解如何分析信号和系统的整体策略。考虑输入信号,称为 x[n],通过线性系统,产生输出信号 y[n]。如下图所示,输入信号可以分解为一组更简单的信号: x 0 [ n ] x_0[n] x0[n] x 1 [ n ] x_1[n] x1[n] x 2 [ n ] x_2[n] x2[n] 等,将这些称为输入信号分量。接下来,每个输入信号分量单独通过系统,产生一组输出信号分量 y 0 [ n ] y_0[n] y0[n] y 1 [ n ] y_1[n] y1[n] y 2 [ n ] y_2[n] y2[n] 等。然后将这些输出信号分量合成为输出信号 y[n]。

这里是重要的部分:通过这种方法获得的输出信号与直接通过系统传递输入信号产生的信号相同。这是一个非常强大的想法。我们需要知道的不是试图理解系统如何改变复杂的信号,而是知道简单的信号是如何被修改的。在信号处理的术语中,输入和输出信号被视为简单波形的叠加(总和)。这是几乎所有信号处理技术的基础。

作为如何使用叠加的简单示例,在脑海中将数字 2041 乘以数字 4。怎么做到?可能已经想象过 2041 根火柴棒在你的脑海中飘荡,将心理形象翻了两番,然后开始数数。更有可能的是,使用了叠加来简化问题。数字 2041 可以分解为:2000 + 40 + 1。这些分量中的每一个都可以乘以 4,然后合成以找到最终答案,即 8000 + 160 + 4 = 8164。

6 常见分解

记住,这种方法的目标是用几个简单的问题代替一个复杂的问题。如果分解不能以某种方式简化情况,那么就一无所获。在信号处理中,对信号进行分解的方法主要有两种:脉冲分解和傅里叶分解(impulse decomposition and Fourier decomposition)。

脉冲分解

如图 5-12 所示,脉冲分解将 N 个样本信号分解为 N 个分量信号每个分量信号包含 N 个样本。每个分量信号都包含原始信号的一个点,其余值为零。零字符串中的单个非零点称为脉冲。脉冲分解很重要,因为它允许一次检查一个样本的信号。同样,系统的特征在于它们如何响应脉冲。通过了解系统如何响应脉冲,可以计算出任何给定输入的系统输出,这种方法称为卷积

#### 阶跃分解

如图 5-13 所示,阶跃分解还将 N 个样本信号分解为 N 个分量信号,每个分量信号由 N 个样本组成。每个分量信号都是一个阶跃,也就是说,第一个样本的值为零,而最后一个样本是某个常数值。考虑将 N 点信号 x[n] 分解为以下分量: x 0 [ n ] x_0[n] x0[n] x 1 [ n ] x_1[n] x1[n] x 2 [ n ] x_2[n] x2[n]、…、 x N − 1 [ n ] x_{N-1}[n] xN1[n]。第 k 分量信号 x k [ n ] x_k[n] xk[n] 由点 0 到 k - 1 的零组成,而其余点的值为:x[k] - x[k-1]。例如,第 5 分量信号 x 5 [ n ] x_5[n] x5[n] 由点 0 到 4 的零组成,而其余样本的值为:x[5] - x[4](原始信号的样本 4 和 5之间的差值)。

偶数/奇数分解

如图 5-14 所示,偶数/奇数分解将信号分解为两个分量信号,一个具有偶数对称性,另一个具有奇数对称性。如果 N 点信号是围绕点 N/2 的镜像,则称其具有偶数对称性。也就是说,样本 x[N/2 + 1] 必须等于 x[N/2 - 1],样本 x[N/2 + 2] 必须等于 x[N/2 - 2],依此类推。同样,当匹配点的大小相等但符号相反时,就会发生奇对称,例如:x[N/2 + 1] = -x[N/2 - 1]、x[N/2 + 2] = -x[N/2 - 2] 等。这些定义假定信号由偶数个样本组成,并且索引从 0 到 N-1。分解的计算公式为:

隔行分解

如图5-15所示,隔行分解将信号分解为两个分量信号,偶数采样信号和奇数采样信号(不要与偶数和奇数对称信号混淆)。要找到偶数样本信号,请从原始信号开始,并将所有奇数样本设置为零。要找到奇数样本信号,请从原始信号开始,并将所有偶数样本设置为零。就是这么简单。

傅里叶分解

任何 N 点信号都可以分解为N+2个信号,其中一半是正弦波一半是余弦波。最低频率的余弦波(在本图中称为 x C 0 [ n ] x_{C0} [n] xC0[n])在 N 个样本上的完整周期为零,即它是一个直流信号。接下来的余弦分量: x C 1 [ n ] x_{C1}[n] xC1[n] x C 2 [ n ] x_{C2}[n] xC2[n] x C 3 [ n ] x_{C3}[n] xC3[n],分别在 N 个样本上完成 1、2 和 3 个完整循环。这种模式适用于余弦波的其余部分,以及正弦波分量。由于每个分量的频率是固定的,因此对于被分解的不同信号,唯一变化的是每个正弦波和余弦波的振幅

### 7 线性度的替代方案

要理解线性系统的重要性,请考虑分析非线性系统的主要策略。该策略是使非线性系统类似于线性系统。有三种常见的方法可以做到这一点:

  • 首先,忽略非线性。如果非线性足够小,则系统可以近似为线性。由原始假设产生的错误可以容忍为噪声或干脆忽略。
  • 其次,保持信号非常小。如果信号的幅度非常小,许多非线性系统看起来是线性的。
  • 第三,应用线性化变换。例如,假设将两个信号相乘以产生第三个信号:a[n]=b[n]×c[n]。取信号的对数将非线性乘法过程变为线性加法过程:log(a[n])= log(b[n])+log(c[n])

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

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

相关文章

Python tkinter (15) —— PhotoImage

本文主要介绍Python tkinter PhotoImage图像应用及示例。 系列文章 python tkinter窗口简单实现 Python tkinter (1) —— Label标签 Python tkinter (2) —— Button标签 Python tkinter (3) —— Entry标签 Python tkinter (4) —— Text控件 Python tkinter (5) 选项按…

22.HarmonyOS App(JAVA)位置布局PositionLayout使用方法

不常用 在PositionLayout中,子组件通过指定准确的x/y坐标值在屏幕上显示。(0, 0)为左上角;当向下或向右移动时,坐标值变大;允许组件之间互相重叠 布局方式 PositionLayout以坐标的形式控制组件的显示位置,允许组件相…

JVM 性能调优 - Java 虚拟机内存体系(1)

Java 虚拟机我们简称为 JVM(Java Virtual Machine)。 Java 虚拟机在执行 Java 程序的过程中,会管理几个不同的数据区域。如下图所示: 下面我会介绍这几个数据区的特点。 堆 堆区的几个特点: 线程共享。启动时创建堆…

【MATLAB源码-第131期】基于matlab的淘金优化算法(GRO)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 淘金优化算法(GoldRush Optimizer,简称GRO)是一种启发式优化算法,它受到淘金过程的启发。在淘金过程中,淘金者在河流或矿区中寻找金矿,通过筛选沙砾来寻…

Django通过Json配置文件分配多个定时任务

def load_config():with open("rule.json", rb)as f:config json.load(f)return configdef job(task_name, config, time_interval):# ... 通过task_name判断进行操作if task_name get_data_times:passdef main():config load_config()for task_name, task_value…

SpringBoot多模块项目proguard混淆

SpringBoot多模块项目proguard混淆 前言整活项目目录混淆后的效果图混淆配置混淆配置规则keep相关通配符和关键字keep说明常见问题解决办法效果前言 proguard 是压缩、优化和混淆Java字节码文件的免费的工具。 它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大…

网络故障的排错思路

一、网络排错必备知识 1、网络通信的基础设备和其对应的OSI层次 在网络通信中,了解基础设备如交换机、三层交换机、路由器和防火墙以及它们在OSI七层模型中 的作用至关重要。对于网络管理员和工程师来说,深入了解这些设备在OSI模型中的位置和功能可 …

探索Gin框架:Golang Gin框架请求参数的获取

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 我们在专栏的前面几篇文章内讲解了Gin框架的路由配置,服务启动等内容。 专栏地址&…

为什么有的人渐渐不点外卖了?

​随着互联网的发展和普及,外卖行业也在近几年内得到了迅猛的发展,它方便快捷、节省时间的特点使得外卖成为了很多人生活的一部分。但是,随着时间的推移,越来越多的人开始减少点外卖的频率,这是为什么呢? 首…

npm修改镜像源

背景:切换npm镜像源是经常遇到的事,下面记录下具体操作命令 1. 打开终端运行"npm config get registry"命令来查看当前配置的镜像源 npm config get registry2. 修改成淘宝镜像源"https://registry.npmjs.org/" npm config set re…

编译原理与技术(三)——语法分析(二)自顶向下-递归下降

一、语法分析的两种方法 自顶向下(Top-down): 针对输入串,从文法的开始符号出发,尝试根据产生式规则推导(derive)出该输入串。 从根部开始构造语法树。 自底向上(Bottom-up&#…

鸿蒙踩坑合集

各位网络中的小伙们,关于鸿蒙的踩坑陆陆续续收集中,本文章会持续更新,希望对您有所帮助 1、预览视图无法正常加载 重新编译项目,点击刷新按钮,控制台提示Build task failed. Open the Run window to view details. 解…

图书借阅管理系统

文章目录 图书借阅管理系统一、项目演示二、项目介绍三、万字文档参考四、系统部分功能截图五、部分代码展示六、底部获取项目和万字文档(9.9¥带走) 图书借阅管理系统 一、项目演示 图书借阅管理系统 二、项目介绍 基于Springbootvue的前后…

二、SSM 整合配置实战

本章概要 依赖整合和添加控制层配置编写(SpringMVC 整合)业务配置编写(AOP/TX 整合)持久层配置编写(MyBatis 整合)容器初始化配置类整合测试 2.1 依赖整合和添加 数据库准备 数据库脚本 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT…

HarmonyOS远程真机调试方法

生成密钥库文件 打开DevEco Studio,点击菜单栏上的build, 填一些信息点击,没有key的话点击new一个新的key。 生成profile文件 AppGallery Connect (huawei.com) 进入该链接网站,点击用户与访问将刚生成的csr证书提交上去其中需…

2024版细致idea解读(包含下载,安装,破解,讲解怎么使用)

前言 我们历经了对应的javase开发,使用的软件从eclipse也逐步升级到了idea,IntelliJ旗下的产品之一 内部复函很大的集成平台插件供大家使用 下载介绍 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE 这个是他的网站地址 进入之后我们可以看到对应的界面…

【经典例子】Java实现2048小游戏(附带源码)

一、游戏回顾 2048游戏是一款数字益智游戏,目标是通过合并相同数字的方块来达到2048这个目标。游戏在一个4x4的方格上进行,每个方格上都有一个数字(初始时为2或4)。玩家可以通过滑动方向键(上、下、左、右)…

SpringBoot 事务管理Transactional 数据回滚 数据一致性

介绍 SpringBoot当中的事物他保证了一致性,要么全部一起成功(提交),要么一起失败,失败(回滚)后数据会回到当初的样子,是一组操作的集合。 事物类型 开启事物提交事物回滚事物 案…

银河麒麟 aarch64 Mysql环境安装

一、操作系统版本信息 组件版本操作系统Kylin V10 (SP3) /(Lance)-aarch64-Build23/20230324Kernel4.19.90-52.22.v2207.ky10.aarch64MySQLmysql-8.3.0JDK1.8.0_312 二、MySQL下载 官网下载地址:https://dev.mysql.com/downloads/mysql/ 三、MySQL 安装 3.1 删…
最新文章