数字信号处理实验教程
数字信号处理实验讲义上课【精选】

plot(n/32,abs(F_32),'o');
set(gca,'xtick',[0,0.25,0.5,0.75,1]);
set(gca,'ytick',[0,2,4,6,8]);
grid on ;
xlabel('Normalized frequency');
ylabel('Magnitude');
hold off
要求:
(1)确定DFT 计算的各参数;
(2)进行理论值与计算值比较,分析各信号频谱分析的计算精度;(3)详细列出利用DFT 分析离散信号谱线的步骤;(4)写出实验原理。
思考题:
(1)既然可以直接计算DTFT ,为什么利用DFT 分析离散信号谱?
(2)若信号持续时间无限,且无解析表达式,如何利用DFT 分析其频谱?(3)在利用DFT 分析离散信号频谱时,会出现哪些误差?如何克服或减弱?(4)在利用DFT 分析离散信号频谱时,如何选择窗函数?
(5)补零和增加信号长度都可以提高频谱分辨率,两者有何本质区别?
实验四
离散系统分析
实验目的:
1、学习系统响应的MATLAB 求解方法。
2、深刻理解离散系统的系统函数零极点对系统频响的影响,可以根据零极点知识设计简单的滤波器。
实验原理:
离散LTI 系统可用系统函数的分子分母多项式形式,零极点-增益形式或状态空间形式来描述。
(1)系统函数的分子分母多项式形式
4 11 201628。
数字信号处理实验讲义

数字信号处理实验指导书淮北煤炭师范学院物理与电子信息学院电子技术实验室目录实验一数字信号处理系统结构和编程 (1)实验二用FFT作谱分析 (4)实验三IIR滤波器的设计 (10)实验四FIR滤波器的设计 (17)附录一 (24)附录二 (26)附录三 (31)实验一数字信号处理系统结构和编程一、实验目的1.学习C语言的编程;2.掌握在CCS环境下的C程序设计方法;3.学会使用C和汇编语言混合编程;4.熟悉用C语言开发DSP程序的流程。
二、实验设备计算机,仿真器,THRS-1实验箱三、实验步骤与内容1.连接好DSP开发系统,实验箱上电,运行CCS;2.按流程图编写C程序,实现所要求的功能;3.例程序操作说明。
启动CCS 2.0,用Project/Open打开“DSP54X-01”目录下的“DSP54X01.pjt”工程文件,双击“DSP54X01.pjt”及“Source”可查看各源程序;并加载“DSP54X01.out”;单击“Run”运行程序;可以观察到D8指示灯闪烁;用View/Graph/Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;观察变量为x,长度为500,数值类型为16位有符号整型变量;如下图所示,图中下半部分为观察图形窗口的设置,上半部分为观察的图形。
四、程序框图五、实验说明CCS包含C编译器,支持标准C以及C和汇编混合编程。
C编译器包括三个功能模块:语法分析、代码优化和代码产生,如下图所示。
其中,语法分析(Parser)完成C语法检查和分析;代码优化(Optimizer)对程序进行优化,以便提高效率;代码产生(Code Generator)将C程序转换成C54x的汇编源程序。
本实验通过一些对数组及数据指针的基本操作,让实验者能够对使用C语言在CCS环境下编程有一个一目了然的认识。
并使用汇编语句,以体会两者综合运用时的优越性。
实验源程序如下:#include <math.h>#define pi 3.1415926#define N 500void main(){ int i,j;int *p;int x[500];for(i=0;i<N;i++)x[i]=0; for(i=0;i<N;i++){ x[i]=(int)100*sin(2*pi*i/250);}p=(int *)0x100;for(i=0;i<N;i++){ *p=x[i];p++ ;}for(;;){ asm(" rsbx xf");for(i=0;i<30000;i++)for(j=0;j<10;j++){ asm(" nop");asm(" nop");}asm(" ssbx xf");for(i=0;i<30000;i++)for(j=0;j<10;j++){asm(" nop");asm(" nop");}}}实验二用FFT作谱分析一、实验目的1.加深对DFT算法原理和基本性质的理解;2.熟悉FFT算法原理和FFT子程序的应用;3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
数字信号处理实验4

