1. 4. 1 信号的组合运算
实际工程应用时,常需分析信号的组成,将其分解成基本的时间信号,有时也需要将某 些信号变换成便于应用的形式,或构成其他形 式 的 信 号, 这 就 需 要 对 信 号 进 行 处 理 或 运 算,
本节主要讨论信号处理中的一些基本运算。
(1) 信号的组合运算
描述信号有时只要用一个数学表达式,如正弦波,但大部分情形下,一个信号往往要用 几个信号的组合来描述。这些组合可以是几个信号之间的相加、相减、相乘和相除。组合后 的信号值就是几个信号在同一 时 刻t时 的 相 应 数 值 的 相 加、 相 减、 相 乘 和 相 除。 图 1-45 表 示了一些信号组合的例子。
图1-45 信号的组合
信 号 的 组 合 运 算 与 自 变 量 变 换 都 可 用 Matlab 语 言 实 现 , 下 面 举 例 说 明 信 号 的 组 合 运 算 。
【例1-7】 使用 Matlab语言画出以下函数。
解 x(t)=e-tsin(20πt)+e-t/2sin(19πt)
%画图表示连续时间信号组合的程序
t=0:1/120:6;x=exp(-t).*sin(20*pi*t)+exp(-t/2).*sin(19*pi*t);
p=plot(t,x);grid on;
xlable('t');ylable('x(t)');
程序运行后的波形如图1-46所示。
(2) 信号的微分与积分运算
图1-46 连续时间信号组合 (例1-7图)
对信号进行微分、积分也是实 际 系 统 中 常 用 的 信 号 处 理 运 算。Matlab 中 可 以 用 diff和 int命令直接求信号的微分和积分。
信号的微分与积分运算,只对连续时间信号有效,运算符号如图1-47所示。
x(t)——→ d d ——→
t y(t)=dx
dt=x′(t) x(t)——→
∫
——→g(t)=∫
t-∞x(t)dτ=x-1(t)(a) 微分器 (b) 积分器 图1-47 微分、积分运算符号
【例1-8】 已知信号x(t) 如图1-48(a) 所示,求它的微分、积分信号。
图1-48 例1-8图
解 由定义可求得x(t) 的微分和积分信号分别如图1-48(b)、(c) 所示。
由于引入了奇异信号的概念,不仅使普通连续时间信号可以微分,具有第一类间断点的 信号也可以微分,它们在间断点的一阶微分是 一 个 冲 激, 强 度 为 原 信 号 在 该 时 刻 的 跳 变 量,
在其他连续区间的微分就是常规意义上的导数。
图1-49 例1-9图
【例1-9】 求如图1-49所示信号x(t) 的微分信号。
解 由于t=0是间断点,故x(t) 在 此 应 出 现 一 个 冲 激, 由 于 x(0-)=0,x(0+)=1,
故冲激强度为1。
x′(t)=δ(t)+g(t)
g(t)= -1,0<t<1
{
0, 其他1. 4. 2 信号的自变量变换
信号与系统分析中一个重要的概念是关于 信 号 的 变 换 概 念, 如 在 高 保 真 度 音 频 系 统 中,
为了增强所要求的特性,要除去录制噪声,对录 制 在 磁 带 或 唱 片 上 的 音 乐 信 号 也 要 作 变 换。
本节讨论的变换只涉及自变量的简单变换也就是时间轴的变换,实现信号的平移、反褶、尺 度等变换。
(1) 信号的时移
信号的时移对应的实际应用就是信号的延时,如闪电与雷声之间的延时。在远距离双向 通信中延时是一个难题,但有时却很有用,如在前面提到的雷达就是利用了发射脉冲和反射 脉冲到达之间的延时才能测定出一架飞机离发送点的距离。
设t0>0,则连续时间信号x(t-t0) 就是将x(t) 沿t轴正方向即向右平移t0;x(t+t0) 是把x(t) 沿t轴负方 向 即 向 左 平 移t0, 如 图 1-50所示。对离散信号,如n0为 正 整 数, 则 x[n-n0]是将x[n] 沿n 轴正方向平移n0个序号,如图1-51所示;x[n+n0] 是将x[n] 沿 n 轴负方向平移n0个序号。
图1-50 连续时间信号的平移 图1-51 离散信号的平移
(2) 信号的反褶
连续时间信 号 x(-t) 是 x(t) 以 纵 轴 (t=0 为 轴 ) 的 反 褶, 如 图 1-52, 离 散 信 号 x[-n]是将x[n] 以n=0 为 轴 反 褶 后 得 到 的, 如 图 1-53。如 果 x(t) 是 代 表 一 盘 录 制 的 声
音磁带的话,那么x(-t)就代表同样一盘磁带倒过来放的结果。
(3) 信号的尺度变换
信号的尺度变换是指自变量由t变为at,a 为任意实数。
若a>1,则x(at) 是将x(t) 在时间轴线性压缩a 倍,如0<a<1,则x(at) 是将x(t)
在时间轴线性展宽1/a 倍。图1-54表示了这种尺度变换。
一般情况下,信号的时移和 时 间 尺 度 变 换 可 以 同 时 进 行。 当 已 知 x(t) 求 x(at+b) 的 波形时,如a>0,则只要进行尺度与平移变换;如a<0,则要同时进行反褶、平移等变换。
一般可写成x a t±b
( )
[
a]
的形式,可以先展缩再平移,最后反 褶。 也 可 以 先 将 x(t) 延 时 或超前,然后根据a 值进行尺度变换或时间反转。同样也可从已知的x(at+b) 波形求出x(t)
图1-52 连续信号的反褶 图1-53 离散信号的反褶
图1-54 信号的尺度变换
波形,两者是可逆变换的。
需指出的是,由于冲激信号只出现在某一孤立时刻,而不是一个时间区间,故对观察者 而言,δ(t) 的扩展和压缩并不是很直观。但可以证明
δ(at)=1
|a|δ(t) (1-82)
【例1-10】 已知x(t) 波形如图1-55(a) 所示,画出x(3t+6),x(-3t+6) 波形。
解 变换过程如图1-55所示。
以下举例说明用 Matlab程序实现信号的运算及尺寸变换过程。
【例1-11】 使用 Matlab程序画出以下信号的波形
x(t)=
0, t<-2
-4-2t, -2<t<0 -4+3t, 0<t<4 16-2t, 4<t<8
0, t>
8
然后画出x(t+1),x(3t),x(-3t) 的波形。
解 首先为画图选择一个合适的t的范围和时间之间的间隔,使产生的曲线能接近实际
图1-55 例1-10图
图1-56 变换函数的波形 (例1-11图)
的函数。选择时间范围是-5<t<20,两点的间隔为0.1,先创建一个 Matlab程序 (test.m 文件) 来定义函数x(t)。在画函数变换后 的 图 形 时, 只 要 调 用 这 个 m 文 件 就 可 以 了, 变 换 函数的波形如图1-56所示。程序如下。
---
---%程序test.m:产生 x(t)函数 function y=x(t)
%计算每个t范围的函数值
y1=-4-2*t;y2=-4+3*t;y3=16-2*t;
%将各个函数根据它们的区间结合起来
y=y1.*(-2<t&t<=0)+y2.*(0<t &t<=4)+y3.*(4<t&t<=8);
---
---%程序:调用程序test.m,画 x(t)函数及 x(t+1),x(3t),x(-3t)的波形 tmin=-4;tmax=10;dt=0.1
t=tmin:dt:tmax;
x=y(t);
x1=y(t+1);
x2=y(3*t);
x3=y(-3*t);
subplot(4,1,1),plot(t,x);ylabel('x(t)');grid on;
subplot(4,1,2),plot(t,x1);ylabel('x(t+1)');grid on;
subplot(4,1,3),plot(t,x2);ylabel('x(3*t)');grid on;
subplot(4,1,4),plot(t,x3);ylabel('x(-3*t)');xlabel('t');grid on;
对离散时间序列,由于其自变量只能取整数值,严格地说不能像连续时间信号那样进行 尺度变换。如果要将信号x[n] 变换成
x1[n]=x[N·n],N 为正整数 (1-83)
则表示x1[n] 是以 N-1个点为间隔从x[n] 中选取相应的序列点,并将所选出的序列点上 的信号值重新依次排序所构成的信号,这个过程称为对信号的抽取。
如果把序列x[n] 变换成
x2[n]= x[n/N],n 为 N 的整倍数 0, 其他
{
N (1-84)则表示序列x2[n] 是在x[n] 序列相邻两序号之间插入 N-1个零值后所构成的序列,这个 过程称为对信号的内插,图1-57(b) 和 (c) 分别表示了当N=2 时, 对 离 散 时 间 信 号 x[n]
的抽取、内插过程的例子。图1-57表 明,对 离散时 间序 列抽 取的 过 程 会 使 原 序 列 的 长 度 缩 短,而内插过程则使原序列的长度加长。
图1-57 离散时间序列抽取和内插过程