数字信号处理第一次试验:系统响应及系统稳定性

2023-11-09

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。

二、实验原理与方法

在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用 MATLAB 语言的工具箱函数 filter 函数。也可以用 MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。系统的稳态输出是指当n→∞时,系统的输出。如果系统稳定,信号加入系统后,系统输 出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。

三、实验环境

Matlab 7.0及Matlab 2018b

四、实验内容及步骤

(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用 filter 函数或 conv函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。
(2)给定一个低通滤波器的差分方程为
y ( n ) = 0.05 x ( n ) + 0.05 x ( n − 1 ) + 0.9 y ( n − 1 ) y(n)=0.05x(n)+0.05x(n-1)+0.9y(n-1) y(n)=0.05x(n)+0.05x(n1)+0.9y(n1)
输入信号 x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n)
x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)
a) 分别求出系统对 x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n) x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)的响应序列,并画出其波形。
b) 求出系统的单位冲响应,画出其波形。
(3)给定系统的单位脉冲响应为
h 1 ( n ) = R 10 ( n ) h_1(n)=R_{10}(n) h1(n)=R10(n)
h 2 ( n ) = δ ( n ) + 2.5 δ ( n − 1 ) + 2.5 δ ( n − 2 ) + δ ( n − 3 ) h_2(n)=\delta(n)+2.5\delta(n-1)+2.5\delta(n-2)+\delta(n-3) h2(n)=δ(n)+2.5δ(n1)+2.5δ(n2)+δ(n3)

用线性卷积法分别求系统 h 1 ( n ) h_1(n) h1(n) h 2 ( n ) h_2(n) h2(n) x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n)的输出响应,并画出波形。
(4)给定一谐振器的差分方程为
y ( n ) = 1.8237 y ( n − 1 ) − 0.9801 y ( n − 2 ) + b 0 x ( n ) − b 0 x ( n − 2 ) y(n)=1.8237y(n-1)-0.9801y(n-2)+b_0x(n)-b_0x(n-2) y(n)=1.8237y(n1)0.9801y(n2)+b0x(n)b0x(n2)
b 0 = 1 / 100.49 b_0= 1/100.49 b0=1/100.49,谐振器的谐振频率为0.4rad。
a) 用实验方法检查系统是否稳定。输入信号为u(n)时,画出系统输出波形。
b) 给定输入信号为
x ( n ) = s i n ( 0.014 n ) + s i n ( 0.4 n ) x(n)=sin(0.014n)+sin(0.4n) x(n)=sin(0.014n)+sin(0.4n)
求出系统的输出响应,并画出其波形。

五、实验结果截图(含分析)

实验程序清单

%实验1:系统响应及系统稳定性
close all;clear
%=====内容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性=====
A=[1,-0.9];B=[0.05,0.05];%系统差分方程系数向量B和A 
x1n=[1 1 1 1 1 1 1 1 zeros(1,50)];%产生信号xl(n)=R8(n)
x2n=ones(1,128);%产生信号x2(n)=u(n)
hn=impz(B,A,58);%求系统单位脉冲响应h(n)
subplot(2,2,1);y='h(n)';tstem(hn,y);%调用函数tstem绘图
title('(a)系统单位脉冲响应h(n)');box on 
y1n=filter(B,A,x1n);%求系统对xl(n)的响应yl(n)
subplot(2,2,2);y='y1(n)';tstem(y1n,y);
title('(b)系统对R8(n)的响应y1(n)');box on 
y2n=filter(B,A,x2n);%求系统对x2(n)的响应y2(n)
subplot(2,2,4);y='y2(n)';tstem(y2n,y);
title('(c)系统对u(n)的响应y2(n)');box on
%=====内容2:调用conv 函数计算卷积=====
x1n=[1 1 1 1 1 1 1 1];%产生信号x1(n)=R8(n)
h1n=[ones(1,10) zeros(1,10)];h2n=[1 2.5 2.5 1 zeros(1,10)];
y21n=conv(h1n,x1n);
y22n=conv(h2n,x1n);
figure(2)
subplot(2,2,1);y='h1(n)';tstem(h1n,y);%调用函数tstem绘图
title('(d)系统单位脉冲响应h1(n)');box on
subplot(2,2,2);y='y21(n)';tstem(y21n,y);
title('(e)hl(n)与R8(n)的卷积y21(n)');box on 
subplot(2,2,3);y='h2(n)';tstem(h2n,y);%调用函数tstem绘图
title('(f)系统单位脉冲响应h2(n)');box on 
subplot(2,2,4);y='y22(n)';tstem(y22n,y);
title('(g)h2(n)与R8(n)的卷积y22(n)');box on
%====内容3:谐振器分析====
un=ones(1,256);%产生信号u(n)
n=0:255;
xsin=sin(0.014*n)+sin(0.4*n);%产生正弦信号
A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49];%系统差分方程系数向量B和A 
y31n=filter(B,A,un);%谐振器对u(n)的响应y31(n)
y32n=filter(B,A,xsin);%谐振器对u(n)的响应y31(n)
figure(3)
subplot(2,1,1);y='y31(n)';tstem(y31n,y);
title('(h)谐振器对u(n)的响应y31(n)');box on 
subplot(2,1,2);y='y32(n)';tstem(y32n,y);
title('(i)谐振器对正弦信号的响应y32(n)');box on