实验4 离散时间系统的频域分析一、实验目的(1)了解离散系统的零极点与系统因果性和稳定性的关系; (2)加深对离散系统的频率响应特性基本概念的理解; (3)熟悉MATLAB 中进行离散系统零极点分析的常用子函数; (4)掌握离散系统幅频响应和相频响应的求解方法。
二、知识点提示本章节的主要知识点是频率响应的概念、系统零极点对系统特性的影响;重点是频率响应的求解方法;难点是MATLAB 相关子函数的使用。
三、实验原理1.离散时间系统的零极点及零极点分布图设离散时间系统系统函数为NMzN a z a a z M b z b b z A z B z H ----++++++++==)1()2()1()1()2()1()()()(11 (4-1) MATLAB 提供了专门用于绘制离散时间系统零极点图的zplane 函数: ①zplane 函数 格式一:zplane(z, p)功能:绘制出列向量z 中的零点(以符号"○" 表示)和列向量p 中的极点(以符号"×"表示),同时画出参考单位圆,并在多阶零点和极点的右上角标出其阶数。
如果z 和p 为矩阵,则zplane 以不同的颜色分别绘出z 和p 各列中的零点和极点。
格式二:zplane(B, A)功能:绘制出系统函数H(z)的零极点图。
其中B 和A 为系统函数)(z H (4-1)式的分子和分母多项式系数向量。
zplane(B, A) 输入的是传递函数模型,函数首先调用root 函数以求出它们的零极点。
②roots 函数。
用于求多项式的根,调用格式:roots(C),其中C 为多项式的系数向量,降幂排列。
2.离散系统的频率特性MATLAB 提供了专门用于求离散系统频响特性的freqz 函数,调用格式如下: ①H = freqz(B,A,W)功能:计算由向量W (rad )指定的数字频率点上(通常指[0,π]范围的频率)离散系统)(z H 的频率响应)e (j ωH ,结果存于H 向量中。
数字信号处理实验指导书(需印刷)

实验一 常见离散信号的MATLAB 产生和图形显示1、实验目的:(1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。
(2)加深对常用离散时间信号的理解。
(3)掌握简单的绘图命令。
(4)掌握线性卷积的计算机编程方法。
2、实验原理:(1)单位抽样序列⎩⎨⎧=01)(n δ0≠=n n如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n k n(2)单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n(3)矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N n(4)正弦序列)sin()(ϕ+=wn A n x(5)复正弦序列jwnen x =)((6)指数序列na n x =)((7)线性时不变系统的响应为如下的卷积计算式:∑∞-∞=-=*=m m n h m x n h n x n y )()()()()(3、实验内容及步骤:(1)复习常用离散时间信号的有关内容。
(2)编制程序产生上述6种序列(长度可输入确定,对(4) (5) (6)中的参数可自行选择),并绘出其图形。
(3)已知系统的单位脉冲响应),(9.0)(n u n h n=输入信号)()(10n R n x =,试用卷积法求解系统的输出)(n y ,并绘出n n x ~)(、n n h ~)(及n n y ~)(图形。
4、实验用MATLAB 函数介绍(1)数字信号处理中常用到的绘图指令(只给出函数名,具体调用格式参看help)figure(); plot(); stem(); axis(); grid on; title(); xlabel(); ylabel(); text(); hold on; subplot()(2)离散时间信号产生可能涉及的函数zeros(); ones(); exp(); sin(); cos(); abs(); angle(); real(); imag(); (3)卷积计算可能涉及的函数conv(); length()注:实验过程中也可以使用自己编制的自定义函数,如impseq()、stepseq()等。
数字信号处理实验讲义(电子10)

实验一 离散时间信号与系统一、 实验目的1. 加深对常用离散信号的理解;2. 熟悉连续信号经理想采样前后的频谱变化关系,理解时域采样定理。
3. 掌握序列傅里叶变换的计算机实现方法,熟悉时域离散系统的时域特性。
二、 实验原理1 单位抽样序列1 0()0 0n n n δ==≠⎧⎨⎩2 单位阶跃序列1 0()0 0n u n n ≥⎧=⎨<⎩3 正弦序列()sin(2/)s x n A fn f πϕ=+4 复正弦序列()j n x n Ae ϖ=5 实指数序列 ()n x n Aa =6.采样是连续信号数字处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域特性和频域特性发生的变化以及信号信息不丢失的条件,而且可以加深对傅立业变换、Z 变换和序列傅立业变换之间关系式的理解。
采样原理详见课本。
三、 实验内容1、 产生10点的单位抽样序列δ(n);2、 以上序列右移3位的单位抽样序列δ(n-3); 3、 产生10点的任意序列:f(n)=8δ(n)+7δ(n-1)+6δ(n-2) +5δ(n-3)+ 4δ(n-4)+7δ(n-5);4、产生N =32点的单位阶跃序列;5、产生斜率为3,n0=4,点数为20点的斜坡序列g(n)=B(n-n0);6、产生幅度A=3,频率f =100,初始相位ϕ=1.2,点数为32的正弦序列; 7、产生幅度A=3,角频率ω=314,点数为32点的复正弦序列; 8、产生幅度A=3,a =0.7,点数为32点的实指数序列;9、分析采用不同频率时,对函数50()218.2sin(50)()t a x t e t u t ππ-=的频谱影响。
观测时间Tp=50微秒。
(a ):以1000s f Hz =,对其进行采样得到x1(n)。
(b ):以300s f Hz =,对其进行采样得到x2(n) (c ):以200s f Hz =,对其进行采样得到x3(n)四、 实验报告要求(1)独立完成以上实验内容;(2)采用标准实验报告纸书写实验报告;(3)实验报告内容包括:实验名称、实验目的、实验原理、所采用函数的基本说明、实验内容、程序清单(附主要语句说明或注释)、实验图表(打印或手绘)、结果分析(实验中的主要结论及个人实验心得)。
数字信号处理实验讲义

数字信号处理实验讲义实验一序列、频谱、卷积一、实验目的1.掌握序列的输入方法;2.熟悉不同序列的特征;3.了解确定性信号谱分析的方法;4.验证卷积的计算过程;二、实验要求1.利用matlab程序,生成几种常用的序列,如矩形序列,单位脉冲序列;2.绘制图形,观察序列特征;3.研究其频率特性,绘制图形,观察频率响应特征;4.利用matlab程序,验证卷积的过程;三、实验步骤1.矩形序列(1)生成长度为N的矩形序列,观察并记录生成的图形;n=1:50x=sign(sign(10-n)+1);close all;subplot(3,1,1);stem(x);title('单位矩形信号序列');(2)研究其频率特性,()∑∞-∞=-=n nj Nj en R e H ωω)(,分别研究其幅频特性和相频特性,观察并记录生成的图形;k=-25:25;X=x*(exp(-j*pi/25)).^(n'*k); magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('单位矩形信号的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('单位矩形信号的相位谱')2.单位脉冲序列(1)生成单位脉冲序列,观察并记录生成的图形;n=1:50; %定义序列的长度是50x=zeros(1,50); %注意:MATLAB中数组下标从1开始x(1)=1;close all;subplot(3,1,1);stem(x);title('单位冲击信号序列');(2) 研究其频率特性,()∑∞-∞=-=n nj j en x e H ωω)(,分别研究其幅频特性和相频特性,观察并记录生成的图形;k=-25:25;X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱')3.卷积过程∑∞-∞=-= =mmnhmxnhnxny)()()(*)()(,n=1:50; %定义序列的长度是50hb=zeros(1,50); %注意:MATLAB中数组下标从1开始hb(1)=1;hb(2)=2.5;hb(3)=2.5;hb(4)=1;close all;subplot(3,1,1);stem(hb);title('系统hb[n]');m=1:50; %定义序列的长度是50A=444.128; %设置信号有关的参数a=50*sqrt(2.0)*pi;T=0.001; %采样率w0=50*sqrt(2.0)*pi;x=A*exp(-a*m*T).*sin(w0*m*T);subplot(3,1,2);stem(x);title('输入信号x[n]');y=conv(x,hb);subplot(3,1,3);stem(y);title('输出信号y[n]');四、实验报告要求1.写出生成对应序列的matlab程序,并分析;2.记录生成的图形;3.描述对应的序列和频率特性的特征;4.验证卷积计算结果;五、思考:1.如何生成实指数序列?写出对应的matlab程序a1=2n=1:50x1=(a1.^n)subplot(1,1,1)stem(x1);title('实指数序列')2.编写程序验证卷积定律。
数字信号处理实验教案五篇范文

数字信号处理实验教案五篇范文第一篇:数字信号处理实验教案数字信号处理实验教案信息工程学院-通信工程教研室数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼同学们的独立解决问题的能力。
本讲义在第三版的基础上编写了五个实验,前2个实验属基础性的验证性实验,第3、4、5个实验属基本应用综合性实验。
实验一离散时间信号的MATLAB实现实验二线性卷积与循环卷积的原理及应用实验三频率采样定理实验四离散系统的因果性和稳定性及频率响应特性实验五基于MATLAB的快速傅里叶变换根据教学进度,理论课结束后进行相关实验。
实验一时域离散信号的产生一实验目的(1)了解常用的时域离散信号及其特点。
(2)掌握MATLAB产生常用时域离散信号的方法。
二实验内容(1)编写程序,产生下列离散序列:A.f(n)=δ(n)(-3B.f(n)=e(0.1+j1.6π)n(0(2)一个连续的周期性三角波信号频率为50Hz,信号幅度在0~+2V之间,在窗口上显示2个周期信号波形,对信号的一个周期进行16点采样来获取离散信号。
试显示原连续信号和采样获得的离散信号波形。
(3)一个连续的周期性方波信号频率为200Hz,信号幅度在-1~+1V 之间,在窗口上显示2个周期信号波形,用Fs=4kHz的频率对连续信号进行采样,试显示原连续信号和采样获得的离散信号波形。
三实验步骤(1)在matlab命令窗口中逐行输入下列语句>> n1=-3;n2=4;n0=0;%在起点n1、终点n2的范围内,于n0处产生冲激 >> n=n1:n2;%生成离散信号的时间序列 >> x=[n==n0];%生成离散信号x(n)>> stem(n,x,'filled');%绘制杆状图,且圆心处用实心圆表示>> title('单位脉冲序列');>> xlabel('时间(n)');ylabel('幅度x(n)');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=δ(n),(-3 >> n1=16;a=0.1;w=1.6*pi;>> n=0:n1;>> x=exp((a+j*w)*n);>>subplot(2,1,1),stem(n,real(x));%在指定位置描绘图像>> title('复指数序列的实部');>> subplot(2,1,2),stem(n,imag(x));>> title('复指数序列的虚部');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=e(0.1+j1.6π)n,(0>> f=50;Um=1;nt=2;%输入信号频率、振幅、显示周期 >> N=16;T=1/f;%N为信号一个采样周期的采样点数,T为信号周期 >> dt=T/N;%采样时间间隔 >> n=0:nt*N-1;%建立离散时间的时间序列 >> tn=n*dt;%确定时间序列样点在时间轴上的位置>> f=Um*sawtooth(2*f*pi*tn)+1;>> subplot(2,1,1),stem(tn,f);%显示经采样的信号>> title('离散信号');>> subplot(2,1,2),plot(tn,f);%显示原连续信号 >> title('连续信号');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,显示了原连续信号和采样获得的离散信号波形(4)在matlab命令窗口中逐行输入下列语句>> f=200;Um=1;nt=2;%输入信号频率、振幅、显示周期 >> Fs=4000;N=Fs/f;T=1/f;%输入采样频率、求采样点数N、T为信号周期 >> dt=T/N;%采样时间间隔 >> n=0:nt*N-1;%建立离散时间的时间序列 >> tn=n*dt;%确定时间序列样点在时间轴上的位置>> f=Um*sin(2*f*pi*tn);>> subplot(2,1,2),plot(tn,f);%显示原连续信号 >> title('连续信号');>> subplot(2,1,1),stem(tn,f);%显示经采样的信号 >> title('离散信号');在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,显示了原连续信号和采样获得的离散信号波形四思考题(1)如何在matlab下生产f(n)=3sin(nπ/4)(0(2)改变实验步骤中最后两个实验的频率参数,分别重新生成相关的信号?实验二线性卷积与循环卷积的原理及应用一、实验目的(1)掌握两种卷积的原理和两者的异同。
数字信号处理实验指导书教程

实验一Max+plusⅡ图形输入的设计过程1.Max+plusⅡ的设计过程Max+plusⅡ的设计过程流程图如下(1)设计输入用户可使用Max+plusⅡ的图形编辑器和文本编辑器实现图形的输入,也可输入网表文件。
(2)项目编译完成对设计的处理,Max+plusⅡ提供了一个完全集成的编译器。
MAX+PLUSⅡ编译器的编译过程如下图用户可使用Max+plusⅡ的图形编辑器和文本编辑器实现图形的输入,也可输入网表文件。
用户可使用Max+plusⅡ的图形编辑器和文本编辑器实现图形的输入,也可输入网表文件。
图1 MAX+PLUSⅡ编译器的编译过程2.图形输入的设计过程将以图形输入法为例讲述设计的整个过程,本例中,以使用74161设计一个模为12的计数器,该设计项目仅含一个设计文件,使用图形输入。
(1)建立图形输入文件在file 菜单下选择“NEW.. ” 出现图2新建文件类型对话框图2新建文件类型对话框在图2中选择“Graphic Editor file ”后,即了开始建立图形输入文件如图3所示。
图3图形编辑器窗口(2).调入元件:74161在图形编辑区双击鼠标左键可打开“Enter symbol ”对话框如图4。
在该地画框你可选择需要输入的元件/逻辑符号。
图4元件输入对话框图5选中74161图6 调入74161(3)保存文件从“File ”菜单下选择“save ”,出现文件保存对话框,选择“OK”,使用默认的文件名存盘。
此处默认的文件名为“cntm12.gdf”。
(4)调入一个三输入与非门:采用同步置零法,使74161在“1011”处置零来实现模为12的计数器。
故需调用一个三输入与非门,三输入与非门位于库“prim”中,名称为“nand3”(n 代表输出反向,and代表与门,3代表输入的个数;所以“nand3”为一个三输入与非们,同样“or6”代表一个6输入或门:xor代表异或门)按照步骤2调入“nand”和代表低电平的“gnd”(位于库prim中),也可在图形编辑区双击鼠标左键后,在符号输入对话框中直接输入“gnd”,按“OK”即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章绪论 (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运算产生的。