MATLAB信号与系统分析(二)——离散时间信号与系统的时域分析
一、离散信号的表示
1、一个离散信号需要用两个向量来表示:
(1)离散信号的幅值
(2)离散信号的位置信息
2、用MATLAB实现离散信号的可视化
(1)不能利用符号运算来表示
(2)绘制离散信号一般采用stem命令。
(3)x(n)——stem(n,x)
3、一个demo:
- clear all;
- x=[-1,2,3,3,5,-4];
- n=[-2,-1,0,1,2,3];
- figure(1)
- stem(n,x),axis([-2.5,3.5,-4.5,5.5])
二、一些常用的离散信号
1、单位冲激序列的表示
- function [x,n] = impseq(k1,k2,k0)
- %k1,k2表示序列的起点和终点(只能表示有限序列)
- %k0表示冲激点。
- n = [k1:k2];
- x = [(n-k0) == 0];
2、单位阶跃序列的表示:
- function [x,n] = stepseq(n1,n2,n0)
- %n1,n2表示序列的起点和终点(只能表示有限序列)
- n = [n1:n2];
- x = [(n-n0) >= 0]
三、离散信号的时域运算、时域变换
1、离散序列的相加:
- function [y,n] = sigadd(x1,n1,x2,n2)
- % implements y(n) = x1(n)+x2(n)
- % -----------------------------
- % [y,n] = sigadd(x1,n1,x2,n2)
- % y = sum sequence over n, which includes n1 and n2
- % x1 = first sequence over n1
- % x2 = second sequence over n2 (n2 can be different from n1)
- %
- n = min(min(n1),min(n2)):max(max(n1),max(n2)); % duration of y(n)
- y1 = zeros(1,length(n)); y2 = y1; % initialization
- y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % x1 with duration of y
- y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % x2 with duration of y
- y = y1+y2; % sequence addition
2.离散序列的相乘:
- function [y,n] = sigmult(x1,n1,x2,n2)
- n = min(min(n1),min(n2)):max(max(n1),max(n2));
- y1 = zeros(1,length(n)); y2 = y1;
- y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;
- y = y1 .* y2;
3、离散序列的反折
- function [y,n] = sigfold(x,n)
- % implements y(n) = x(-n)
- % -----------------------
- % [y,n] = sigfold(x,n)
- %
- y = fliplr(x); n = -fliplr(n);
4、离散序列的平移
- function [y,n] = sigshift(x,m,n0)
- % implements y(n) = x(n-n0)
- % -------------------------
- % [y,n] = sigshift(x,m,n0)
- %
- n = m+n0; y = x;
5、离散序列的倒相
- function [y,n] = sigrev(x,m)
- n = m; y =-x;
四、离散系统的响应求解
1、零状态、零输入、全响应
2、冲激响应、阶跃响应
3、一个demo
- %ex_6
- clear all;
- n=0:50;
- x=cos(n*pi/3);
- a=[1,0.95,0.9025];
- b=[1/3,1/3,1/3];
- yi=[2,3];
- xi=0;
- xic=filtic(b,a,yi,xi);
- %
- y1=filter(b,a,zeros(1,length(n)),xic);
- y2=filter(b,a,x);
- y3=filter(b,a,x,xic);
- figure(1)
- subplot(3,1,1),stem(n,y1),title('零输入响应')
- subplot(3,1,2),stem(n,y2),title('零状态响应')
- subplot(3,1,3),stem(n,y3),title('全响应')
- figure(2)
- subplot(2,1,1),impz(b,a),title('冲激响应')
- subplot(2,1,2),stepz(b,a),title('阶跃响应')
- %
- u1=impseq(0,50,0);
- u2=stepseq(0,50,0);
- y4=filter(b,a,u1);
- y5=filter(b,a,u2);
- n=0:50;
- figure(3)
- subplot(2,1,1),stem(n,y4),title('冲激响应');
- subplot(2,1,2),stem(n,y5),title('阶跃响应');
五、离散系统的卷积
- function [f,k] = dconv(f1,f2,k1,k2)
- k0= k1(1)+k2(1);
- k3=length(f1)+length(f2)-2+k0;
- k=k0:k3;
- f = conv(f1,f2);
MATLAB信号与系统分析(二)——离散时间信号与系统的时域分析的更多相关文章
- MATLAB信号与系统分析(一)——连续时间信号与系统的时域分析
一.连续时间信号的表示: 1.向量表示法: 在MATLAB中,是用连续信号在等时间间隔点的样值来近似表示连续信号,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号. 对于连续时间信号f( ...
- <转>Linux环境进程间通信(二): 信号(下)
原文地址为:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html 原文为: 一.信号生命周期 从信号发送到信号处理函数的 ...
- <转>Linux环境进程间通信(二): 信号(上)
原文链接:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html 原文如下: 一.信号及信号来源 信号本质 信号是在软件层 ...
- Qt计算器开发(二):信号槽实现数学表达式合法性检查
表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...
- Linux环境进程间通信(二): 信号--转载
http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html http://www.ibm.com/developerworks ...
- Linux 信号详解二(信号分类,信号处理,kill)
信号分类 信号分为可靠信号和不可靠信号 不可靠信号的缺点 ①:处理完信号,需要重新再注册信号:②信号可能丢失. Linux已经对缺点①做了优化,现在的不可靠问题主要指的是信号可能丢失 信号还可以分为实 ...
- Linux下的进程与线程(二)—— 信号
Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...
- 转:步步LINUX C--进程间通信(二)信号
源地址:http://blog.csdn.net/jmy5945hh/article/details/7529651 linux间进程通信的方法在前一篇文章中已有详细介绍.http://blog.cs ...
- linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction
一,sigaction() #include <signal.h> int sigaction(int signum,const struct sigaction *act,struct ...
- linux系统编程之信号(五):信号集操作函数,信号阻塞与未决
一,信号集及相关操作函数 信号集被定义为一种数据类型: typedef struct { unsigned long sig[_NSIG_WORDS]: } sigset_t 信号集用来描述信号的集合 ...
随机推荐
- java源代码分析----jvm.dll装载过程
简述众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,以下皆以windows平台为例,linux下 ...
- C++中的异常处理(三)
C++中的异常处理(三) 标签: c++C++异常处理 2012-11-24 23:00 1520人阅读 评论(0) 收藏 举报 分类: 编程常识(2) 版权声明:本文为博主原创文章,未经博主允许 ...
- R-squared是什么意思
在回归分析中,R-squared值应该为多大? 就像经常被问到,在回归分析中,R平方应该为多大才表示回归模型是好的?我经常能够听到这类问题,在没回答这个问题之前,我会解释如 何来解释R平方值,我也会阐 ...
- Java EE学习--Quartz基本用法
新浪博客完全不适合写技术类文章.本来是想找一个技术性的博客发发自己最近学的东西,发现博客园起源于咱江苏,一个非常质朴的网站,行,咱要养成好习惯,以后没事多总结总结经验吧.很多时候都在网上搜索别人的总结 ...
- HDOJ 2389 Rain on your Parade
HK.... Rain on your Parade Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 655350/165535 K ...
- HTML中的IE条件注释
IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解.比如普通的HTML注释是: <!--This is a comment--> 而只有IE可读的IE条件注释是 ...
- glut64位操作系统安装
64位win7下OpenGL的配置 - walkandthink的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/walkandthink/article/detai ...
- HTML快速入门2
三.版面风格控制 1. 字体控制 A. 字体大小 用 <font Size=#> 和 </font> 表示,#为字号: 1 - 7 ,缺省为 3 ,可用 <basefon ...
- GDB 使用大法
一.GDB 我用的是 GCC+POWERSHELL+GDB, GDB刚刚接触也有很多要记的. 二.一个调试示例 tst.c #include <stdio.h> int func(int ...
- django 1.7 新特性 --- data migration
官方文档:https://docs.djangoproject.com/en/dev/topics/migrations/ 1.7 之前大家可能会用south用于管理数据库的模型的同步.1.7之后dj ...