数字信号处理教程(2)——时域离散信号与时域离散系统

news2024/11/19 1:45:12

   上回书说到数字信号处理中基本的一个通用模型框架图。今天咱们继续,可以说今天要讲的东西必须是学习数字信号处理必备的观念——模拟与数字,连续和离散。


时域离散序列
   由于数字信号基本都来自模拟信号,所以先来谈谈模拟信号。模拟信号就是常说的连续时域信号,在时间上和幅度上都是连续的,也就是在任何的时刻其都是有值的且值有意义。像日常生活中就有很多连续信号的例子,有温度、压力、水位、化学浓度、电压与电流、位置、速度、加速度、力与扭矩等。如果信号仅在离散时间点上取值有效,这样的信号被称为时域离散信号,也称离散时间信号,用x(n)表示,其中变量n是整数值并在时间上代表一些离散时刻,在咱们的MATLAB里面其实简单的一维数组近似就能看成一个离散时间序列。产生离散时间序列的方法,就是采样。举个例子:xₐ=sin(t)表示一个正弦信号,它也是一个连续时间信号。如果对这个信号每隔tₐ时间间隔取一个样点,可表示成x(n)=xₐ(t)|ₜ₌ₙₜₐ=sin(ntₐ)。
    接下来,介绍一下一些基本的序列。
    单位取样序列δ(n)是最简单也是使用最多的序列之一,仅在n=0时,其值为1,其他各值均为0。它类似于模拟信号中的单位冲激函数δ(t),不同的是δ(t)在t=0时,取值无穷大。单位取样序列和单位冲激函数如图所示。

   单位阶跃序列u(n)在n≥0时,其值为1;在n<0时,其值为0。和阶跃函数差不多。阶跃函数和冲激函数的关系——u(t)求导是δ(t);映射到离散当中,微分对应的是差分,所以二者关系可以如下图概括。

δ(n)与u(n)之间的关系


    至于其他的就简单说一下,像矩形序列Rɴ(n)实际上就跟门函数差不多,也可以写成
u(n)-u(n-N),或者是冲激序列的叠加。还有正余弦序列、指数序列这些就不多说了。这里值得大家注意的是所有的序列都能表示成冲激序列的线性组合,而在连续当中,我们绝大多数的情况下用的则是阶梯信号做的近似,实际上两者的意思差不多。满足等式x(n)=x(n+N)(N为正整数)的序列称为周期序列。用这个条件来检验离散时间余弦(或正弦)序列的周期性,即Acos(ωₒn+φ)=Acos[ωₒ(n+N)+φ],不难求出ωₒN=2πk,式中k为整数,也可写成N=2πk/ωₒ,下面讨论N的几种可能情况:周期序列通常分成三种不同的序列。1、当2π/ωₒ为整数时,k=1,则2π/ωₒ即为正弦序列的周期。2、当2π/ωₒ为非整数,但它是一个有理数时,设2π/ωₒ=M/N,其中M和N是互为素数的整数,这时,取k=M,则M为正弦序列的周期。3、当2π/ωₒ为无理数时,此正弦序列为非周期序列。


序列的运算
(一)信号相加
     两个信号相加要求长度必须相同。如果两个序列长度不同或者长度相同,但是样本位置不同,也不能相加。可将序列增加若干零值延长,使得序列长度相等且样本位置一致。
(二)信号相乘
     信号相乘即两个信号位置相同处的数值相乘,原理与信号相加类似,这里不再举例说明。
(三)信号移位
     序列y(n)与x(n)的关系表示为y(n)=x(n-k),其中k为整数。当k>0时,表示序列y(n)是将x(n)向右平移k个单位的结果;当k<0时,表示序列y(n)是将x(n)向左平移k个单位的结果。
(四)信号尺度变换
      信号y(n)与x(n)的关系用公式y(n)=x(mn)表示,其中m取整数,表示每隔m单位取一个样本。当然啦,如果说m<0的话,我们就应该要经历反褶这个操作,先后顺序无所谓,全看个人习惯。我一般都是先反褶,在尺度变换。


离散时间系统
    说完了离散时间序列,接下来看看离散时间系统,我们通常用T[.]来表示系统函数,输入信号用x(n)表示,输出信号用y(n)表示,它们之间的关系可描述为y(n)=T[x(n)]。
