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 信号集用来描述信号的集合 ...
随机推荐
- sparkR操作HDFS上面的CSV文件
./bin/sparkR --packages com.databricks:spark-csv_2.10:1.3.0 --master yarn hdfs://master:9000/tmp/dem ...
- iOS-Auto property synthesis will not synthesize property 'delegate'; it will be implemented by its super
今天在XCode6.3上面重写TabBar的时候,自定义tabBar的代理遇到的一个问题 在重写tabBar的代理的时候遇到了一个警告. 解决方法: 在.m文件中 警告消失.
- IIS网站发布部署
Windows—控制面板——程序和功能——打开或关闭Windows功能——Internet信息服务(IIS),一定要选中ASP.Net. 1.打开你的VS2012网站项目,右键点击项目>菜单中 ...
- IIS计数器
Bytes Total/sec 是 Bytes Sent/sec 与 Bytes Received/sec 的总和.这是 Web 服务每秒传输的总字节数. Cache Total Turnover R ...
- vsPhere安装虚拟sm
1.在机器上单击右键 2.选择“编辑设置” 设备状态,选择打开电源时链接,数据存储ISO文件,选择镜象. 3.重启,进入安装界面. 4.
- [Effective JavaScript 笔记]第55条:接收关键字参数的选项对象
53节建议保持参数顺序的一致约定对于帮助程序员记住每个参数在函数调用中的意义很重要.参数较少这个主意不错,但如果参数过多后,就出现麻烦了,记忆和理解起来都不太容易. 参数蔓延 如下面这些代码: var ...
- Maya导入Unity的教程
原地址:http://www.cocoachina.com/gamedev/gameengine/2010/0601/1586.html 昨天已经发布了1Vr.Cn翻译的多维材质模型烘培入Unity ...
- 第一次学习QT
跟着大神学:http://www.cnblogs.com/tornadomeet/archive/2012/06/25/2561007.html
- Java正则表达式的最简单应用
String emailRegex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"; Pattern pat = ...
- JS的trim()方法
去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim.ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写.下面的实现方法是用到了正则表达式,效率不错,并把这三 ...