本节书摘来自异步社区《MATLAB信号处理超级学习手册》一书中的第2章,第2.5节,作者:MATLAB技术联盟 , 史洁玉著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.5 离散时间信号中的运算

MATLAB信号处理超级学习手册

2.5.1 离散时间系统响应

离散时间LTI系统可用线性常系数差分方程来描述,即:

其中,a i(i=0,1,…,N)和b j(j=0,1,…,M)为实常数

MATLAB中函数filter可对式(2-24)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。函数filter的语句格式为

y=filter(b,a,x)

其中,x为输入的离散序列;y为输出的离散序列,y的长度与x的长度一样;b与a分别为差分方程右端与左端的系数向量。

运行程序如下:

a=[1 -0.25 0.5];

b=[1 1];

t=0:20;

x=(1/2).^t;

y=filter(b,a,x)

subplot(2,1,1)

stem(t,x)

title('输入序列')

grid on

xlabel('n'); ylabel('h(n)');

subplot(2,1,2)

stem(t,y)

xlabel('n'); ylabel('h(n)');

title('响应序列')

grid on

运行结果如图2-27所示。

2.5.2 离散时间系统的冲激响应和阶跃响应

在MATLAB中,求解离散时间系统单位冲激响应,可应用信号处理工具箱提供的函数impz,其调用形式为:

h=impz(b, a, k)

式中,a,b分别是差分方程左、右端的系数向量,k表示输出序列的取值范围(可省略),h就是系统单位冲激响应(如果没有输出参数,直接调用impz(b, a, k),则MATLAB将会在当前绘图窗口中自动画出系统单位冲激响应的图形)。

对于MATLAB 6.x及以上版本,在信号处理工具箱中还提供了求解离散时间系统单位阶跃响应的函数stepz,其调用形式为:

h=stepz(b,a,k)

式中参数与impz函数相同,如果没有输出参数,直接调用stepz(b,a,k),则MATLAB将会在当前绘图窗口中自动画出系统单位阶跃响应的图形。

【例2-28】用impz函数求下列离散时间系统的单位冲激响应,并与理论值进行比较:

y(k)+3y(k-1)+2y(k-2)=f(k)。

运行程序如下:

k=0:10;

a=[1 3 2];

b=[1];

h=impz(b,a,k);

subplot(2,1,1);stem(k,h);

xlabel('n'); ylabel('h(n)');

title('单位冲激响应的近似值');

grid on;

hk=-(-1).^k+2*(-2).^k;

subplot(2,1,2);stem(k,h);

xlabel('n'); ylabel('h(n)');

title('单位冲激响应的理论值');

grid on;

运行结果如图2-28所示。

2.5.3 离散时间信号的卷积和运算

卷积是用来计算系统零状态响应的有力工具。例如:对于连续时间系统,有y(t)=x(t)h(t),其中h(t)为系统传递函数(即冲激响应);对于离散时间系统,有y(n)=x(n)h(n),其中h(n)为系统传递函数(即单位冲激响应)。

由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间信号处理领域被广泛应用。离散时间信号的卷积定义为:

可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。

MATLAB信号处理工具箱提供了一个计算两个离散序列卷积和的函数,其调用形式为:

c=conv(a,b)

式中,a、b分别为待卷积的两序列的向量表示,c是卷积结果。向量c的长度为向量a、b的长度之和减1,即length(c)=length(a)+length(b)1。事实上,研究conv.m函数的源代码可知,conv函数其实就是利用前面介绍过的函数来实现的。

【例2-29】已知序列x[n]={1,2,3,4;n=0,1,2,3},y[n]={1,1,1,1;n=0,1,2,3,4};利用MATLAB计算x[n]*y[n]并画出卷积结果。

运行程序如下:

x=[1,2,3,4];

y=[1,1,1,1];

z=conv(x,y)

subplot(3,1,1);

stem(0:length(x)-1,x);

ylabel('x[n]'); xlabel('n');

grid on

subplot(3,1,2);

stem(0:length(y)-1,y);

ylabel('y[n]'); xlabel('n');

grid on

subplot(3,1,3);

stem(0:length(z)-1,z);

ylabel('z[n]'); xlabel('n');

grid on

运行结果如下:

z =

1 3 6 10 9 7 4

运行结果如图2-29所示。

【例2-30】已知某系统的单位取样响应为hleft( n right) = 0.8^n left[ {uleft( n right) - uleft( {n - 8} right)} right] ,试用MATLAB求当激励信号为x(n) = u(n) - u(n - 4) 时,系统的零状态响应。

运行程序如下:

clear

nx=-1:5;

nh=-2:10;

x=uDT(nx)-uDT(nx-4);

h=0.8.^nh.*(uDT(nh)-uDT(nh-8));

y=conv(x,h);

ny1=nx(1)+nh(1);

ny=ny1+(0:(length(nx)+length(nh)-2));

subplot(311)

stem(nx,x,'fill'),grid on

xlabel('n'),ylabel('x(n)');

title('x(n)')

axis([-4 16 0 3])

subplot(312)

