一、离散信号的表示

1、一个离散信号需要用两个向量来表示:

(1)离散信号的幅值

(2)离散信号的位置信息

2、用MATLAB实现离散信号的可视化

(1)不能利用符号运算来表示

(2)绘制离散信号一般采用stem命令。

(3)x(n)——stem(n,x)

3、一个demo:

  1. clear all;
  2. x=[-1,2,3,3,5,-4];
  3. n=[-2,-1,0,1,2,3];
  4. figure(1)
  5. stem(n,x),axis([-2.5,3.5,-4.5,5.5])

二、一些常用的离散信号

1、单位冲激序列的表示

  1. function [x,n] = impseq(k1,k2,k0)
  1. %k1,k2表示序列的起点和终点(只能表示有限序列)
  1. %k0表示冲激点。
  2. n = [k1:k2];
  3. x = [(n-k0) == 0];

2、单位阶跃序列的表示:

  1. function [x,n] = stepseq(n1,n2,n0)
  1. %n1,n2表示序列的起点和终点(只能表示有限序列)
  1. n = [n1:n2];
  2. x = [(n-n0) >= 0]

三、离散信号的时域运算、时域变换

1、离散序列的相加:

  1. function [y,n] = sigadd(x1,n1,x2,n2)
  2. % implements y(n) = x1(n)+x2(n)
  3. % -----------------------------
  4. % [y,n] = sigadd(x1,n1,x2,n2)
  5. % y = sum sequence over n, which includes n1 and n2
  6. % x1 = first sequence over n1
  7. % x2 = second sequence over n2 (n2 can be different from n1)
  8. %
  9. n = min(min(n1),min(n2)):max(max(n1),max(n2)); % duration of y(n)
  10. y1 = zeros(1,length(n)); y2 = y1; % initialization
  11. y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % x1 with duration of y
  12. y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % x2 with duration of y
  13. y = y1+y2; % sequence addition

2.离散序列的相乘:

  1. function [y,n] = sigmult(x1,n1,x2,n2)
  2. n = min(min(n1),min(n2)):max(max(n1),max(n2));
  3. y1 = zeros(1,length(n)); y2 = y1;
  4. y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;
  5. y = y1 .* y2;

3、离散序列的反折

  1. function [y,n] = sigfold(x,n)
  2. % implements y(n) = x(-n)
  3. % -----------------------
  4. % [y,n] = sigfold(x,n)
  5. %
  6. y = fliplr(x); n = -fliplr(n);

4、离散序列的平移

  1. function [y,n] = sigshift(x,m,n0)
  2. % implements y(n) = x(n-n0)
  3. % -------------------------
  4. % [y,n] = sigshift(x,m,n0)
  5. %
  6. n = m+n0; y = x;

5、离散序列的倒相

  1. function [y,n] = sigrev(x,m)
  2. n = m; y =-x;

四、离散系统的响应求解

1、零状态、零输入、全响应

2、冲激响应、阶跃响应

3、一个demo

  1. %ex_6
  2. clear all;
  3. n=0:50;
  4. x=cos(n*pi/3);
  5. a=[1,0.95,0.9025];
  6. b=[1/3,1/3,1/3];
  7. yi=[2,3];
  8. xi=0;
  9. xic=filtic(b,a,yi,xi);
  10. %
  11. y1=filter(b,a,zeros(1,length(n)),xic);
  12. y2=filter(b,a,x);
  13. y3=filter(b,a,x,xic);
  14. figure(1)
  15. subplot(3,1,1),stem(n,y1),title('零输入响应')
  16. subplot(3,1,2),stem(n,y2),title('零状态响应')
  17. subplot(3,1,3),stem(n,y3),title('全响应')
  18. figure(2)
  19. subplot(2,1,1),impz(b,a),title('冲激响应')
  20. subplot(2,1,2),stepz(b,a),title('阶跃响应')
  21. %
  22. u1=impseq(0,50,0);
  23. u2=stepseq(0,50,0);
  24. y4=filter(b,a,u1);
  25. y5=filter(b,a,u2);
  26. n=0:50;
  27. figure(3)
  28. subplot(2,1,1),stem(n,y4),title('冲激响应');
  29. subplot(2,1,2),stem(n,y5),title('阶跃响应');

