《数字信号分析理论与实践 (3).pdf》由会员分享,可在线阅读,更多相关《数字信号分析理论与实践 (3).pdf(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.4Matab数字信号分析编程应用基础什么是Matlab?MATrixLABoratory的缩写,美国MathWorks公司出品的商业数学软件,拥有数据可视化和数值计算的高级计算语言和交互式环境。例例1:正弦波正弦波x=linspace(0,2*pi,100);y=sin(x);plot(x,y);第一单元:计算机测量仪器系统第一单元:计算机测量仪器系统多高级?例2:波形合成(傅里叶级数)x=linspace(0,4*pi,100);y=sin(x)+1/3*sin(3*x)+1/5*sin(5*x);plot(x,y);第一单元:计算机测量仪器系统第一单元:计算机测量仪器系统例3:二维Si
2、nc函数优点:精力集中在数字信号分析,而不是程序设计x=-8:0.5:8;y=x;X,Y=meshgrid(x,y);R=sqrt(X.2+Y.2)+eps;z=sin(R)./R;mesh(z);第一单元:计算机测量仪器系统z=sin(2*R)./R;课程将用到的Matlab知识 基本变量、基本函数、基本句法 基本GUI程序设计 声卡摄像头信号采集 串口Arduino卡信号采集第一单元:计算机测量仪器系统1)Matlab的安装的安装第一单元:计算机测量仪器系统命令窗口程序窗口工作目录2)Mtlab程序界面第一单元:计算机测量仪器系统双击图标3)文件编程应用方式新建文件运行程序第一单元:计算机
3、测量仪器系统4)GUI编程应用方式运行程序第一单元:计算机测量仪器系统GUI(1)变量不需要定义变量类型,由赋值语句自动确定所有变量默认为是双精度变量单变量被看作为1x1矩阵int a;double b;float c;例:x=5;x1=2;5)Matlab基本句法第一单元:计算机测量仪器系统(2)矩阵按行列定义的数组称为矩阵,在Matlab中可以直接用矩阵做变量进行运算。第一单元:计算机测量仪器系统行1Row 2Row 3Row 4列1 Col 2 Col 3 Col 4 Col 5arr(3,2)(3)矩阵赋值 x=1 2 5 1x=1 2 5 1 x=1 2 3;5 1 4;3 2-1x
4、=1 2 3 5 1 4 3 2 -1第一单元:计算机测量仪器系统(4)用函数给矩阵赋值x=V1:dv:V2linespace(,N)zeros(M,N)MxN 零矩阵零矩阵ones(M,N)MxN 矩阵矩阵rand(M,N)MxN 随机数矩阵随机数矩阵t=0.1:0.3:10.1000 0.4000 0.7000 1.0000 x=linspace(0,1,4)0 0.3333 0.6667 1.0000 x=zeros(1,3)0 0 0 x=ones(1,3)1 1 1 x=rand(1,3)0.9501 0.2311 0.6068第一单元:计算机测量仪器系统(5)算数运算符+加-减*乘
5、/除 幂方复共轭转置(6)逻辑运算符=等于=不等于大于=大于等于&与|或A=1 2 3;4 5 6;7 8 9;B=3 5 2;5 2 8;3 6 9;Z=A*BZ=22 27 45 55 66 102 88 105 159第一单元:计算机测量仪器系统(7)标准函数 abs,sign log,log10,log2 exp sqrt sin,cos,tan asin,acos,atan max,min round,floor,ceil,fix mod,A=1 2 3;4 5 6;7 8 9;X=sqrt(A)Z=1.0000 1.4142 1.7321 2.0000 2.2361 2.4495
6、2.6458 2.8284 3.0000第一单元:计算机测量仪器系统x=linspace(0,4*pi,100);y=sin(x);stem(x,y);x=linspace(0,4*pi,100);y=sin(x);plot(x,y);(8)Matlab的显示函数plot(.)stem(.)第一单元:计算机测量仪器系统命令:titlexlableylabletextgtextgridongridofflegendaxisx=linspace(0,4*pi,100);y=sin(x);plot(x,y);title(正弦波正弦波);grid on;第一单元:计算机测量仪器系统hold命令clea
7、rt=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3=sin(t)-cos(t);plot(t,y1,r,LineWidth,3);hold on;plot(t,y2,g,LineWidth,3);plot(t,y3,b,LineWidth,3);第一单元:计算机测量仪器系统SubPlot命令t=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3=cos(t+pi/2);y4=cos(t+pi);subplot(2,2,1);plot(t,y1);subplot(2,2,2);plot(t,y2);subplot(2,2,3);plot(t,y3);
8、subplot(2,2,4);plot(t,y4);第一单元:计算机测量仪器系统(9)流程控制语句 if for while break .n=input(n=);if n=90 r=Aelseif n=80 r=Belse r=Cendsum=0;for i=1:100 sum=sum+i;endwhile b-a c x=a+bend第一单元:计算机测量仪器系统(10)M文件编程样例第一单元:计算机测量仪器系统新新文文件件程程序序区区第一单元:计算机测量仪器系统(11)GUI编程样例第一单元:计算机测量仪器系统(a)GUIDE(Graphical User Interface Develo
9、pment Environment)第一单元:计算机测量仪器系统启动方式启动方式1:工具条点击工具条点击GUI图标图标 启动方式启动方式2:命令行输入命令行输入GUIDE(b)GUI控件信号波形显示控件第一单元:计算机测量仪器系统(c)先建立一个空白GUI文件第一单元:计算机测量仪器系统(d)设置控件属性鼠标右键鼠标右键第一单元:计算机测量仪器系统(e)编写回调函数第一单元:计算机测量仪器系统例:将一个M文件小程序放到GUI界面中Fs=44100;dt=1.0/Fs;T=1;N=T/dtt=linspace(0,T,N);x=0.3*sin(2*pi*600*t);plot(t,x,r,Lin
10、eWidth,3);axis(0,0.01,-0.5,0.5);set(gca,color,0.95,0.95,0.95);wavplay(x,Fs);第一单元:计算机测量仪器系统第一单元:计算机测量仪器系统第一单元:计算机测量仪器系统(f)输入正弦波信号频率第一单元:计算机测量仪器系统F=str2double(get(handles.edit1,String);Fs=44100;dt=1.0/Fs;T=1;N=T/dtt=0:N-1/N;x=0.3*sin(2*pi*F*t);plot(t,x,r,LineWidth,3);axis(0,0.01,-0.5,0.5);set(gca,colo
11、r,0.95,0.95,0.95);wavplay(x,Fs);(6)修改回调函数,频率=输入值Fs=44100;dt=1.0/Fs;T=1;N=T/dtt=linspace(0,T,N);x=0.3*sin(2*pi*600*t);plot(t,x,r,LineWidth,3);axis(0,0.01,-0.5,0.5);set(gca,color,0.95,0.95,0.95);wavplay(x,Fs);第一单元:计算机测量仪器系统第一单元:计算机测量仪器系统第一单元:计算机测量仪器系统进阶:使用滚动条滚动条回调函数:F=get(handles.slider1,Value);Fs=441
12、00;dt=1.0/Fs;T=1;N=T/dt;t=0:N-1/N;x=0.3*sin(2*pi*F*t);plot(t,x,r,LineWidth,3);axis(0,0.01,-0.5,0.5);set(gca,color,0.95,0.95,0.95);s1=sprintf(%f,F);set(handles.edit1,String,s1);第一单元:计算机测量仪器系统第一单元:计算机测量仪器系统作业:1、用M文件方式编程实现一个500Hz的正弦波信号,信号采样频率为5120Hz.2、用GUI方式编程实现一个频率在100-500Hz、,幅值在0-2000,相位0-180度可变的正弦波信号,信号采样频率为5120Hz.第一单元:计算机测量仪器系统数字信号分析理论与实践