function tstem(xn,yn)
%时域序列绘图函数
% xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串)
n=0:length(xn)-1;
stem(n,xn,'.');
xlabel('n');ylabel(yn);
axis([0,n(end),min(xn),1.2*max(xn)])

实验程序运行结果及分析讨论
程序运行结果如下图所示。
实验内容(2)系统的单位冲响应、系统对 x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n) x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)的响应序列分别如图(a)、(b)和©所示;
实验内容(3)系统 h 1 ( n ) h_1(n) h1(n) h 2 ( n ) h_2(n) h2(n) x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n)的输出响应分别如图(e)和(g)所示;
实验内容(4)系统对u(n)和 x ( n ) = s i n ( 0.014 n ) + s i n ( 0.4 n ) x(n)=sin(0.014n)+sin(0.4n) x(n)=sin(0.014n)+sin(0.4n)的响应序列分别如图(h)和(i)所示。由图(h)可见,系统对u(n) 的响应逐渐衰减到零,所以系统稳定。由图(i)可见,系统对 x ( n ) = s i n ( 0.014 n ) + s i n ( 0.4 n ) x(n)=sin(0.014n)+sin(0.4n) x(n)=sin(0.014n)+sin(0.4n)的稳态响应近似为正弦序列,这一结论验证了该系统的谐振频率是0.4 rad。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、思考题

(1) 如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应? 如何求?
(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化,用前面第一个实验结果进行分析说明。
(3)在MATLAB中filter和conv函数的区别
答:(1) 如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应。①对输入信号序列分段;②求单位脉冲响应 h(n)与各段的卷积;③将各段卷积结果相加。具体实现方法有第三章介绍的重叠相加法和重叠保留法。
(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号的剧烈变化将被平滑,由实验内容(1)结果图 10.1.1(a)、(b)和©可见,经过系统低通滤波使输入信号 δ ( n ) \delta(n) δ(n) x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n) x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)的阶跃变化变得缓慢上升与下降。
(3)对于conv(signal,hn,'same')来说,是居中对齐的,当hn=[0,1,0]时卷积出的序列和signal一致;当hn=[1,0,0]时卷积出的序列前移一位;对于filter(hn,1,siganl)来说,是左对齐的,当hn=[1,0,0]时卷积获得原序列,hn=[0,1,0]时卷积出的结果为原序列的延迟。

七、实验报告要求