五、离散系统的卷积

  1. function [f,k] = dconv(f1,f2,k1,k2)
  2. k0= k1(1)+k2(1);
  3. k3=length(f1)+length(f2)-2+k0;
  4. k=k0:k3;
  5. f = conv(f1,f2);

MATLAB信号与系统分析(二)——离散时间信号与系统的时域分析的更多相关文章

  1. MATLAB信号与系统分析(一)——连续时间信号与系统的时域分析

    一.连续时间信号的表示: 1.向量表示法: 在MATLAB中,是用连续信号在等时间间隔点的样值来近似表示连续信号,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号. 对于连续时间信号f( ...

  2. <转>Linux环境进程间通信(二): 信号(下)

    原文地址为:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html 原文为: 一.信号生命周期 从信号发送到信号处理函数的 ...

  3. <转>Linux环境进程间通信(二): 信号(上)

    原文链接:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html 原文如下: 一.信号及信号来源 信号本质 信号是在软件层 ...

  4. Qt计算器开发(二):信号槽实现数学表达式合法性检查

    表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...

  5. Linux环境进程间通信(二): 信号--转载

    http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html http://www.ibm.com/developerworks ...

  6. Linux 信号详解二(信号分类,信号处理,kill)

    信号分类 信号分为可靠信号和不可靠信号 不可靠信号的缺点 ①:处理完信号,需要重新再注册信号:②信号可能丢失. Linux已经对缺点①做了优化,现在的不可靠问题主要指的是信号可能丢失 信号还可以分为实 ...

  7. Linux下的进程与线程(二)—— 信号

    Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...

  8. 转:步步LINUX C--进程间通信(二)信号

    源地址:http://blog.csdn.net/jmy5945hh/article/details/7529651 linux间进程通信的方法在前一篇文章中已有详细介绍.http://blog.cs ...

  9. linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction

    一,sigaction() #include <signal.h> int sigaction(int signum,const struct sigaction *act,struct ...

  10. linux系统编程之信号(五):信号集操作函数,信号阻塞与未决

    一,信号集及相关操作函数 信号集被定义为一种数据类型: typedef struct { unsigned long sig[_NSIG_WORDS]: } sigset_t 信号集用来描述信号的集合 ...

随机推荐

  1. java源代码分析----jvm.dll装载过程

    简述众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,以下皆以windows平台为例,linux下 ...

  2. C++中的异常处理(三)

    C++中的异常处理(三) 标签: c++C++异常处理 2012-11-24 23:00 1520人阅读 评论(0) 收藏 举报  分类: 编程常识(2)  版权声明:本文为博主原创文章,未经博主允许 ...

  3. R-squared是什么意思

    在回归分析中,R-squared值应该为多大? 就像经常被问到,在回归分析中,R平方应该为多大才表示回归模型是好的?我经常能够听到这类问题,在没回答这个问题之前,我会解释如 何来解释R平方值,我也会阐 ...

  4. Java EE学习--Quartz基本用法

    新浪博客完全不适合写技术类文章.本来是想找一个技术性的博客发发自己最近学的东西,发现博客园起源于咱江苏,一个非常质朴的网站,行,咱要养成好习惯,以后没事多总结总结经验吧.很多时候都在网上搜索别人的总结 ...

  5. HDOJ 2389 Rain on your Parade

     HK.... Rain on your Parade Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 655350/165535 K ...

  6. HTML中的IE条件注释

    IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解.比如普通的HTML注释是: <!--This is a comment--> 而只有IE可读的IE条件注释是 ...

  7. glut64位操作系统安装

    64位win7下OpenGL的配置 - walkandthink的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/walkandthink/article/detai ...

  8. HTML快速入门2

    三.版面风格控制 1. 字体控制 A. 字体大小 用 <font Size=#> 和 </font> 表示,#为字号: 1 - 7 ,缺省为 3 ,可用 <basefon ...

  9. GDB 使用大法

    一.GDB 我用的是 GCC+POWERSHELL+GDB,  GDB刚刚接触也有很多要记的. 二.一个调试示例 tst.c #include <stdio.h> int func(int ...

  10. django 1.7 新特性 --- data migration

    官方文档:https://docs.djangoproject.com/en/dev/topics/migrations/ 1.7 之前大家可能会用south用于管理数据库的模型的同步.1.7之后dj ...