Advertisement

实验一 信号、系统及系统响应

阅读量:

文章目录

    • 实验目的
    • 实验原理

实验目的

  1. 学习并熟悉常见时域离散信号及其特性;
  2. 熟练掌握使用Matlab生成常见时域离散信号的技术途径;
  3. 深入学习并掌握处理常见时域离散信号基本运算的方法;
  4. 详细研究并熟练运用求解线性时不变系统冲激响应与阶跃响应的方法;
  5. 进一步深化对卷积定理的理解,并熟练应用线性卷积技术分析与求解复杂离散时间系统的动态特性。
  6. 深入分析并全面掌握各类离散系统的动态特性和行为规律。

实验原理

  1. 常用序列
    单个脉冲信号(采样单元)、阶跃函数系列、矩形脉冲系列、实数指数信号、复数指数信号以及正弦波形系列等。
    (1)单个脉冲信号描述如下
    方法一
复制代码
    n1=-5:5; %显然,用逻辑式是比较高明的方法
    x1=[(n1-0)==0];;%逻辑判断,自动循环,满条件置1.
    stem(n1,x1);%作用是绘制以n1为横坐标,x1为纵坐标的离散杆图title(单位脉冲序列)
    title('单位脉冲序列')%绘制标题
    axis([-5 5 0 1]);%横坐标从-5到5,纵坐标从0到1
在这里插入图片描述

方法二

复制代码
    x=[1 zeros(1,N-1)]%产生长度为N的单位脉冲序列

(2)单位阶跃序列

复制代码
    clear;
    n1=-5:5; 
    x1=[n1>=0];%逻辑判断,自动循环,满条件置1.
    stem(n1,x1);%作用是绘制以n1为横坐标,x1为纵坐标的离散杆图title(单位脉冲序列)
    title('单位阶跃序列')%绘制标题
    axis([-5 5 0 1]);%横坐标从-5到5,纵坐标从0到1
在这里插入图片描述

2、序列的基本运算
(1)序列的移位y(n)=x(n-k)
在该运算中,每个样本沿时间轴向右移动k个采样点。其取的是序列的历史数据,并能有效反映系统的因果特性;而用于获取序列未来的信息则需要依赖于外推技术,在实际应用中受到限制。因此,在数字信号处理领域内,默认采用向右的移位方式以确保系统的可实现性。

复制代码
    clc;clear;
    n=-3:10;k0=3;k1=-3;
    x=cos(2*pi*n/10);%原始信号
    x1=cos(2*pi*(n-k0)/10);
    x2=cos(2*pi*(n-k1)/10);
    subplot(311),stem(n,x,'filled','r');%填充红色
    ylabel('x(n)');
    subplot(312),stem(n,x1,'filled','b');%填充蓝色
    ylabel('x(n-2)');
    subplot(313),stem(n,x2,'k');%无填充黑色
    ylabel('x(n+2)');
在这里插入图片描述

(2)序列相加x(n)=x1(n)+x2(n)
当序列x1(n)和x2(n)的长度不等或位置不对应时,首先应使两者位置对齐, 然后通过zeros函数左右补零使其长度相等后再相加。
(3) 序列相乘:x(n)=x1(n) x2(n)
序列的乘法是一种非线性运算,它用于信号的调制。它把两个序列中位 置序号相同的样本相乘,形成新的样本序列。

在这里插入图片描述

在MATLAB中进行序列加法可使用算术运算符"+"来实现,并对序列执行乘法操作需使用点乘运算符".*.".同时需要确保x1与x2的位置向量拥有相同的起点、终点以及长度一致.

复制代码
    clc;clear;
    x1=[0 1 2 3 4 3 2 1 0];ns1=-2;
    x2=[2 2 0 0 0 -2 -2];ns2=2;
    nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;
    ny=min(ns1,ns2):max(nf1,nf2);
    xa1=zeros(1,length(ny));xa2=xa1;
    xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;
    xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;
    ya = xa1 + xa2 % 序列相加
    yp = xa1.* xa2 % 序列相乘
    subplot(4,1,1), stem(ny,xa1,'.') % 绘图 
    subplot(4,1,2), stem(ny,xa2,'.')
    line([ny(1),ny(end)],[0,0]) % 画x轴 
    subplot(4,1,3), stem(ny,ya,'.')
    line([ny(1),ny(end)],[0,0])
    subplot(4,1,4), stem(ny,yp,'.')
    line([ny(1),ny(end)],[0,0])
在这里插入图片描述

(4)序列反转过程:y(n)=x(-n),其中每个样本点关于纵坐标轴n=0进行镜像反射得到新的序列值

复制代码
    n=-5:5;
    x=exp(-0.4*n);
    x1=fliplr(x);
    n1=-fliplr(n);
    subplot(1,2,1),stem(n,x,'filled','k');title('x(n)');
    subplot(1,2,2),stem(n1,x1,'filled','k');title('x(-n)');
在这里插入图片描述

3、系统响应求解
(1)通过调用impz与dstep函数来计算离散时间系统在单位冲激输入下的反应以及阶跃输入下的反应
例如,在零初始状态下分析因果性离散系统时,差分方程通常表示为y(n) + 0.5y(n−1) = x(n) + 2x(n−2)

a和b分别被赋值为[1, 0.5, 0]和[1, 0, 2];%系数向量
n被赋值为16;
通过调用impz函数来执行冲激响应的计算;
通过调用dstep函数来执行阶跃响应的计算;
(2)使用conv函数来进行卷积运算。

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~