(1)简述在时域求系统响应的方法。
(2)简述通过实验判断系统稳定性的方法。分析上面第三个实验的稳定输出的波形。
(3)对各实验所得结果进行简单分析和解释。
(4)简要回答思考题。
(5)打印程序清单和要求的各信号波形。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字信号处理第一次试验:系统响应及系统稳定性 的相关文章

  • 在Matlab图例中使用Latex?

    我的 matlab 不接受我的 Latex 例如 如果我使用legend b 6 rightarrow b 7 它没有向我显示箭头 我该如何解决这个问题 尝试使用 Latex 解释器 例如 legend b 6 rightarrow b 7
  • MATLAB - 从目录读取文件?

    我希望从目录中读取文件并对每个文件迭代执行操作 此操作不需要更改文件 我知道我应该为此使用 for 循环 到目前为止我已经尝试过 FILES ls path to folder for i 1 size FILES 1 STRU pdbre
  • 在matlab中融合2个以上的图像

    在 MATLAB 中 如何融合两个以上的图像 例如 我想要做什么imfuse但对于超过 2 个图像 使用两张图像 这是我的代码 A imread file1 jpg B imread file2 jpg C imfuse A B blend
  • 可以避免迭代元胞数组时的“s{1} 烦恼”吗?

    The s 1 标题的 烦恼 指的是下面的 for 块中的第一行 for s some cell array s s 1 unpeel the enclosing cell do stuff with s end This s s 1 业务
  • MATLAB 图形渲染:OpenGL 与 Painters?

    当谈到使用哪个渲染器来处理 MATLAB 图形或何时它很重要时 我一无所知 但我遇到过某些示例 其中does matter plot 0 0 ko markersize 50 linewidth 8 set gcf renderer ope
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • 静态时序数据的数据库解决方案

    我们拥有一个庞大且不断增长的实验数据集 该数据集取自约 30 000 名受试者 对于每个主题 都有多个数据记录 在每个记录中 收集了多个生理数据时间序列 每个时间序列约 90 秒长 并以 250Hz 采样 我应该注意到 时间序列的任何给定实
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整
  • 图像分析-光纤识别

    我是图像分析新手 您知道如何以仅获取纤维的方式对该图像进行二值化吗 我尝试过不同的阈值技术等 但没有成功 我不介意应该使用什么工具 但我更喜欢 NET or Matlab PS 我不知道该把答案放在哪里 所以我把它放在StackOverfl
  • 一次分配多个字段的聪明方法?

    由于遗留函数调用 我有时被迫编写像这样的丑陋的包装器 function return someWrapper someField a someField a b someField b and so on realistically it
  • 如何在 MATLAB 中可视化球体的交集?

    似乎这个问题在一些地方被问过 包括SO https stackoverflow com questions 35130336 draws the intersecting volume of two spheres in matlab 我最
  • Matlab:掩码/创建一个知道其原点且具有一定半径的圆形 roi

    只是一个简单的问题 我有一张图像 并且提取了某个点 特征 我知道每个帧中该点的坐标 说 x1 和 y1 我需要一个圆形 ROI 形式 该点在图像上具有我选择的半径 我尝试了 impoly 和 roipoly 当我知道图像中的要点时 不知道如
  • 使用 GPU 进行 Matlab 卷积

    我用gpuArray尝试了matlab的卷积函数conv2 convn 例如 convn gpuArray rand 100 100 10 single gpuArray rand 5 single 并将其与 cpu 版本 convn ra
  • MATLAB 中时间戳过滤器的优化 - 处理非常大的数据集

    我正在 MATLAB 中编写一个程序 必须使用 MATLAB 并且不能真正使用 MEX 来过滤大量数据 我需要实现的过滤器之一要求我将时间戳向量与其他时间戳不会出现的已知 不良 时间列表进行比较 一个典型的时间戳向量有大约 2 000 00
  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • 将自动生成的 Matlab 文档导出为 html

    我想为我开发的 Matlab 工具箱生成完整的帮助 我已经看到如何显示自定义文档 http www mathworks fr fr help matlab matlab prog display custom documentation h
  • Matlab Mex文件编译

    我正在尝试编译一个 mex 文件以在 matlab 中使用套接字连接 问题是它总是说我没有安装sdk或编译器 但我已经安装了 Visual Studio 2010 Express Visual Studio 2012 Express Vis
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 句柄类和值类的区别

    我有一些 C 背景 想使用 Matlab 中的类 句柄和值类有什么区别 我知道如果我想定义一个带有重载运算符 例如 和 的矩阵类 我会使用值类 然而 有时 当我选择一个手柄类时 事情似乎只对我有用 MathWorks 提供了一些有关其用途的