stem(nh,h','fill'),grid on

xlabel('n');ylabel('h(n)');

title('h(n)')

axis([-4 16 0 3])

subplot(313)

stem(ny,y,'fill'),grid on

xlabel('n');ylabel('y(n)');

title('y(n)=x(n)*h(n)')

axis([-4 16 0 3])

运行结果如图2-30所示。

程序中产生单位阶跃子程序如下:

function y=uDT(n)

y=n>=0;

%当参数为非负时输出1

matlab中udt函数,《MATLAB信号处理超级学习手册》——2.5 离散时间信号中的运算...相关推荐

  1. 《MATLAB信号处理超级学习手册》——2.7 本章小结

    本节书摘来自异步社区<MATLAB信号处理超级学习手册>一书中的第2章,第2.7节,作者:MATLAB技术联盟 , 史洁玉著,更多章节内容可以访问云栖社区"异步社区"公 ...

  2. matlab中存档算法代码,MATLAB 智能算法超级学习手册中程序代码

    [实例简介] MATLAB 智能算法超级学习手册中程序代码 [实例截图] [核心代码] dc90ef43-7920-434e-bdb8-0636c31c0b44 └── MATLAB 智能算法超级学习 ...

  3. 《MATLAB R2012a超级学习手册》一2.5 本章小结

    本节书摘来自异步社区<MATLAB R2012a超级学习手册>一书中的第2章,第2.5节,作者 史洁玉 , 孔玲军,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  4. 《MATLAB图像处理超级学习手册》导读

    前言 MATLAB图像处理超级学习手册 图像是人类获取信息的重要来源.当今的信息化社会,对图像处理和图像分析的要求越来越高,现有的图像软件由于采购成本和功能的限制,已经不能完全满足专业人士的需要,这时 ...

  5. matlab图像处理创建项目,《MATLAB图像处理超级学习手册》一一2.1 矩阵的创建

    本节书摘来自异步社区出版社<MATLAB图像处理超级学习手册>一书中的第2章,第2.1节,作者:MATLAB技术联盟 , 张岩 更多章节内容可以访问云栖社区"异步社区" ...

  6. 《MATLAB R2012a超级学习手册》一第1章 MATLAB概述

    本节书摘来自异步社区<MATLAB R2012a超级学习手册>一书中的第1章,作者 史洁玉 , 孔玲军,更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 MA ...

  7. matlab/simulink石良臣,《MATLAB/Simulink系统仿真超级学习手册》——2.6 MATLAB的图形绘制...

    本节书摘来自异步社区<MATLAB/Simulink系统仿真超级学习手册>一书中的第2章,第2.6节,作者:MATLAB技术联盟 , 石良臣著,更多章节内容可以访问云栖社区"异步 ...

  8. 《MATLAB神经网络超级学习手册》——第2章 MATLAB基础 2.1 基本概念

    本节书摘来自异步社区<MATLAB神经网络超级学习手册>一书中的第2章,第2.1节,作者:MATLAB技术联盟 , 刘冰 , 郭海霞著,更多章节内容可以访问云栖社区"异步社区&q ...

  9. 《MATLAB智能算法超级学习手册》一一2.2 种群竞争模型的讨论

    本节书摘来自异步社区出版社<MATLAB智能算法超级学习手册>一书中的第2章,第2.2节,作者:MATLAB技术联盟 , 高飞 , 许玢更多章节内容可以访问云栖社区"异步社区&q ...

最新文章

  1. 今天,你比赛加班了吗?
  2. js把html转换成图片格式,纯JS实现将DIV中的内容转化为PNG图片
  3. jQUery操作checkbox
  4. Python基础教程:高阶函数和函数嵌套
  5. Laravel框架与ThinkPHP一些不同点
  6. 《CLIP2Video》-腾讯PCG提出CLIP2Video,基于CLIP解决视频文本检索问题,性能SOTA!代码已开源!...
  7. 支付宝小程序封装请求
  8. 全局声明宏定义_C++模拟面试:宏、lambda、智能指针闲谈
  9. [剑指offer] 旋转数组的最小数字
  10. oracle procedure可以执行非常复杂的语句吗,oracle-存储过程(procedure)
  11. 系统学习机器学习之距离的度量(二)--DTW
  12. 认识 sun.misc.Unsafe
  13. 软件测试面试笔试题准备(sql增删改查语句超全整理!看这篇就够了)
  14. Redis 列表(List) Redis Lpush 命令
  15. packet和frame区别
  16. python 汉字编码
  17. 对C++一脸懵逼却又无比热爱的第一篇
  18. 金融民工python学习笔记
  19. MySQL为JSON字段创建索引(Multi-Valued Indexes 多值索引)
  20. win10计算机恢复到一天前,5种方法!快速解决Win10系统还原点丢失问题

热门文章

  1. antdesignvue upload vue3个人笔记待更新
  2. Atom React或前端插件推荐
  3. Knockout中ko.utils中处理数组的方法集合
  4. while read line的问题
  5. SMMS 2016 啟用深色主題
  6. SetProcessWorkingSetSize 函数的骗局
  7. 什么是高并发,如何避免高并发
  8. vue-transition动画
  9. Thymeleaf th:include、th:replace使用
  10. Babel 7 基础入门学习(详细版)