当前位置:文档之家› 数字信号处理实验教程

数字信号处理实验教程

目录第一章绪论 (2)第二章 Matlab简介及其安装使用说明 (3)2.1 MATLAB程序设计语言简介 (3)2.2. MATLAB应用入门 (3)2.3 Matlab基本语句 (9)2.4 Matlab基本数值运算 (14)2.5 Matlab函数、及其调用方法 (17)第三章验证性实验 (21)3.1 实验:常见离散信号产生和实现 (21)3.2 实验:离散系统的时域分析 (23)3.3 实验: FFT算法的应用 (25)3.4 实验:离散系统的变换域分析 (28)3.5 实验:有限冲激响应数字滤波器设计 (33)3.6 实验:无限冲激响应数字滤波器设计 (37)第四章设计性和研究性实验 (42)4.1 设计性实验:图像信号的抽取与插值 (42)4.2设计性实验:语音及音乐信号的采样、滤波 (42)4.3设计性实验:双音多频(DTMF)信号的合成和识别 (43)4.4设计性实验:音乐信号处理 (43)第二章 Matlab简介及其安装使用说明2.1 MATLAB程序设计语言简介MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。

与大家常用的Fortran和C等高级语言相比,MATLAB的语法规则更简单,更贴近人的思维方式,被称之为“草稿纸式的语言”。

截至目前,MATLAB已经发展到7.x版, 适用于所有32位的Windows操作系统, 按NTFS(NT文件系统)格式下完全安装约需 850 MB。

MATLAB软件主要由主包、仿真系统和工具箱三大部分组成。

2.2. MATLAB应用入门1. MATLAB的安装与卸载MATLAB软件在用户接口设计上具有较强的亲和力,其安装过程比较典型, 直接运行光盘中的安装向导支撑程序SETUP.exe, 按其提示一步步选择即可。

MATLAB自身带有卸载程序,在其安装目录下有uninstall子目录,运行该目录下的uninstall.exe即可; 也可以通过Windows系统的安装卸载程序进行卸载。

2. MATLAB的启动与退出MATLAB安装完成后,会自动在Windows桌面上生成一个快捷方式, 它是指向安装目录下\bin\win32\matlab.exe的链接, 双击它即可来到MATLAB集成环境的基本窗口,通常称之为命令窗口。

MATLAB的退出与普通WIN32的程序一样, 值得一提的是它有一个自身专有的快捷键Ctrl+Q。

3. MATLAB界面简介图 2.1 MATLAB基本界面——命令窗口图2.2图2.3图2.4图2.5图2.6 指令历史图2.71)菜单栏菜单栏中包括File、Edit、View、Web、Window和Help六个菜单项。

这里着重介绍File、help项。

File项:数据输入/输出的接口, 包括10个子项, 这里重点介绍其中的5个子项:New:新建文件项。

有四个选择:M File(*.M,文本格式的MATLAB程序文件,可以直接通过文件名的方式在MATLAB环境下解释运行;Figure(图形); Model(仿真模型文件)和GUI(可视化界面文件)。

Open:打开所有MATLAB支持的文件格式,系统将自动识别并采用相应的程序对文件进行处理。

例如, 打开一个.m文件, 系统将自动打开M文件编辑器对它进行编辑。

Set Path...:设置工作路径。

可以打开路径设置(Set Path)对话框(图2),将用户自己建立的目录加入MATLAB的目录系统中, 以便所编制的文件能够在MATLAB环境中直接调用。

单击Add Folder...按钮可以将你的一个文件夹加入到系统路径中;Add with Subfolders...允许把一个文件夹包括其所有的子文件夹加入到系统路径中。

这两种操作均可以直观地在右侧的路径栏内看到结果。

图2.8 路径设置对话框选中一个加入的文件夹,你可以利用Move to Top(移至所有路径的最前面),Move Up(上移一个),Move Down(下移一个),Move to Bottom(移至所有路径的最后面)等四个按钮将改变文件在系统路径中的排列位置以利于对文件的搜索使用, 也可以利用Remove按钮将其删除。

对路径操作完毕后,按Save按钮予以保存;Help 项:Matlab Help:打开以html超文本形式存储的的帮助文件主页;Demos:打开matlab演示窗主页;About Matlab:Matlab注册图标、版本、制造商和用户信息;图2.9 Help选项图2.10 Help窗口2)命令行区进行通用操作,数值计算,编程和数据类型,输入输出,绘图,用户界面等命令,例如,命令:help函数名(*.m文件);edit编辑函数、文件对输入命令的解释MATLAB按以下顺序进行:① 检查它是否是工作空间中的变量, 是则显示变量内容。

② 检查它是否是嵌入函数,是则运行之。

③ 检查它是否是子函数。

④ 检查它是否是私有函数。

⑤ 检查它是否是位于MATLAB搜索路径范围内的函数文件或脚本文件。