随机推荐

  • Basic Level 1093 字符串A+B (20分)

    题目 给定两个字符串 A 和 B 本题要求你输出 A B 即两个字符串的并集 要求先输出 A 再输出 B 但重复的字符必须被剔除 输入格式 输入在两行中分别给出 A 和 B 均为长度不超过 1 0 6 10 6 106的 由可见 ASCII
  • 利用DDA、中点画线和Bresenham法画直线

    一 实验目的 在空白图像上绘制两个点 坐标分别为 24 26 和 140 624 并且绘制出以该点为端点的直线 要求利用DDA 中点直线及Bresenham算法进行绘制 二 设计方案 使用DDA 中点画线和Bresenham画线法绘制直线
  • VideoCapture.get()(python)

    param define cv2 VideoCapture get 0 视频文件的当前位置 播放 以毫秒为单位 cv2 VideoCapture get 1 基于以0开始的被捕获或解码的帧索引 cv2 VideoCapture get 2
  • 机器学习分类算法(六)-随机森林算法

    集成算法 集成学习 ensemble learning 是目前非常流行的机器学习策略 基本上所有问题都可以借用其思想来得到效果上的提升 基本出发点就是把算法和各种策略集中在一起 说白了就是一个搞不定大家一起上 集成学习既可以用于分类问题 也
  • 多线程之线程同步

    多线程内容大致分两部分 其一是异步操作 可通过专用 线程池 Task Parallel PLINQ等 而这里又涉及工作线程与IO线程 其二是线程同步问题 鄙人现在学习与探究的是线程同步问题 通过学习 CLR via C 里面的内容 对线程同
  • leetcode 200. 岛屿数量——java题解

    题目所属分类 flood fill 算法 dfs算法经典 原题链接 给你一个由 1 陆地 和 0 水 组成的的二维网格 请你计算网格中岛屿的数量 岛屿总是被水包围 并且每座岛屿只能由水平方向和 或竖直方向上相邻的陆地连接形成 此外 你可以假
  • java运行jar文件中某个类

    size medium 运行jar文件的方法是 1 java jar xxx jar 但是有时 我们希望运行里面的具体某个类 这时可以通过 1 java cp xxx jar xxx com xxxx 其中 cp命令是将xxx jar加入到
  • 定时任务中的cron表达式

    目录 cron 表达式的定义 cron 表达式时间域的定义 cron 表达式中的通配符 常用cron表达式示例 cron 表达式的定义 虽然之前用过 cron 表达式 但对其表达式的含义只是粗略了解 恰逢最近需要使用 经查询资料 对其进行详
  • 【数据挖掘】用户画像

    概念区分 Persona和Profile 经常都翻译为用户画像 二者的概念有相关的部分 但是也有区别 Persona 也叫做用户角色 是描绘抽象一个自然人的属性 用于产品和用户调研 Profile 是和数据挖掘 大数据息息相关的应用 通过数
  • STM32-keil5仿真调试

    借着备考蓝桥杯 整理一下32的调试技巧 1 在魔术棒里找到Debug栏 选择软件仿真 注意右下角Parameder 2 进入调试界面 3 点击进入示波器 点击setup设置 点击右上角新建 输入例如PORTA 6 再选择Display Ty
  • 背包算法的实现

    实现了将一些数据构成的一个背包问题做简单的实现 但不知道有没有理解对 如有错误 还请指出 物品类的javabean package main public class goods private int weight private int
  • 利用JDBC同步不同数据库间的历史数据(脚本)

    1 例如线上线下订单之间的同步 Controller RequestMapping import public class O2oImportOrderPaymentsController Autowired private O2oImpo
  • 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限

    转载请注明 http blog csdn net hubbybob1 article details 50263925 很多Android的应用在使用usb设备时 尤其是usb摄像头 前段时间编写了一个有关usb设备的apk 但是在使用时总
  • JS-style属性

    HTML元素 style 样式属性 值 document getElementById titles style color ff0000 document getElementById titles style fontSize 25px
  • HTML5上的LocalStorage(本地存储)基本用法

    获取localStorage的长度 window localStorage length 添加 编辑localStorage的内容 window localStorage setItem 键 值 根据对应的索引去获取对应localStora
  • Redhat5 安装序列号及版本说明

    为了保证安装的组件和订阅相匹配 红帽企业 Linux 5 需要输入一个安装号 它被用来配置安装程序来提供正确的软件包 安装号码包含在你的订阅里 如果您没有输入安装号码 只有核心服务器或 Desktop 将会被安装 其它功能可以在以后被手工安
  • Matlab Simulink 常用快捷操作和功能(1)

    1 快速查找library里面的模块 双击左键 然后输入要查询的模块名称 gt 2 block 和 signal 的命名修改 单击block 显示 修改名字 3 Simulink支持从块参数对话框中创建变量 可以在Simulink中创建MA
  • vue element admin 拖拽dialog v-el-drag-dialog

    1在vue element admin master里找到src directive el drag dialog文件夹复制到自己的相同目录下 2页面引用 import elDragDialog from directive el drag
  • 读者写者模型

    前一节介绍完了生产者消费者模型 它是一种一方生产数据 另一方消费数据的模式 下面介绍另外一种不同于生产消费的模型 即读者写者模型 两者相同 和前面的模型相比 读写模型中写者与写者之间还是互斥关系 写者与读者之间还是互斥与同步关系 两者差异
  • 数字信号处理第一次试验:系统响应及系统稳定性

    数字信号处理第一次试验 系统响应及系统稳定性 前言 一 实验目的 二 实验原理与方法 三 实验环境 四 实验内容及步骤 五 实验结果截图 含分析 六 思考题 七 实验报告要求 前言 为了帮助同学们完成痛苦的实验课程设计 本作者将其作出的实验