MATLAB教程-数字信号处理实验
Matlab数字信号处理——综合实验报告
实验题目:用Matlab语言编程实现学生成绩管理系统一、实验目的1.掌握建立和执行M文件的方法,学会M函数的编写及其调用,掌握多种函数类型;2.学习Matlab中的关系运算和逻辑运算,掌握它们的表达形式和用法;3.掌握Matlab中的选择结构和循环结构;4.学习使用帮助文档查找更多的Matlab功能;5.掌握Matlab的基本绘图命令,学习运用Matlab绘制一维、二维、三维图形的方法。
二、实验要求1.使用函数(多个函数M文件)进行分析和设计;2.要使用到以下函数类型:主函数、子函数、私有函数。
三、实验内容功能内容:1.学生信息为:学号、姓名、三门课成绩(英语、数学、物理);2.从键盘输入学生成绩,建立信息库;3.从文件读入学生信息;4.显示信息库中的所有学生的信息;5.将学生成绩信息库保存为文件;6.根据学号查询某一个学生的成绩统计信息:三门课成绩、总分、平均分;7.根据学号将某一个学生的信息从信息库删除;8.新增一个学生的信息;9.按总分成绩从高到低排序输出学生信息;10.图形输出所有学生成绩统计信息(饼图pie、柱状图bar)。
四、实验设计及分析1 主函数的设计及分析主函数主要用于显示学生管理系统的主界面,以及通过对其他几个私有函数的调用来实现相应的功能。
主函数名为zonghe(),首先利用disp()屏幕输出函数来提示用户如何使用该管理系统。
然后通过input()输入函数输入字符,通过判断输入的字符与哪个私有函数对应的字符匹配来调用相应的私有函数实现相应的功能。
其中将条件语句放入while循环中,使系统能循环运行直到用户输入‘H‘才跳出循环。
主函数zonghe()的源代码:function zonghe()disp('Welcome to the students'' information library!');disp('Input A to input students'' information');disp('Input B to display all students'' information');disp('Input C to search a stuedent''s information');disp('Input D to delete a stuedent''s information');disp('Input E to add a new stuedent''s information');disp('Input F to display stuedents'' information from high to low of total score');disp('Input G to graphical display all stuedents'' information'); disp('Input H to exit');x=input('Please input the FUNCTION NUMBER:','s');while x~='H'if x=='A'disp('Input students'' information.');ztest();elseif x=='B'disp('Display all students'' information.');displaytest();elseif x=='C'disp('Search a stuedent''s information.');search();elseif x=='D'disp('Delete a stuedent''s information.');shanchu();elseif x=='E'disp('Add a new stuedent''s information.');add();elseif x=='F'disp('Display stuedents'' information from high to low of total score.');paixu();elseif x=='G'disp('Graphical display all stuedents'' information.');tuxing();elseif x=='H'disp('Thank you for using the students'' information library!');break;elsedisp('Invalid function number. Program is terminated!');endx=input('\nPlease input the FUNCTION NUMBER:','s');endend2 七个私有函数的设计与分析2.1 function ztest()的设计与分析ztest()函数实现从键盘输入学生成绩建立信息库的功能。
数字信号处理MATLAB实验
(8) 用 FFT 分别计算 xa (n)( p 8, q 2) 和 xb(n) (a=0.1,f=0.0625)的自 相关函数。
三、思考题
(1)实验中的信号序列 xc(n)和 xd(n),在单位圆上的 z 变换频谱
和 一些,为什么?
会相同吗?如果不同,说明哪一个低频分量更多
(2)对一个有限长序列进行 DFT 等价于将该序列周期延拓后进行
五、与本实验有关的 MATLAB 函数 x=sin(2*pi*f/fs*n);生成频率为f,采样频率为fs的正弦信号,式
中,n=[0 1 2 … N]。 sum(X);对于向量X,计算X各元素的和。对于矩阵X,计算X
各列元素之和组成的行向量。 plot(t,y);画出以向量t为坐标的向量y(行或列)的曲线。向
出该信号,并讨论信号的混叠情况。
(3) 令
,其中 f/fs=1/16,即每个周期有 16 个
点。试利用 MATLAB 编程实现:
○1 作 M=4 倍的抽取,使每个周期变成 4 点。
○2 作 L=3 倍的插值,使每个周期变成 48 点。
(4)输入信号 x(n)为归一化频率分别为 f1=0.04,f2=0.3 的正 弦信号相加而成,N=50,插因子为 5,抽取因子为 3,给出 按有理因子 5/3 做采样率变换的输入输出波形。
(1) 简述实验目的及原理。 (2) 按实验步骤附上试验程序。 (3) 按实验容附上有关离散信号的波形或关键样本,对音频信号
给出测听的结果。 (4) 简要回答思考题。 五、 与本实验相关的 MATLAB 函数 y=decimate(x,M);对信号 x 按整数 M 作抽取,抽取前后作抗混叠低 通滤波,结果放在 y 中。 y=interp(x,L); 对信号 x 按整数 L 插零,然后作抗镜像低通滤波, 结果放在 y 中。 y=resample(x,L,M);对信号 x 按有理因子 L/M 作采样率转换,结果 放在 y 中。
数字信号处理MATLAB实验2
1. 假定一因果系统为y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.2403x(n-2)用MA TLAB 程序仿真该系统,输入三个不同的输入序列:)1.02c o s()(1n n x ⋅=π,)4.02cos()(2n n x ⋅=π,)(3)(221n x n x x -= 计算并并显示相应的输出)(1n y , )(2n y 和)(n y 。
clf;n=0:40;a=2;b=-3;x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;num=[2.2403, 2.4908,2.2403];den=[1 -0.4 0.75];ic=[0 0]; %设置零初始条件y1=filter(num,den,x1,ic); %计算输入为x1(n)时的输出y1(n)y2=filter(num,den,x2,ic); %计算输入为x2(n)时的输出y2(n)y=filter(num,den,x,ic); %计算输入为x (n)时的输出y(n)yt= a*y1+b*y2;%画出输出信号subplot(2,1,1)stem(n,y);ylabel('振幅');title('加权输入a*x1+b*x2的输出');subplot(2,1,2)stem(n,yt);ylabel('振幅')'title('加权输出a*y1+b*y2');0510152025303540-40-2020振幅加权输入a*x1+b*x2的输出0510152025303540-40-2020振幅加权输出a*y1+b*y22. 用MATLAB 程序仿真步骤1给出的系统,对两个不同的输入序列x(n)和x(n-10),计算并显示相应的输出序列y3(n)和y4(n)。
clf;n=0:40;n1=0:50a=2;b=-3;x1= cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=2*x1-3*x2;x3=[zeros(1,10) x];num=[2.2403, 2.4908,2.2403];den=[1 -0.4 0.75];ic=[0 0]; %设置零初始条件y1=filter(num,den,x,ic); %计算输入为x1(n)时的输出y1(n)y2=filter(num,den,x3,ic); %计算输入为x2(n)时的输出y2(n)subplot(2,1,1)stem(n,y1);ylabel('振幅');title('时移前');subplot(2,1,2)stem(n1,y2);ylabel('振幅');title('时移后');0510152025303540-30-20-1001020振幅时移前05101520253035404550-40-20020振幅时移后3.用MA TLAB 程序仿真计算下列两个有限长序列的卷积和并显示图形。
数字信号处理matlab实验
目录实验一数字信号的产生和频谱分析实验 (2)一.实验目的 (2)二.实验要求 (2)三.实验原理 (2)四.实验步骤 (3)五.流程图 (3)七.实验结果分析 (6)实验二FIR数字滤波器设计 (7)一.试验目的 (7)二.实验要求 (7)三.实验原理和步骤 (7)四.实验流程图 (7)五.实验波形 (8)六.实验结果分析 (11)实验三IIR数字滤波器设计 (11)一.试验目的 (11)二.实验要求 (11)三.实验原理 (12)四.实验流程图 (12)五.实验波形 (13)六.实验结果分析 (14)实验四模拟调制解调 (14)一.试验目的 (14)二.实验要求 (14)三.实验原理 (15)四.实验流程图 (15)五.实验波形 (16)六.实验结果分析 (17)实验五数字调制解调 (17)一.试验目的 (17)二.实验要求 (17)三.实验原理 (18)四.实验流程图 (18)五.实验波形 (18)六.实验结果分析 (20)实验一数字信号的产生和频谱分析实验一.实验目的1.通过仿真掌握采样定理2.掌握利用FFT进行信号谱分析的原理二.实验要求1. 按照采样定理生成CW信号和LFM信号;2. 画出信号时域波形图和频谱图;3. 生成高斯分布的白噪声;4. 生成一定信噪比的带噪信号,并对其进行谱分析。
三.实验原理1.采样定理:在模拟信号数字化时,需要对模拟信号进行采样,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,否则会发生频谱混叠,造成最后解调出来的信号失真.一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。
2.快速傅立叶变换(FFT)算法长度为N的序列的离散傅立叶变换为:N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。
Matlab数字信号处理实验报告
Matlab数字信号处理实验报告本次实验使用MATLAB进行数字信号处理操作,目的是熟悉MATLAB中数字信号处理的相关工具箱,并进一步理解数字信号处理的基本概念和算法。
一、实验内容1.信号的生成与显示2.时域分析和频域分析3.滤波器设计4.数字滤波器性能分析二、实验步骤在MATLAB中,使用sawtooth函数生成一个锯齿波信号,并使用plot函数进行时域波形的显示。
代码如下:f = 1000;fs = 40000;t = 0:1/fs:0.01;y = sawtooth(2*pi*f*t);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');时域分析包括波形的观察和参数分析,如幅值、均值、方差等。
频域分析则是对信号进行傅里叶变换,得到其频谱图,包括频率分布和强度分布。
%时域分析amp = max(y)-min(y);mean_y = mean(y);var_y = var(y);设计一个低通滤波器,将高于1kHz的频率成分滤掉。
对滤波后的信号进行时域分析和频域分析,比较滤波前后信号的特征参数和频谱特征,并绘制原始信号、滤波后信号及其频谱图。
subplot(2,2,1);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');subplot(2,2,2);plot(t,y_filt);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave After Filter');subplot(2,2,3:4);plot(f2,fft_y_filt,'r',f,fft_y,'g');xlabel('Frequency (Hz)');ylabel('Amplitude');title('Sawtooth Wave Spectrum Comparison');legend('After Filter','Before Filter');三、实验结果与分析通过生成并显示一段锯齿波信号,并对其进行时域和频域分析,可以得到该信号的关键信息,如幅值、均值、方差和频率分布特性。
matlab数字信号处理实验
以 代替上式中的Z,就可以得到序列x(n)的傅里叶变换
X( )= (1-8)
式(1—6)和式(1—8)具有如下关系:
=X( )︱ (1-9)
由式(1—9)可知,在分析一个连续时间信号的频谱时,可以通过取样将有关的计算转换为序列傅里叶变换的计算。
(二)有限长序列分析
一般来说,在计算机上不可能,也不必要处理连续的曲线X(e ),通常,我们只观察、分析X(e )在某些频率点上的值。对于长度为N的有限长序列
(1-5)
作为拉氏变换的一种特例,信号理想采样的傅里叶变换
(1-6)
由式(1—5)和式(1—6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率,根据Shannon取样定理,如果原信号是带限信号,且采样频率高于原信号的最高频率分量2倍,则采样以后不会发生频谱混迭现象。
在计算机处理时,不采用式(1—6)计算信号的频谱,而是利用序列的傅里叶变换计算信号的频谱,可以得到序列x(n)的Z变换为:
信号产生子程序:
1、理想采样信号序列xa(n)
n=0:50;
A=444.128;
a=50*sqrt(2.0)*pi;
T=1/1000;
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T);
close all
subplot(3,1,1);
stem(x);
title('通信学号理想采样信号序列xa(n)');
贴出最后得到的图形
四:思考:系统最高频率是多少?第一个实验中有无频谱混迭,为什么?第二个实验中有无频谱混迭,为什么?
X=x*(exp(-j*pi/12.5)).^(n'*k);
matlab 基础及数字信号处理实验
MATLAB基础一、MATLAB的工作环境1.命令窗口:是用户和MATLAB系统交互的主要窗口。
在该窗口中,用户可以运行函数,执行MATLAB 的基本操作命令以及对MATLAB系统的参数设置等操作。
在命令提示符>>后输入命令如:t=[1,2,3;4,5,6;7,8,9];完成对t的赋值2.帮助的使用:直接在命令行输入help在菜单栏选择help—matlab help直接按F13.图形窗(Figure):用于显示绘出的图形。
通常只要执行了任意一种绘图命令,图形窗都会自动产生。
绘图都是在这个图形窗中进行。
如果要在建一个图形窗,则可在命令窗中输入figure命令,MATALB 就回新建一个图形窗口,并自动给它排出序号。
4.文本编辑窗:其作用是用来创建、编辑和调试MATLAB的相关文件(或称程序,即.M文件),它与一般的编辑调试器有相似的功能。
通常,MA TLAB命令编辑有行命令方式和文件两种。
行命令方式,即在命令窗口中一行一行的输入命令,计算机对每一行命令做出反应。
这种方式,只能用于编辑简单的程序,当程序比较复杂的时候,把程序写成一个由多行语句组成的文件(.M文件),让MATLAB来执行这个程序中的全部语句,MA TLAB文本编辑器的功能就是完成编写,修改和调试这种程序。
其进入方式:1)file—new/open—M-file2)直接在命令窗口输入:edit/edit 文件名二、MATLAB的基本语法1.变量及其赋值1)赋值要求在MATLAB中,变量和常量的标识符最长允许19个字符。
MA TLAB内部只有一种数据格式,就是双精度类型,对应于64位二进制。
赋值就是把数赋予代表常量或变量的标识符。
基本格式为:变量=表达式(或数)在MA TLAB中,变量都代表矩阵。
列矢量可被当做只有一行的矩阵,行矢量也可被当做只有一个行的矩阵,标量(或常数)应该做是1×1的矩阵。
输入矩阵时,应遵循一下规则:整个矩阵的值都应放在方括号中;同一行的个元素以逗号或空格分开;不同行的元素以分号隔开。
第一次实验 MATLAB的数字信号处理基础
第一次实验MAT1AB的数字信号处理基础一、实验目的1.掌握在MAT1AB中创建和编写脚本程序的步骤,熟悉在MAT1AB中进行基本的矩阵运算2.了解数字信号在计算机系统中的表示和数字信号处理的基本过程3.掌握用MAT1AB产生数字信号的方法二、实验内容1.熟悉在MAT1AB下创建脚本文件编制程序的方法在MAT1AB中,脚本文件时由一系列的命令构成并储存为.m格式的文件。
通常使用m文件来编写一个完整的仿真程序。
脚本文件的创建,可采用以下两种方式:(1)在菜单栏中选择Fi1e下拉框中New选项,可以新建多种MAT1AB文件,我们编辑仿真程序,通常选择第一项BIankM-Fi1e,即新建一个空的MAT1AB文件。
具体参见下图。
图1(2)采用菜单栏中新建按钮即可新建一个空的MAT1AB文件。
Jk MAT1AB7.9.0(R2009b)Fi1eEditDebugParaJ一一J2.MAT1AB中的数据表示MAT1AB中的基本数据单元为数组矩阵,MAT1AB中的数学运算都是基于矩阵的。
掌握了矩阵运算,就掌握了MAT1AB编程的关键。
MAT1AB中使用到的变量无需事先声明其数据类型,大小等,MAT1AB会自动根据赋值情况进行解析。
比如,可用通过以下命令产生一个矩阵:3.常用序列的MAT1AB实现(1)单位抽样序列。
在MAT1AB中可以用以下函数来实现单位抽样序列function[x,n]=impseq(nθ,n1z n2)%产生x(n)=de1ta(n-n0);n1<=n0<=n2if((nθ<n1)∣(nθ>∩2)∣(n1>n2))error('参数必须满足n1<=nθ<=n2,)endn=[n1:n2];x=[zeros(1,(nO-n1))4∕Zθros(1z(n2-nO))];stem(x);图3(2)单位阶跃序列。
在MAT1AB中可用〃>=0来实现〃(〃一%)。
数字信号处理相关MATLAB实验内容--第1章
实验1 离散时间信号的时域分析一、实验目的(1)了解MATLAB 语言的主要特点及作用;(2)熟悉MATLAB 主界面,初步掌握MATLAB 命令窗和编辑窗的操作方法;(3)学习简单的数组赋值、数组运算、绘图的程序编写;(4)了解常用时域离散信号及其特点;(5)掌握MATLAB 产生常用时域离散信号的方法。
二、知识点提示本章节的主要知识点是利用MATLAB 产生数字信号处理的几种常用典型序列、数字序列的基本运算;重点是单位脉冲、单位阶跃、正(余)弦信号的产生;难点是MATLAB 关系运算符“==、>=”的使用。
三、实验内容1. 在MATLAB 中利用逻辑关系式0==n 来实现()0n n -δ序列,显示范围21n n n ≤≤。
(函数命名为impseq(n0,n1,n2))并利用该函数实现序列:()()()632-+-=n n n y δδ;103≤≤-nn 0212. 在MATLAB 中利用逻辑关系式0>=n 来实现()0n n u -序列,显示范围21n n n ≤≤。
(函数命名为stepseq(n0,n1,n2))并利用该函数实现序列:()()()20522≤≤--++=n n u n u n y3. 在MATLAB 中利用数组运算符“.^”来实现一个实指数序列。
如: ()()5003.0≤≤=n n x n4. 在MATLAB 中用函数sin 或cos 产生正余弦序列,如:()()2003.0cos 553.0sin 11≤≤+⎪⎭⎫ ⎝⎛+=n n n n x πππ5. 已知()n n x 102cos 3π=,试显示()()()3,3,+-n x n x n x 在200≤≤n 区间的波形。
6. 参加运算的两个序列维数不同,已知()()6421≤≤-+=n n u n x ,()()8542≤≤--=n n u n x ,求()()()n x n x n x 21+=。
数字信号处理实验指导书--Matlab版
下:
由于 e jω 是频率的周期函数,所以系统的频率特性也是频率的周期函数,且周期为 2π ,因 此研究系统频率特性只要在[ −π ,π ]范围内就可以了。
三、实验内容及步骤
1、在实验上机前,认真复习离散卷积和差分方程的有关内容,仔细阅读本实验原理和 步骤。准备实验所需数据。
2、离散卷积计算。 1)在主界面下进入“实验五” 的“离散卷积”子系统,选定几组不同的 x(n)、h(n) 代入离散卷积程序计算 y(n),记录实验结果。 3、差分方程迭代解法 1)¨在主界面下进入“实验五” 的“差分方程”子系统,本实验要求首先确定系统方 程系数个数和需要输出 y(n)的样点个数,然后依次输入 a[0]~a[N]、b[0]~b[N]这些系数的 数值和 y(n)的初始值 y(0)~y(N-1),h(n)的初始值 h(0)~h(N-1),运行后即得冲激响应 h(n) 和阶跃信号激励下的响应 y(n)的结果和图形显示。 2)自己选择一个离散时间系统,写出其差分方程,设好初始条件进行实验并记录实验 结果。 4、在主界面下进入“实验六”即“离散系统 Z 域分析”,本实验中给出了计算系统
明了系统结构、参数、特性三者之间的关系,即同一结构,参数不同其特性也不同。 例如,下图所示离散系统:
数学模型由下列差分方程描述: y(n)=ay(n-1)+x(n)
系统函数 系统频率特性
H (z) = z , | z |> a z−a
幅度特性为
H (e jω )
=
e jω e jω − a
数字信号处理,matlab实验报告
Matlab实验报告实验一:1.实验Matlab代码:N=25;Q=0.9+0.3*j;WN=exp(-2*j*pi/N);x=zeros(25,1);format long; %长整型科学计数for k0=1:25x(k0,1)=Q^(k0-1);end;for k1=1:25;X1(k1,1)=(1-Q^N)/(1-Q*WN^(k1-1));end;X1;X2=fft(x,32);subplot(3,1,1);stem(abs(X1),'b.');axis([0,35,0,15]);title('N=25,formular');xlabel('n'); subplot(3,1,2);stem(abs(X2),'g.');axis([0,35,0,15]);title('N=32, FFT');xlabel('n');for(a=1:25)X3(a)=X1(a)-X2(a)end;subplot(3,1,3);stem(abs(X3),'r.');title('difference');xlabel('n');实验结果如图:实验结论:可以看出基2时间抽选的FFT算法与利用公式法所得到的DFT结果稍有偏差,但不大,在工程上可以使用计算机利用FFT处理数据。
2.实验Matlab代码:N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');实验结果如图:实验结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
《数字信号处理》MATLAB编程实验报告
《计算机程序设计基础》实验报告
6
《数字信号处理》实验报告
实验项目 实验类别 基础性 MATLAB 编程语言环境使用 实验学时 4
实 验 目 的 及 要 求
(1) 正确进入 MATLAB 工作环境并熟悉其基本结构 (2) 熟悉其基本操作命令,包括变量的设置、help 命令的使用、结果的 保存与调用等 (3) 编写 M 文件并在环境中运行 (4) 信号与系统工具包使用
正弦信号程序代码
n=0:0.001:100; y=2*sin(0.1*n+pi/8); plot(n,y), grid on
《计算机程序设计基础》实验报告 3
计算机科学与工程学院 axis([0,100,-3,3])
正弦信号 x1(n)=2 sin(0.1n+pi/8)的图像为
复指数信号程序源代码 clear,t0=0;tf=5;dt=0.05;t1=1; t=t0:dt:tf; st=length(t); alpha=-0.5; w=10; x=exp((alpha+j*w)*t); subplot(1,2,1),plot(t,real(x)),grid on; subplot(1,2,2),plot(t,imag(x)),grid on;
复指数信号
x2 (n) Ae(机程序设计基础》实验报告
4
计算机科学与工程学院
思考题
1.说明点乘(.*)运算和乘法运算(*) 有何不同 答:每一个符号变量都被认为是一个元素,不论它的表达式多么复杂。因此如果你仅从符号
的视角出发,那所有的乘法都是点乘!就相当于两个数相乘一样,没有点乘还是差乘的分别。 但是如果一个矩阵是由符号变量组成的。 那么点乘和差乘就有分别了。 数值运算和符号运算都 是一样的,都要考虑点乘还是差乘
数字信号处理MATLAB实验报告
[H,w]=freqz(B,A,N)
其中,B与A分别表示 的分子和分母多项式的系数向量;N为正整数,默认值为512;返回值w包含 范围内的N个频率等分点;返回值H则是离散时间系统频率响应 在 范围内N个频率处的值。另一种形式为
[H,w]=freqz(B,A,N,’whole’)
与第一种方式不同之处在于角频率的范围由 扩展到 。
上机练习:
试用MATLAB的residuez函数,求出 的部分分式展开和。
b=[2 16 44 56 32];
a=[3 3 -15 18 -12];
[R,P,K]=residuez(b,a)
R =
+
zplane(B,A)
其中,B与A分别表示 的分子和分母多项式的系数向量。它的作用是在Z平面上画出单位圆、零点与极点。
与拉氏变换在连续系统中的作用类似,在离散系统中,z变换建立了时域函数 与z域函数 之间的对应关系。因此,z变换的函数 从形式可以反映 的部分内在性质。我们仍旧通过讨论 的一阶极点情况,来说明系统函数的零极点分布与系统时域特性的关系。
[R,P,K]=residuez(B,A)
其中,B,A分别表示X(z)的分子与分母多项式的系数向量;R为部分分式的系数向量;P为极点向量;K为多项式的系数。若X(z)为有理真分式,则K为零。
离散时间系统的系统函数定义为系统零状态响应的z变换与激励的z变换之比,即
(4-4)
如果系统函数 的有理函数表示式为
x=iztrans(z)
上式中的x和Z分别为时域表达式和z域表达式的符号表示,可通过sym函数来定义。
如果信号的z域表示式 是有理函数,进行z反变换的另一个方法是对 进行部分分式展开,然后求各简单分式的z反变换。设 的有理分式表示为
matlab-数字信号处理
目录实验一学习使用MATLAB.................................................... 错误!未定义书签。
一. 实验目的 ............................................................ 错误!未定义书签。
二. 实验内容和要求 (1)三. 实验主要仪器设备和材料 (1)四. 实验方法、步骤及结果测试 (1)五. 实验报告要求 (18)六. 思考题 (18)实验二用FFT做谱分析 (19)一. 实验目的 (19)二. 实验内容和要求 (19)三. 实验主要仪器设备和材料 (20)四. 实验方法、步骤及结果测试 (20)五. 实验报告要求 (40)六. 思考题 (40)实验三用双线性变换法设计IIR数字滤波器 (41)一. 实验目的 (41)二. 实验内容和要求 (41)三. 实验主要仪器设备和材料 (41)四. 实验方法、步骤及结果测试 (41)五. 实验报告要求 (46)六. 思考题 (46)实验四用窗函数法设计FIR数字滤波器 (48)一. 实验目的 (48)二. 实验内容和要求 (48)三. 实验主要仪器设备和材料 (49)四. 实验方法、步骤及结果测试 (49)五. 实验报告要求 (59)六. 思考题 (59)附录一MA TLAB信号处理工具箱函数 (60)一. 表附1-1 波形产生 (60)二. 表附1-2 滤波器分析和实现 (60)三. 表附1-3 线性系统变换 (61)四. 表附1-4 IIR滤波器设计 (62)五. 表附1-5 IIR滤波器阶的选择 (62)六. 表附1-6 FIR滤波器设计 (63)七. 表附1-7 变换 (63)八. 表附1-8 统计信号处理 (64)九. 表附1-9 窗函数 (64)十. 表附1-10 参数化建模 (65)十一. 表附1-11 特殊操作 (65)十二. 表附1-12 模拟原形滤波器设计 (66)十三. 表附1-13 频率变换 (66)十四. 表附1-14 滤波器离散化 (66)十五. 表附1-15 其他 (67)附录二实验中用到的一些子程序 (68)实验内容和要求(1)了解MATLAB 的基本程序设计原则,常量和变量的用法(2)掌握MATLAB中对矩阵进行输入、运算和比较的方法(3)了解循环语句的类型,并掌握循环语句的用法(4)熟悉M文件的作用,并掌握二维图形的绘制一.实验主要仪器设备和材料计算机,MATLAB6.5或以上版本二.实验方法、步骤及结果测试关于MATLAB它是由美国的Math Works 公司推出的一个科技应用软件,它的名字是由MATRIX(矩阵)和LABORATORY(实验室)的前三个字母组合而成MATLAB是一种高性能的、用于工程计算的编程软件,它把科学计算、结果的可视化和编程都集中在一个使用方便的环境中优势在于能很容易求解复数数值问题,速度快且容易扩展创建新的命令和函数主要组成部分:(1)编程语言:以矩阵和数组为基本单位的编程语言(2)工作环境:包括一系列的应用工具,提供编程和调试程序的环境(3)图形处理:包括绘制二维、三维图形和创建图形用户界面(GUI)等(4)数学库函数:包含大量数学函数,也包括复杂功能(5)应用程序接口:提供接口程序,可使MATLAB与其他语言程序进行交互典型特点:(1)语言简洁紧凑,运算符十分丰富,使用方便灵活(2)既具有结构化的控制语言,又能面向对象编程(3)语法限制不严格,程序设计自由度大,可移植性好(4)具有强大的图形功能(5)包含功能强劲的工具箱(6)最重要、最受欢迎的特点是它的开放性(7)典型应用有两方面:数值计算和符号计算建模和动态仿真下面介绍MATLAB的界面、常用命令和使用方法菜单栏和工具栏:位于窗口顶部,用户可以通过它们来执行某些命令命令窗口:位于右边空白部分,用户的数据输入和结果运算,都在此窗口进行,是Matlab 极为重要的部分,也是用户使用最频繁的部分工作台和工具箱:位于主窗口左上部分,双击工具箱或前面的‖+‖号,就能看到工具箱的各项功能工作空间:主窗口的中上部分,可看到Matlab 的各个工作变量,新打开Matlab 时,只能看到系统提供的默认输出变量ans历史命令:主窗口的左下部分,主要保存工作过的变量、表达式等,需要时,用户可以直接提取历史命令在命令窗口中使用当前工作目录:主窗口的中下部分,主要保存在当前工作路径下的图形文件和命令文件二、常量和变量MATLAB 中使用的数据有常量和变量作用标量的实数常量,类似于 C 语言中的整形常量和实形常量,常量的表示方法:十进制数字,可以带正负号和小数点,也可采用科学计数法如:1, 2.5 , 0.0033 , 2 e-7 ,pi , 2+3 i 等变量以其名称在操作语句中第一次合法出现而定义,无需事先定义。
《数字信号处理》Matlab实验
《数字信号处理》Matlab 实验一.离散信号的 FFT 分析1.用Matlab 编程上机练习。
已知:N=2^5。
这里Q=0.9+j0.3。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:函数代码:>> function xn()>> format long>> q=0.9+0.3*i;>> wn=exp(-2*pi*i/32);>> xk=(1-q^32)./(1-q*wn.^[0:31])>>xn=q.^[0:31]>> xk1=fft(xn,32)>>diff=xk-xk1具体执行情况:>> function xn()format longq=0.9+0.3*i;wn=exp(-2*pi*i/32);xk=(1-q^32)./(1-q*wn.^[0:31])xk =Columns 1 through 20.5698 + 3.3840i 2.8369 + 8.8597iColumns 3 through 49.3189 - 9.8673i 1.2052 - 3.5439iColumns 5 through 61.8846 -2.0941i 0.8299 - 1.2413i11,011)()()(k k 10nk 10-=--===∑∑-=-=N k QW Q QW W n x k X N NnN N n N N n ,0.9214 - 1.0753i 0.3150 - 0.0644i Columns 9 through 100.9240 - 0.8060i 0.4202 - 0.2158i Columns 11 through 120.8513 - 0.6357i 0.5040 - 0.1701i Columns 13 through 140.6217 - 0.6931i 0.2441 - 0.8978i Columns 15 through 160.9454 - 0.2800i 0.7139 - 0.3158i Columns 17 through 180.6723 - 0.6496i 0.0263 + 0.5093i Columns 19 through 200.5671 + 0.6914i 0.3173 + 0.9841i Columns 21 through 220.8929 + 0.7792i 0.4066 + 0.8452i Columns 23 through 240.5847 + 0.9017i 0.9129 + 0.9283i Columns 25 through 260.0573 + 0.5531i 0.4219 + 0.9562i Columns 27 through 280.3298 + 0.3143i 0.4513 + 0.2638i0.7214 + 0.1879i 0.0933 + 1.7793iColumns 31 through 320.9483 + 1.9802i 0.4932 + 2.6347i>> xn=q.^[0:31]xn =Columns 1 through 21.0000 0.0000 + 0.0000i Columns 3 through 40.0000 + 0.0000i 0.0000 + 0.0000iColumns 5 through 60.0000 + 0.0000i -0.0000 + 0.0000iColumns 7 through 8-0.0000 + 0.0000i -0.0000 + 0.0000iColumns 9 through 10-0.0000 + 0.0000i -0.0000 + 0.0000iColumns 11 through 12-0.0000 - 0.0000i -0.0000 - 0.0000iColumns 13 through 14-0.2000 - 0.4000i -0.3600 - 0.5200iColumns 15 through 16-0.9680 - 0.1760i 0.4816 - 0.3488i0.2381 - 0.2695i 0.2951 - 0.1711i Columns 19 through 200.1169 - 0.4655i 0.4449 - 0.9838i Columns 21 through 220.6955 + 0.2480i 0.5516 + 0.4319i Columns 23 through 240.3669 + 0.5542i 0.9639 + 0.2088i Columns 25 through 260.3049 + 0.9771i -0.5187 + 0.4709i Columns 27 through 28-0.6081 + 0.2682i -0.1278 + 0.5589i Columns 29 through 30-0.4827 + 0.0647i -0.6538 + 0.5134i Columns 31 through 32-0.8425 - 0.4341i -0.1280 - 0.1434i >> xk1=fft(xn,32)xk1 =Columns 1 through 20.5698 + 3.3839i 2.8366 + 8.8599i Columns 3 through 49.3182 - 9.8692i 1.2051 - 3.5439i1.8845 -2.0942i 0.8298 - 1.2413i Columns 7 through 80.9213 - 1.0754i 0.3150 - 0.0645i Columns 9 through 100.9240 - 0.8060i 0.4202 - 0.2158i Columns 11 through 120.8514 - 0.6356i 0.5040 - 0.1701i Columns 13 through 140.6217 - 0.6931i 0.2441 - 0.8977i Columns 15 through 160.9454 - 0.2800i 0.7139 - 0.3159i Columns 17 through 180.6723 - 0.6496i 0.0263 + 0.5093i Columns 19 through 200.5671 + 0.6913i 0.3172 + 0.9840i Columns 21 through 220.8929 + 0.7792i 0.4065 + 0.8452i Columns 23 through 240.5846 + 0.9016i 0.9129 + 0.9283i Columns 25 through 260.0572 + 0.5531i 0.4219 + 0.9563i0.3297 + 0.3144i 0.4512 + 0.2638iColumns 29 through 300.7213 + 0.1879i 0.0932 + 1.7793iColumns 31 through 320.9480 + 1.9802i 0.4928 + 2.6347i>> diff=xk-xk1diff =1.0e-013 *Columns 1 through 20.4625 + 0.8501i 0.9504 - 0.4003iColumns 3 through 40.6010 + 0.4028i 0.4752 + 0.7001iColumns 5 through 60.5502 + 0.8501i 0.4625 + 0.8501iColumns 7 through 80.7751 + 0.9250i 0 + 0.3875i Columns 9 through 100.7751 - 0.4625i 0.3126 - 0.4625iColumns 11 through 12-0.4625 - 0.3126i 0.4625 + 0.3875iColumns 13 through 14-0.9250 + 0.6938i 0.3875 - 0.0781iColumns 15 through 160.3875 - 0.6156i 0 + 0.9641iColumns 17 through 180.9250 - 0.7598i -0.4625 - 0.0422iColumns 19 through 200.4625 + 0.1172i 0.4625 + 0.3094iColumns 21 through 220.9250 + 0.4625i 0.9250 + 0.2313iColumns 23 through 240.3875 + 0.1563i 0.3875 - 0.2313iColumns 25 through 260.8501 -0.9250 - 0.4625iColumns 27 through 280.0127 - 0.7751i 0.7001 - 0.9250iColumns 29 through 300.1626 0.7814 - 0.9250iColumns 31 through 320.4816 + 0.9250i 0.7255 - 0.8501i由以上结果可知,由基2时间抽选的FFT算法所得到的DFT结果与利用公式法所得的理论值稍有偏差,但误差较小,从结果可以看出大概在小数点第15位才开始出现误差,故而用计算机FFT处理数据在精度上是可以接受的。
数字信号处理实验(matlab)
北京邮电大学DSP之matlab实验1实验题目2. 程序分析实验一(源代码及分析)A=zeros(1,25)c=complex(0.9,0.3)for i=1:1:25A(i)=c^iendn=0:24k=0:24WN=exp(-j*2*pi/25)nk=n'*kWNnk=WN.^nkX=A*WNnk;%X(k)为用定义算法计算的DFT值%下面为32点运算for i=26:1:32A(i)=0endn=0:31k=0:31WN=exp(-j*2*pi/32)nk=n'*kWNnk=WN.^nkX=A*WNnk%下面为32点蝶形运算k1=bin2dec(fliplr(dec2bin([1:32]-1,5)))+1%得到从1到32的倒序顺序B=A(k1)%得到倒序后的A,将其赋给Bfor mm=1:5 %将DFT做m次基2分解,从左到右,对每次分解作DFT运算Nmr=2^mm;u=1; %旋转因子u初始化WN=exp(-j*2*pi/Nmr); %本次分解的基本DFT因子WN=exp(-i*2*pi/Nmr)for n=1:Nmr/2 %本次跨越间隔内的各次碟形运算for k=n:Nmr:32 %本次碟形运算的跨越间隔为Nmr=2^mmkp=k+Nmr/2; %确定碟形运算的对应单元下标(对称性)t=B(kp)*u; %碟形运算的乘积项B(kp)=B(k)-t; %碟形运算的加法项B(k)=B(k)+t;endu=u*WN; %修改旋转因子,多乘一个基本DFT因子WNendend实验二(源代码及分析)for i=1:1:1000x(i)=0.001*cos(0.45*i*pi)+sin(0.3*i*pi)-cos(0.302*i*pi-4/pi)endX=fft(x);k=0:500;w=2*pi/1000*k;stem(w/pi,abs(X(1:501)))axis([0.25 0.35 490 510])axis([0.3 0.5 0 0.8]) 3. 程序运行结果实验一程序运行结果太长,只附一截图如下:实验二结果的有窗与无窗图如下:4. 总结本次实验是第一次使用matlab,实验过程中遇到了不少的问题,经过和同学们的交流以及通过网络查询,最后得到了结果。
数字信号处理(MATLAB版)上机实验操作
实验一离散时间信号与系统一、实验目的:1、熟悉常见离散时间信号的产生方法;2、熟悉离散时间系统的单位脉冲响应和单位阶跃响应的求解方法;3、熟悉离散时间信号经过离散时间系统的响应的求解方法。
二、实验内容:已知离散时间系统差分方程为y(n)-0.5y(n-1)+0.06y(n-2)=x(n)+x(n-1),求1、该系统的单位脉冲响应并绘图;2、该系统的单位阶跃响应并绘图;3、已知x(n)=可自己指定用filter函数经过系统的响应并绘图;4、用conv_m函数求系统响应并绘图。
三、实验平台:MA TLAB集成系统四、设计流程:此处写个人自己的设计流程五、程序清单:此处写程序内容六、调试和测试结果:此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法七、教师评语与成绩评定此处由老师填写上机操作:实验一离散时间信号与系统实验内容:1.脉冲响应>> b =[1,1]; a = [1,-0.5,0.06];n = [-10:25];>> impz(b,a,n);>> title('Impulse Response'); xlabel('n'); ylabel('h(n)')2.单位阶跃响应>> x = stepseq(0,-10,25); s = filter(b,a,x);Warning: Function call stepseq invokes inexact match d:\MATLAB7\work\STEPSEQ.M.>> stem(n,s)>> title('Step Response'); xlabel('n');ylabel('s(n)')3.>> a=[1,-0.5,0.06];b=[1,1];>> n=-20:120;>> x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);>> s1=filter(b,a,x1);>> stem(n,s1);;xlabel('n');ylabel('s1(n)');4.>> a=[1,-0.5,0.06];b=[1,1];>> n=-20:120;>> h=impz(b,a,n);>> x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);>> [y,m]=conv_m(x1,n,h,n);Warning: Function call conv_m invokes inexact match d:\MATLAB7\work\CONV_M.M. >> stem(m,y);title('系统响应');xlabel('m');ylabel('y(m)');实验二离散信号与系统的连续频域分析一、实验目的:1、掌握离散时间信号的DTFT的MATLAB实现;2、掌握离散时间系统的DTFT分析;3、掌握系统函数和频率相应之间的关系。
Matlab数字信号处理实验报告
实验 2-3
n=0:30;%输入x(n)和冲激响应 h(n) x=zeros(1,length(n)); h=zeros(1,length(n)); x([find((n>=0)&(n<=4))] ) =1; h([find((n>=0)&(n<=8))] ) =0.5; subplot(3,1,1); stem(x); title('x(n)'); axis([0,30,0,2]); subplot(3,1,2); stem(h); title('h(n)'); axis([0,30,0,2]); X=fft(x); H=fft(h); Y=X.*H; y=ifft(Y); subplot(3,1,3);
变换及 h(n) 的 Z 变换,则
H (z) zesT
1 T
Ha (s
m
j
2 T
m)
(2) 双线性变换法
s
平面与
z
平面之间满足以下映射关系:
s
2 T
1 1
z 1 z 1
s 平面的虚轴单值地映射于 z 平面的单位圆上,s 平面的左半平面完全映射 到 z 平面的单位圆内。双线性变换不存在混叠问题。双线性变换时一种非线性变
subplot(3,1,2); stem(n,h); axis([0,30,0,2]); title('冲激响应序列'); xlabel('n'); ylabel('h(n)');
数字信号处理实验
实验一 熟悉MATLAB 环境一、实验目的1. 熟悉MATLAB 环境的主要操作命令。
2. 掌握简单的绘图命令。
3. 用MATLAB 编程并学会创建函数。
二、实验仪器装有MATLAB 语言的计算机 三、实验原理MATLAB 的基本命令和函数 四、实验内容和要求1. 序列的产生1)编写MATLAB 程序,产生并绘制一个单位样本(单位冲激或单位阶跃)序列2)编写MATLAB 程序,生成一个实数值的指数序列(例:1508.0)(≤≤=n n x n 或150)()32.0(≤≤=+n e n x nj );3)编写MATLAB 程序,产生一个正弦信号;(例:150)1.025.0sin(2)2.0125.0cos(3)(≤≤+++=n n n n x ππππ)实验二离散序列的基本运算一、实验目的(1)进一步了解离散时间序列时域的基本运算。
(2)了解MATLAB语言进行离散序列运算的常用函数,掌握离散序列运算程序的编写方法。
二、实验原理离散序列的时域运算包括信号的相加、相乘,信号的时域变换包括信号的移位、反折、倒相及信号的尺度变换等。
三、实验内容1、x(n)=u(n-2)+u(n+2),(-5<n<5)。
MATLAB程序如下:n1=-5;n2=5;n01=2,n02=-2;n=n1:n2;x1=[(n-n01)>=0];x2=[(n-n02)>=0];x3=x1+x2;subplot(3,1,1);stem(n,x1,'filled');axis([n1,n2,1.1*min(x1),1.1*max(x1)]);ylabel('u(n-2)');subplot(3,1,2);stem(n,x2,'filled');axis([n1,n2,1.1*min(x2),1.1*max(x2)]);ylabel('u(n+2)');subplot(3,1,3);stem(n,x3,'filled');axis([n1,n2,1.1*min(x3),1.1*max(x3)]);ylabel('u(n-2)+u(n+2)');2、已知x(n)=3cos(2πn/10),试显示x(n-3)和x(n+3)在0<n<20区间的波形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1984年,MathWorks公司成立,MATLAB正是推 向市场。
Matlab及其应用
3
1.2 学习Matlab的基本原因
不希望学生在编程上化太多时间,课程目的 不是学习编程
Matlab及其应用
28
直接读入特殊格式文件:二进格式
Matlab及其应用
29
3.2 矩阵运算
矩阵的转置 用符号’来表示和实现 非共轭转置 .’
矩阵的四则运算 +-*/ \ 点乘:.* 右除:./ 左除:.\
矩阵的乘方 ^矩阵乘方 .^元素对元素的乘方
矩阵的范数 norm 1-范数 2-范数 –无穷范数
社会化的运行带来的好处:合理利用可以节 约大量的时间
为什么相同的时间别人比自己做出了更多的 事情:硕士论文调查结果
面向对象的思想带来巨大的好处 紧密结合科学的前沿 From BBS:博士论文=Matlab+word
Matlab及其应用
4
1.3 Matlab的版本演化
Matlab 1.0 Pc matlab->matlab 386 Matlab3.5+simulink Matlab 4.0:simlink内嵌 Matlab 5.0 :全面的面向对象 Matlab 5.1~5.3 Matlab 6.0 Matlab 6.5:购并了MATRIXx Matlab 7.0:2004
Matlab及其应用
23
2.5 文件管理功能
who(whos) cd(chdir,pwd) dir(ls) type what which clc
edit ! echo load clear/pack save diary
Matlab及其应用
24
7
Matlab产品家族
Matlab扩展支持在 matlab中队系统的 实施和开发。
工具箱:专用的函数 库,解决特定领域的 问题。
Simulink非线性系 统仿真
Blockset是专门为 simulink建立的模块。
Matlab及其应用
8
Matlab是所有系统工具的基础
Matlab及其应用
Matlab及其应用
18
2.3.1 怎样获得详尽的帮助信息
1. 首先是MATLAB窗口中的help命令,它最常用、最快,往往也是最 有效的。给出关键字就能找到相应的说明。Help命令简单易用,但 是它要求准确给出关键字,如果记忆不准,就很难找到。这时就应 该用第二种方案。
2. Help Desk:这是MATLAB的HTML格式的帮助文档,有着很好的 组织。可以在命令行键入helpdesk,进入“Matlab Help Desk”。 Help Desk的搜索可以使用不完全关键字,这样即使遇到记忆模糊 的情况也可以很快查到。
»a=1:9;
b=a>4
b=
000011111
»c=a(a>4)
c=
56789
Matlab及其应用
33
2 逻辑操作符
逻辑操作符定义了一种与或非的关系表达式。 MATLAB的逻辑操作符有&(与)、|(或)、~(非)。 例如:
»c=~(a>4) c= 111100000 »c=(a>4)&(a<7) c= 000011000
2. 如果结果中的有效数字超出了这一范围,以科学计 数法显示结果。
3. format命令改变显示格式,常用的的格式有
long (16位) bank(2个十进制位) hex(十六进制) short(缺省) short e(5位加指数) +(符号) long e(16位加指数) rat(有理数近似)
MATLAB 基础及其应用
第一讲 MATLAB基础
> • 概述 > • MATLAB基本使用 > • MATLAB的基本矩阵分析 > • 矩阵操作 > • 流程控制
Matlab及其应用
1
一、概述
MATLAB是一种交互式的以矩阵为基础的系 统计算平台,它用于科学和工程的计算与可 视化。它的优点在于快速开发计算方法,而 不在于计算速度。
ቤተ መጻሕፍቲ ባይዱ
25
2语句生成矩阵
线性等间距格式矩阵,使用from:step:to linspace命令
a=linspace(1,10,5);
logspace命令
b=logspace(0,2,10)
矩阵连接
c=[a b];
zeros ones eye randn []
Matlab及其应用
26
3. 引入特殊的文件格式
引入输入:import wizard 可以引入的文件格式: 文本文件: .txt .dat 图片文件: .gif .bmp .jpg .avi 声音:.wav .au 电子表格:.csv .xls .wk1
Matlab及其应用
27
直接读入特殊格式文件:文本类型
2.4 Matlab变量
基本运算
变量:直接使用,无需定义 逗号、分号的意义 行内编辑、注释、运算规则
变量要求(文件名最好使用相同的规则)
变量区分字母的大小写 名字不能超过19个字符,第19个字符后的字符被忽略 变量必须以字母开头,之后可以是任意字母、数字或者下滑
线 变量中不能含有标点符号。
Matlab及其应用
20
2.4.1 特殊变量
特殊变量 ans pi eps flops inf nan ij nargin nargout realmin realmax
取值 用于结果的缺省变量名 圆周率 计算机的最小数 浮点运算书 无穷大 如 1/0 不等量 如 0/0 i=j= 1 函数的输入变量数目 函数的输出变量数目 最小的可用正实数 最大的可用正实数
三、MATLAB的基本矩阵运算
3.1 简单矩阵输入 命令行简单键盘输入
用于很少数据输入 矩阵的方向:, ; NaN Inf
文件形式输入
可以用来读入试验数据 大量的数据输入
load数据
文本文件:全部是数据,不含有数据 mat文件:matlab自有的数据格式
Matlab及其应用
32
3.4 关系和逻辑运算
1 关系操作符
MATLAB常用的关系操作符有:<(小于)、<=(小于或等于)、 >(大于)、>=(大于或等于)、 = =(等于)、 !=(不等于)。
MATLAB的关系操作符可以用来比较两个大小相同的数组,或者 比较一个数组和一个标量。在与标量比较时,结果和数组大小一 样。
基本的三角函数。 fix
注意其中的取整
floor
ceil
Matlab及其应用
含义 绝对值或者复数模 平方根 实部 虚部 复数共轭 4舍5入到整数 舍入到最接近0的整数 舍入到最接近-∞的整数 舍入到最接近∞的整数
31
3.3 矩阵的超越函数
函数名 sign rem sin cos tan asin acos atan atan2
Matlab及其应用
35
4.1 矩阵下标
利用矩阵下标,MATLAB还提供了子矩阵功 能。同样是上面的a(n,m),如果n和m是向 量,而不是标量,则将获得指定矩阵的子块.
Matlab及其应用
21
2.4.2 复数
不需要特殊的处理。复数可以表示为: a=10-9i
复数运算不需要特殊处理,可以直接进行
Matlab及其应用
22
2.4.3 显示格式
MATLAB中所有的量为双字长浮点数,显示按 下面显示规则:
1. 在缺省情况下,当结果为整数,作为整数显示;当 结果为实数,以小数后4位的精度近似显示。
条件数 cond
Matlab及其应用
30
3.3 矩阵的超越函数
MATLAB中exp、sprt、函数名
sin、cos等命令可以 abs
直接使用在矩阵上, sqrt
这种运算只是定义在 real
矩阵的单个元素上, imag
即分别对矩阵的每个
元素进行运算。
conj
MATLAB中也提供了 round
Matlab启动
自动批处理 startup.m matlabrc.m
Matlab及其应用
16
2.2 Matlab菜单的含义
多窗口界面 Matlab的设置
快速启动 版本控制 图形粘贴设置
字体的改变
Matlab及其应用
17
2.3帮助的使用
help 命令:已知命令不知道用法 lookfor命令:知道命令的关键词 Matlab Help:命令查找,索引,说明书 Demo 有效的利用帮助
Mathcad 数学文字软件。直接写出报告 Maple 符号计算功能强大 SciLab 免费的matlab科隆体 仿真软件:MATRIXx、VisSim等等
Matlab及其应用
15
二、MATLAB基础使用
2.1 MATLAB安装启动 Matlab的安装
定制安装 关于Java的问题:XP系统必须安装虚拟机 安装pdf文件
极多的工具箱。
Matlab及其应用
6
1.5 Matlab能做什么
基本的数据处理 优化和解方程 动态过程仿真:实时的和非实时的 数据来源:Excel、数据库、A/D等等 嵌入式的控制:Pc/104和DSP 神经元网络、小波分析、GA等等 虚拟现实仿真