请注意,如果有两个以上的方案与输入的命令相匹配, MATLAB将只执行第一个匹配。

2.3 Matlab基本语句一. 程序控制语句1. 循环语句MATLAB的循环语句包括for循环和while循环两种类型。

1)for循环语法格式:for 循环变量 = 起始值:步长:终止值循环体end起始值和终止值为一整形数,步长可以为整数或小数,省略步长时,默认步长为1。

执行for循环时,判定循环变量的值是否大于(步长为负时则判定是否小于)终止值,不大于(步长为负时则小于)则执行循环体,执行完毕后加上步长, 大于(步长为负时则小于)终止值后退出循环。

例1 给矩阵A、B赋值。

MATLAB 语句及运行结果如下:k=5;a=zeros(k, k) %矩阵赋零初值for m=1 : kfor n=1: ka(m,n)=1/(m+n-1);endendfor i=m : -1 : 1b(i)=i;end运行结果:a=1.0000 0.5000 0.3333 0.2500?0.20000.5000 0.3333 0.2500 0.2000 0.16670.3333 0.2500 0.2000 0.1667 0.14290.2500 0.2000 0.1667 0.1429 0.12500.2000 0.1667 0.1429 0.1250 0.1111b=1 2?3 4 52) while循环语法格式:while 表达式循环体end其执行方式为:若表达式为真(运算值非0),则执行循环体; 若表达式为假(运算结果为0),则退出循环体,执行end后的语句。

例2a=3;while aa=a-1end输出:a=2a=1a=02. 条件转移语句条件转移语句有if和switch两种。

1) if语句MATLAB中if语句的用法与其他高级语言相类似, 其基本语法格式有以下几种:格式一:if 逻辑表达式执行语句end格式二:if 逻辑表达式执行语句1else执行语句2end格式三:if 逻辑表达式1执行语句1else? if 逻辑表达式2执行语句2end2) switch语句switch语句的用法与其他高级语言相类似,其基本语法格式为:switch表达式(标量或字符串)case 值1语句1case 值2语句2…otherwise语句nend二. 绘图语句常用的MATLAB绘图语句有figure、plot、subplot、stem等, 图形修饰语句有title、axis、text等。

1.figurefigure有两种用法,只用一句figure命令,会创建一个新的图形窗口,并返回一个整数型的窗口编号。

figure(n)表示将第n号图形窗口作为当前的图形窗口, 并将其显示在所有窗口的最前面; 如果该图形窗口不存在, 则新建一个窗口,并赋以编号n。

2.plot线型绘图函数。

用法为plot(x,y,'s')。

参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表1所示。

表2.13.Stem绘制离散序列图,常用格式stem(y)和stem(x,y)分别和相应的plot函数的绘图规则相同,只是用stem命令绘制的是离散序列图。

4.subplotsubplot(m,n,i)图形显示时分割窗口命令,把一个图形窗口分为m行,n列,m×n 个小窗口,并指定第i个小窗口为当前窗口。

5.绘图修饰命令在绘制图形时,我们通常需要为图形添加各种注记以增加可读性。

在plot语句后使用title('标题')可以在图形上方添加标题, 使用xlabel('标记')或ylabel('标记')为X轴或Y轴添加说明,使用text(X值、Y值、'想加的标示')可以在图形中任意位置添加标示。

例3 画图基本语句如图1所示。

MATLAB 语句及运行结果如下:x=0:0.1*pi:2*pi; %定义x向量figure(1); %创建一个新的图形窗口,编号为1subplot(2,2,1); %将窗口划分为2行,2列,在第1个窗口中作图 plot(x,sin(x)); %画图title('正弦线'); %给图形加标题subplot(2,2,2); %在第2个窗口中作图plot(x,sin(x),'r'); %画一正弦波,红色xlabel('X'); %给x轴加说明ylabel('SIN(X)'); %给y轴加说明subplot(2,2,3); %在第3个窗口中作图plot(x,sin(x),'--'); %画一正弦波,破折线subplot(2,2,4); %在第4个窗口中作图plot(x,sin(x),'r+'); %画一正弦波,红色+线text(4,0,'注记');图12.4 Matlab基本数值运算一. MATLAB内部特殊变量和常数∙MATLAB内部有很多变量和常数,用以表达特殊含义。

常用的有:1.变量ans:指示当前未定义变量名的答案;2.常数eps:表示浮点相对精度,其值是从1.0到下一个最大浮点数之间的差值。

该变量值作为一些MATLAB函数计算的相对浮点精度,按IEEE标准,如:,近似为2.2204e-016;3.常数Inf:表示无穷大。

当输入或计算中有除以0时产生Inf;4.虚数单位i,j:表示复数虚部单位,相当于;5.NaN:表示不定型值,是由0/0运算产生的。

相关主题