一、线性系统
    若某个系统的输入信号和输出信号分别用x1(n)和y1(n)来表示,它们之间的关系描述成y1(n)=T[x1(n)]。同理,该系统的输入信号为x2(n)时,输出信号可表示成y2(n)=T[x2(n)],输入信号为ax1(n)+bx2(n)时,输出信号可表示成y(n)=T[ax1(n)+bx2(n)]。当y(n)与y1(n)及y2(n)满足等式y(n)=ay1(n)+by2(n)时,该系统称为线性系统。说的通俗点,看见线性两个字,咋就应该往齐次性和可加性这两方面去想。
二、时不变系统
     当输入信号为x(n)时,输出信号用y(n)表示。如果输入为x(n-n0),输出为y(n-n0),即y(n-n0)=T[x(n-n0)],这时,称该系统为时不变系统,此外,我认为由于离散序列多与位的运算有关,我们通常还称其为移不变系统。这里总得来说,信号波形与起点无关。
三、因果系统
    如果系统n时刻的输出只与n时刻及以前的输入有关,而与n时刻之后的输入无关,这样的系统称为因果系统。在线性时不变系统中,当n<0时,单位脉冲响应h(n)=0,该系统是因果系统。同样,当一个序列在n<0时,它的数值均为0,则该序列称为因果序列。


常系数差分方程
    接下来看看常系数差分方程,实际与常系数微分方程解法差不多,就是用的数据不一样,毕竟一个是连续的,还有一个是离散的。微分方程我们通常要用拉氏变换的方法来求,而这里就要用Z变换方法来求,因为拉氏变换离散之后它就是Z变换。这里之后再讲现在就不多说了。

   线性常系数差分方程的求解方法可归纳为下面三种:
 (1)经典解法。这类方法类似模拟系统中求微分方程的解法,过程较复杂,简单的说说,其实就是求齐次解和特解,将特解带入差分方程求得它的待定系数,然后将齐次解和特解相加,带入到差分方程当中去,结合边界条件,求得齐次解的系数,而这一结合就是完全解了。
 (2)递推法。此方法简单,适用于计算机求解,这个方法说的高大上,要用递归算法,其实就跟我们高中学的等比数列差不多。
 (3)变换域法。将时域转换到z域中求解,方法简单易行,当起始状态为零的情况,所得到就是零状态解;当输入为零的时候,就是零输入响应了。之后将详细说明。


AD转换与DA转换    

    要通过数字方法处理模拟信号,有必要先将它们转换成数字形式,即转换成具有有限精度的数字序列,这一过程称为模数(A/D)转换,而相应的设备称为A/D转换器(ADC)。下图为AD转换器的基本框架。

AD模型图

大概以下几个步骤:
 (1)采样:采样是连续时间信号到离散时间信号的转换过程,通过对连续时间信号在离散时间点处取样本值获得。因此,如果xₐ(n)是采样器的输入,那么输出是xₐ(nT)=x(n),其中T称为采样间隔,这个是采样最基本的操作,每隔T个位置取个数,当然还有非均匀采样,这里不说了,以后再说。
 (2)量化:量化是离散时间连续值信号转换到离散时间离散值(数字)信号的过程。每个信号样本值是从可能值的有限集中选取的。未量化样本x(n)和量化输出xₚ(n)之间的差称为量化误差。
 (3)编码:在编码过程中,每一个离散值xₚ(n)由b位的二进制序列表示。
    在实际应用的很多场合(例如,语音处理),需要将处理的数字信号转化成模拟信号。将数字信号转化成模拟信号的过程是熟知的数模(D/A)转换。所有D/A转换器通过执行某种插值操作将数字信号的各离散点连接起来,其精度依赖于D/A转换过程的质量。
    对模拟信号采样有很多方式。在实际中最常使用的采样类型,即周期采样或均匀采样。可以由下列关系式描述:x(n)=xₐ(nT),式中,x(n)是通过对模拟信号xₐ(t)每隔T(s)取样本值获得的离散时间信号。这一过程,在两个连续的样本之间的时间间隔T称为采样周期或采样间隔,其倒数1/T=Fs称为采样率(样本数/s)或采样频率(Hz)。奈奎斯特采样定理常说,为了能够从采样后的离散信号中完全恢复原始的连续信号,采样频率必须大于等于原始信号最高频率的两倍。因此,这里还需要知道两个概念——过采样和欠采样。过采样指的是对少数类样本进行多次重复采样,使得少数类样本的数量增加,从而使得各类别样本数量相对平衡。过采样可以通过随机复制少数类样本,或者使用更复杂的算法生成新的少数类样本来实现。欠采样则是从多数类样本中随机选择一部分样本,使得多数类样本数量减少,从而达到各类别样本数量相对平衡的目的。但欠采样可能会丢失一些多数类样本中的信息。因此,在工程当中多采用的是过采样。

     欲知后事如何,且听下回分解。OVO.......

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

