数字信号处理实验指导书(2015年用) (1)资料 下载本文

内容发布更新时间 : 2024/6/7 11:45:59星期一 下面是文章的全部内容请认真阅读。

实验0:熟悉Matlab环境和语言

1. 实验目的

(1)熟悉MATLAB界面,了解常用操作窗口。 (2)熟悉MATLAB语言的基本操作技术。 (3)掌握m文件的编程及调试技术。 2. 实验原理与方法 (1)软件界面简介

不同版本的Matlab软件界面不完全相同,但一般都由标题栏、菜单栏、工具栏、交互窗口、状态栏等部分组成。其中,交互窗口主要包括:命令窗、当前目录窗、工作空间窗(含数组编辑器)、历史指令窗、m文件编辑窗、图形显示窗等等。 (2)常用操作指定

标点符号在MATLAB中的地位极其重要,为确保指令正确执行,标点符号一定要在英文状态下输入。常用标点符号的功能如下:

逗号, 用于要显示计算结果的指令结尾标志;用于输入量与输入量之间的分隔符;用于数组元素分隔符号。

黑点. 用作数值中的小数点;用于元素群运算。

分号; 用于不显示计算结果的指令结尾标志;用作数组的行间分隔符号。 冒号: 用于生成一维数值数组;用做单下标援引。 注释号% 后面的物理行作注释。 单引号‘ ’ 字符串记述符。

圆括号( ) 函数指令时用;数组援引时用。

方括号[ ] 输入数组时用;函数指令输出宗量列表时用。 续行号? 由三个以上连续黑点构成,用于长指令。 常用操作指定主要有: clc 清除指令窗中显示内容

clear 清除MATLAB工作空间中保存的变量。 close all 关闭所有打开的图形窗口 type 显示指定m文件的内容。 disp 显示变量的内容。 (3)标识符、特殊变量、函数

标识符是标志变量名、常量名、函数名和文件名的字符串的总称。标识符可由字母、数字和下划线组成,但必须以英文字母开头。标识符区分字母大小写。

特殊变量是MATLAB内部用来表达特殊含义的变量(包括常量),又称为MATLAB的预定义变量。如:ans(指当前未定义变量名的答案);eps(表示浮点相对精度,eps=2≈2.2204e-016);inf(无穷大);nan(不是数);i或j(虚单元);pi(圆周率)。在编写程序指定时,应尽可能不对这些预定义变量重新赋值。

MATLAB语言的优点和难点是函数多,仅基本部分就有700多个函数,共分22大类(即22个函数库)。学习函数的基本方法是利用help命令或help窗口文件,在应用中逐步扩展掌握。 (4)矩阵运算和数组(元素群)运算

矩阵在结构上和二维数组没有区别,但矩阵是一种具有线性变换意义的二维数组,矩阵运算有明确而且严格的数学规则。把矩阵作为一个整体进行运算的常用运算符有五个“ ’、*、/、\\、^ ”,常用运算函数有三个“expm、logm、 sqrtm”。在做矩阵运算时,往往还需要进行行列提取、抽除、转置、

1

-52

重排等操作。

数组(元素群)运算是指对数组中所有元素按单个元素进行运算。MATLAB所有的运算符和函数都适用于做数组运算。如果是对数组进行“转置、乘、除、幂”等运算,必须在运算符前加一个小黑点。 (5) 编辑调试m文件

对于比较简单的问题或一次性问题,可通过在指令窗中直接输入指令求解,但当指令较复杂,或一组指令只需改变少量参数就可解决不同问题时,直接在指令窗中逐条输入指令的方法就显得烦琐、累赘和笨拙。m文件可以很好地解决这个问题。

m文件编辑器:m文件可用编辑调试器(Edit/Debugger)进行编辑调试。缺省情况下,m文件编辑器不随MATLAB的启动而开启,新建或打开m文件时均可启动m文件编辑器。

m文件的编写:用clear,close all,clc等语句清除工作空间的变量、关闭所有图形窗口和清空命令窗口;除单引号内部的字符及注释外,程序语句必须用半角英文字母和符号(建议在程序输入时从头到尾用英文,汉字在程序调试完毕后加入);编辑器可对程序的字体格式和段落缩进自动排版;程序路径和标识符不允许出现汉字字符;以%开头的物理行后面是注释(可用汉字)。

m文件的运行:在m文件编辑调试器(Edit/Debugger)中执行Debug:Run命令即可运行调试,可在命令窗口及工作空间窗口了解运行情况。想退出运行的m文件可在命令窗中用“Ctrl+C”中止m文件的运行。

(6)matlab绘图

matlab绘图函数比较多,常用的MATLAB绘图函数有plot、stem 、subplot、 figure等。利用plot函数可绘连续图象、利用stem函数可绘离散图象。利用subplot函数可分割窗口。利用figure函数可创建新的图形窗口或指定当前窗口。title命令可给图加上标题;xlabel/ylabel命令可给坐标轴加说明;text或gtext命令可在图上任何位置加标注;grid命令可在图上画坐标网格线;hold on命令可保持当前图形绘图。这些函数命令的调用格式,可参阅help查找。

