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);
时间: 2024-12-12 00:25:03

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

MATLAB信号与系统分析(一)&mdash;&mdash;连续时间信号与系统的时域分析

一.连续时间信号的表示: 1.向量表示法: 在MATLAB中,是用连续信号在等时间间隔点的样值来近似表示连续信号,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号. 对于连续时间信号f(t),一般是用两个行向量f和t来表示.t=t1:p:t2 ,t1 表示的是信号的起始时间,t2为终止时间,p为时间的间隔.而f为连续时间f(t)在向量t所定义的时间范围内对应的样值. 2.符号运算表示法: 使用sym定义变量,然后进行表示. Eg:分别采用上述两种方法画出抽样信号: clear al

填坑——浅谈“离散时间信号的傅里叶变换”

之前学习计算机视觉,虽然敲了不少代码,但一直没弄懂傅里叶变换以及图像滤波背后的数学含义,只能对着现成的公式照葫芦画瓢,让我内心觉得深深的不安.好在通过这段时间在华为的实习,恶补了一下数字信号处理相关的基础知识,总算是把这方面的坑给填上了.以下为这几天的学习成果,也就是我自己对傅里叶变换的理解. 一.离散时间信号 要弄懂离散时间信号的傅里叶变换,首先要弄清楚什么是信号,而什么又是离散时间信号.(虽然感觉像是废话,可作为一个软件工程的童鞋我一开始对这些东西真的没概念啊T_T) 所谓信号,其实就是包含

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

表达式的合法性 因为我们的计算器不是单步计算的,所以我们可以一次性输入一个长表达式.然而如果用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比如,在输入了左括号以后那么接下来,不能输入运算符.此时运算符要是不可用的状态.在输入了右括号以后不能直接输入数字,此时数字键应该是不可用状态.等等此类的. 在这里我使用了信号与槽的方式来实现.点击不同的按钮,会发展出不同的信号.在这之后的事,点击按钮本身无需考虑,这也是信号槽的良好的设计理念造成的效果,

[离散时间信号处理学习笔记] 12. 连续时间信号的离散时间处理以及离散时间信号的连续时间处理

连续时间信号与离散时间信号之间的关系 下表为各符号的解释 Symbol FT DTFT Info $x_c(t)$ $X_c(j\Omega)$ - 连续时间信号 $x[n]$ - $X(e^{j\omega})$ 离散时间信号 $s(t)$ $S(j\Omega)$ - 周期脉冲函数.即采样函数 $x_s(t)$ $X_s(j\Omega)$ - 信号周期采样的数学表示 $\Omega_N$ - - 奈奎斯特频率,也就是带限信号的受限频率 $\Omega_s$ - - 采样频率 $T$ - -

01 离散时间信号的时域表示

离散时间信号的时域表示 ??在连续时间系统中,我们表示用\(x(t)\)来表示一个信号,其中\(t\)的取值是连续的,在离散时间系统中,我们\(x[n]\)这个序列来表示一个信号,其中\(n\)的取值只能为整数,对于非整数的n,\(x[n]\)没有定义而不是取值为0. 一个序列可写为 \[ x[n] = \{..., 0.95, -0.2,\mathop{2.17}\limits_{\uparrow},1.1,0.2,...\} \] 其中用箭头表示\(x[0]?\)出现的位置. ??离散数字信

Linux 信号详解二(信号分类)

信号分类 信号分为可靠信号和不可靠信号 不可靠信号的缺点 ①:处理完信号,需要重新再注册信号:②信号可能丢失. Linux已经对缺点①做了优化,现在的不可靠问题主要指的是信号可能丢失 信号还可以分为实时信号和非实时信号--一般不可靠信号指的是前32种信号,这32种信号已经有了预定义值,每个信号有了确定的用途及含义,并且每种信号都有各自的缺省动作 --可靠信号指的后32种信号 --非实时信号都不支持排队,都是不可靠信号:实时信号都支持排队,都是可靠信号.

浅谈Linux中的信号机制(二)

首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Linux内核源码评头论足.以后的路还很长,我还是一步一个脚印的慢慢走着吧,Linux内核这座山,我才刚刚抵达山脚下. 好了,言归正传,我接着昨天写下去.如有错误还请各位看官指正,先此谢过. 上篇末尾,我们看到了这样的现象:send进程总共发送了500次SIGINT信号给rcv进程,但是实际过程中rcv只接受/处理了1

离散时间信号与系统:4

12.系统 系统就是变换(Transformations,在线性代数中表示运动的一种描述) 将一个离散时域信号x映射到一个离散时域信号y.例如:磁共振成像系统. 其中,offset翻译成:补偿系统么? Decimate翻译成抽样系统么? 总结: 系统通过对信息的操作将一个信号变换为(transform)另一个信号. 只考虑: 将无限信号x变换为无限信号y. 将长度为N的信号x变换为长度为N的信号y. 12. 线性系统 两个性质: 缩放性和可加性. 注意:两个性质都是系统输出y随着系统输入x的变化

进程-IPC 信号和信号量 (二)

详细见:  https://github.com/ZhangzheBJUT/linux/blob/master/IPC(%E4%BA%8C).md 三 信号 3.1. 信号简介 信号是进程之间互相传递消息的一种方法,信号全称为软中断信号,也可称为软中断,它是实现IPC的方法之一. 信号是UNIX和Linux系统响应某些条件而产生的一个事件.进程之间可以互相通过系统调用kill发送软中断信号.内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件. 注:信号只是简单用来通知某进程发生了什么

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

Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得以知道的. Linux系统的进程之间是通过信号来通信的. 程序员在Shell上显式地发送信号使用的是kill命令,原型如下: kill -sigid [-]pid 其中, sigid指示的是信号的id,pid前若有-,则pid代表的为进程组id,否则pid代表的为进程id kill函数也有相同的作用