umi项目中的一些趣事

前言 出于某些安全问题,需要把HTML中框架注入的umi版本信息去掉,那要怎么搞呢~ 方案 查找官方文档,没发现可以去掉注入信息的方法,但在一番折腾后😉终究还是解决了~ 发现 版本信息是从这里注入的~ Object.define…

企业短视频-直播运营团队打造课,手把手带你从0-1 搭建运营团队-15节

如何获取精准客户? 一套抖音营销系统打造课 能定位 懂运营 建团队 持续获客 课程目录 1-01、每个老板都应该学习博商团队的打造方法1.mp4 2-02、如何从0-1快速搭建运营团队1.mp4 3-03、怎么才能招聘到运营人才?1.mp4 4-04、怎么才能快速筛选简历招到符合要求…

程序烧录原理

程序烧录原理 ISP(In System Programming),在系统编程,单片机不须脱离应用系统而直接在产品上烧写/升级程序。 条件:系统须引出单片机的串口引脚(TXD、RXD)ISP相对于传统的编程方式,在传统的编程方式中我们…

kvm虚拟机启用console登录

kvm虚拟机console登录,就是执行 virsh console 的时候,宿主机可以控制虚拟机。 一、centos7的kvm虚拟机开启console登录(在虚拟中操作) 1、备份文件 [roothadoop51 ~]# cp /etc/grub2.cfg /etc/grub2.cfg_back 2、用下面命令可…

2024 AIGC 技术创新应用研讨会暨数字造型设计师高级研修班通知

尊敬的老师、领导您好! 为深入响应国家关于教育综合改革的战略部署,深化职业教育、高等教育改革,发挥企业主体重要作用,促进人才培养供给侧和产业需求侧结构要素全方位融合,充分把握人工智能创意式生成(AIGC)技术在教育领域的发展…

强连通分量

强连通分量 强连通定义 有向图 G G G 的强连通是指 G G G 中任意两个节点都可以直接或间接到达。 下方两幅图都是强连通。一个特殊一点,任意两点都可以直接到达;一个则是最常见的强连通图。 特殊强连通图,任意两点都可以直接到达 常见的…

7.7、指针和函数

代码 #include <iostream> using namespace std;//实现两个数字进行交换 void swap01(int a, int b) {int temp a;a b;b temp;cout << "swap01a " << a << endl;cout << "swap01b " << b << endl; }void sw…

Docker精华篇 - 常用命令大全,入门到精通!

大家好,我是CodeQi! 我们都知道 Docker 的重要性,以及 Docker 如何在软件开发生命周期中发挥重要作用 。 说实话,学习 Docker 很有趣,至少在我看来是这样。 一旦掌握了基础知识,这并不难。 困难的是记住所有这些命令。 因此,在这篇文章中,我收集了所有命令,或者更…

一图胜千言|用Python搞定统计结果展示!

分享一份原创Python可视化教程&#xff1a;530张图形8000行代码&#xff0c;轻松搞定统计结果展示&#xff0c;部分如下&#xff0c; 每类图表包含详细代码详细代码注释&#xff0c;多达8000行代码&#xff0c;例如&#xff0c; 如何加入学习&#xff1f; &#x1f447;&#…

视频监控汇聚和融合平台的特点、功能、接入方式、应用场景

目录 一、产品概述 二、主要特点 1、多协议支持 2、高度集成与兼容性 3、高性能与可扩展性 4、智能化分析 5、安全可靠 三、功能概述 1. 视频接入与汇聚 2. 视频存储与回放 3. 实时监控与预警 4. 信息共享与联动 5. 远程管理与控制 四、接入方式 1、直接接入 2…