表1 基本线型和颜色 符号 y m c r g b w k

3.实验内容及步骤

(1) 用plot函数在0到2π范围内绘制两条正弦信号波形y1?sin(x),y2?sin(x??/4),波形需用不同线形区分,需加必要说明。

clc; clear; close all;format compact x=linspace(0,2*pi,100); y1=sin(x);y2=sin(x-pi/4); plot(x,y1,'r');hold on plot(x,y2,'b:');

2

颜色 黄色 紫红 青色 红色 绿色 兰色 白色 黑色 符号 . 0 x + * - : -. -- 线型 点 圆圈 x标记 加号 星号 实线 点线 点划线 虚线

axis([0,2*pi,-1.1,1.1]); xlabel('x'),ylabel('y'), title('正弦波形图'),grid on

(2) 用stem函数绘15点指数序列波形x(n)?2?0.8n,需加必要说明。 clc; clear; close all;format compact n=0:14, xn=2*0.8.^n, stem(n,xn,'.');

xlabel('n'),ylabel('x(n)'), title('指数序列波形'),

(3) 已知序列x(n)?{2,3,1,?1,0,2},h(n)?{2,?1,1},计算卷积y(n)?x(n)*h(n),并用三个子窗口绘制x(n),h(n)和y(n)的波形,需加必要说明。

clc; clear; close all; format compact xn=[2,3,1,-1,0,2],Nx=length(xn), hn=[2,-1,1],Nh=length(hn), yn=conv(xn,hn),Ny=length(yn), n=0:(Ny-1), subplot(3,1,1);

stem(n,[xn,zeros(1,Ny-Nx)],'b.'), xlabel('n'),ylabel('x(n)'), grid,title('输入信号x(n)'), subplot(3,1,2);

stem(n,[hn,zeros(1,Ny-Nh)],'b.'), xlabel('n'),ylabel('h(n)'), grid,title('脉冲响应h(n)'), subplot(3,1,3); stem(n,yn,'r.'),

xlabel('n'),ylabel('y(n)'), grid,title('输出信号y(n)'),

(4) 已知系统的差分方程为

y(n)?1.823y7(n?1)?0.980y1(n?2)?b0x(n)?b0x(n?2),令 b0?1/100.49,判断系统是否稳定,绘出系统的幅频特性曲线和相频特性曲线。 clc; clear; close all; format compact

A=[1,-1.8237,0.9801],B=[1/100.49,0,-1/100.49], %系统差分方程系数向量A和B

[r,p,k]=tf2zp(B,A), %求系统的零、极点及增益 figure(1);zplane(B,A), %绘零极点图 figure(2);freqz(B,A); %观察系统的谐振频率

3

实验一:系统响应及系统稳定性

1. 实验目的

(1)掌握求系统响应的方法。

(2)掌握时域离散系统的时域特性。 (3)分析、观察及判断系统的稳定性。 2. 实验原理与方法

描述系统特性有多种方式,时域描述有差分方程和单位脉冲响应,频域描述有系统函数和频率响应。已知输入信号可以由差分方程、单位脉冲响应、系统函数或频率响应求系统输出信号。

(1)求系统响应 本实验仅在时域求系统响应。在计算机上,已知差分方程可调用filter函数求系统响应;已知单位脉冲响应可调用conv函数计算系统响应。

(2)系统的时域特性 系统的时域特性是指系统的线性、时不变性质、因果性和稳定性。本实验重点分析系统的稳定性,包括观察系统的暂态响应和稳态响应。 (3)系统的稳定性判断 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和条件。实际中,检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。

(4)系统的稳态响应 系统的稳态输出是指当n??时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

(1)已知差分方程求系统响应 设输入信号 x1(n)?R8(n),x2(n)?u(n)。已知低通滤波器的差分方程为 y(n)?0.05x(n)?0.05x(n?1)?0.9y(n?1)。试求系统的单位冲响应,及系统对

x1(n)?R8(n)和x2(n)?u(n)的输出信号,画出输出波形。

(2)已知单位脉冲响应求系统响应 设输入信号 x(n)?R8(n),已知系统的单位脉冲响应分别为

h1(n)?R10(n),h2(n)??(n)?2.5?(n?1)?2.5?(n?2)??(n?3),试用线性卷积法分别求出各系

统的输出响应,并画出波形。

(3)系统的稳定性判断 给定一谐振系统的差分方程为

y(n)?1.8237y(n?1)?0.9801y(n?2)?b0x(n)?b0x(n?2) 令 b0?1/100.49,谐振器的谐振频率为0.4rad。

①输入信号为u(n)时,画出系统输出波形。判断系统是否稳定。

②给定输入信号为x(n)?sin(0.014n)?sin(0.4n),求出系统的输出响应,并画出其波形。 4.思考题

(1) 如果输入信号为接近无限长的序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应? 应如何求?

(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化,结合实验(1)结果进行分析说明。 5.实验报告要求

(1)结合实验内容打印程序清单和信号波形。 (2)对各实验结果进行简单分析和解释。 (3)简要回答思考题。

4