QStringListModel 绑定到QListView

1.QStringListModel 绑定到listView&#xff0c;从而实现MV模型视图 2.通过QStringListModel的新增、删除、插入、上下移动&#xff0c;listView来展示出来 3.下移动一行&#xff0c;传入curRow2 的个人理解 布局 .h声明 private:QStringList m_strList;QStringListModel *m_m…

Sping源码(九)—— Bean的初始化(非懒加载)—mergeBeanDefinitionPostProcessor

序言 前几篇文章详细介绍了Spring中实例化Bean的各种方式&#xff0c;其中包括采用FactoryBean的方式创建对象、使用反射创建对象、自定义BeanFactoryPostProcessor以及构造器方式创建对象。 创建对象 这里再来简单回顾一下对象的创建&#xff0c;不知道大家有没有这样一个疑…

【C语言】顺序表经典算法

本文介绍的是两道顺序表经典算法题目。 移除元素 &#xff08;来源&#xff1a;LeetCode&#xff09; 题目 分析 我们很容易想到的办法是去申请一个新的数组&#xff0c;遍历原数组不等于val就把它拿到新数组里。但是题目的要求是不使用额外空间&#xff0c;所以这种方法我们…

Vue进阶(四十五)Jest集成指南

文章目录 一、前言二、环境检测三、集成问题汇总四、拓展阅读 一、前言 在前期博文《Vue进阶&#xff08;八十八&#xff09;Jest》中&#xff0c;讲解了Jest基本用法及应用示例。一切顺利的话&#xff0c;按照文档集成应用即可&#xff0c;但是集成过程中遇到的问题可能五花八…

【微机原理及接口技术】中断控制器8259A

【微机原理及接口技术】中断控制器8259A 文章目录 【微机原理及接口技术】中断控制器8259A前言一、介绍二、8259A的内部结构和引脚三、8259A的中断工作过程四、8259A的工作方式五、8259A的编程六、外部中断服务程序总结 前言 本篇文章将就8259芯片展开介绍&#xff0c;8259A的…

Chapter10 高级纹理——Shader入门精要学习笔记

Chapter10 高级纹理 一、立方体纹理1.基本概念①组成②采样 2.天空盒子 Sky Box3.环境映射三种方法①特殊布局的纹理创建②手动创建Cubemap——老方法③脚本生成 4.反射5.折射6.菲涅尔反射 二、渲染1.镜子效果2.玻璃效果3.渲染纹理 vs GrabPass 三、程序纹理1.简单程序纹理2.Un…

mov文件怎么转换成mp4格式?这四种转换方法超级好用!

mov文件怎么转换成mp4格式&#xff1f;在数字娱乐的世界中&#xff0c;你是否曾遇到过MOV格式的视频&#xff1f;也许&#xff0c;对于许多人来说&#xff0c;这并不是一个常见的格式&#xff0c;但这并非偶然&#xff0c;首先&#xff0c;我们来谈谈MOV的兼容性问题&#xff0…

读书笔记-《Spring技术内幕》(三)MVC与Web环境

前面我们学习了 Spring 最核心的 IoC 与 AOP 模块&#xff08;读书笔记-《Spring技术内幕》&#xff08;一&#xff09;IoC容器的实现、读书笔记-《Spring技术内幕》&#xff08;二&#xff09;AOP的实现&#xff09;&#xff0c;接下来继续学习 MVC&#xff0c;其同样也是经典…

Linux动态库的制作

Linux操作系统支持的函数库分为&#xff1a; 静态库&#xff0c;libxxx.a&#xff0c;在编译时就将库编译进可执行程序中。 优点&#xff1a;程序的运行环境中不需要外部的函数库。 缺点&#xff1a;可执行程序大 动态库&#xff0c;又称共享库&#xff0c;libxxx.so&#…

Linux之进程控制(下)

目录 进程替换的概念 进程替换的函数 execl​编辑 execlp execle execv execvp execve 上期&#xff0c;我们学习了进程创建&#xff0c;进程终止和进程等待&#xff0c;今天我们要学习的是进程控制中相对重要的板块------进程替换。 进程替换的概念 在进程创建时&…