收藏 分享(赏)

MATLAB与信号处理_1.ppt

上传人:dreamzhangning 文档编号:5752599 上传时间:2019-03-15 格式:PPT 页数:29 大小:241.50KB
下载 相关 举报
MATLAB与信号处理_1.ppt_第1页
第1页 / 共29页
MATLAB与信号处理_1.ppt_第2页
第2页 / 共29页
MATLAB与信号处理_1.ppt_第3页
第3页 / 共29页
MATLAB与信号处理_1.ppt_第4页
第4页 / 共29页
MATLAB与信号处理_1.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、实验一 MATLAB的基本操作、编程基础,MATLAB与信号处理,实验二 离散信号与系统及其MATLAB实现,实验三 信号变换及其MATLAB实现,实验四 离散系统的结构及其MATLAB实现,实验五 基于MATLAB的IIR DF设计I,实验六 基于MATLAB的IIR DF设计II,实验七 基于MATLAB的FIR DF设计,实验八 基于MATLAB的数字滤波器设计-考查,实验一 MATLAB的基本操作、编程基础,一、实验目的 1.初步了解matlab 6.5应用环境; 2.练习利用matlab 6.5中的命令或程序描述基本信号; 3.练习利用matlab 6.5中的命令或程序实现信号的运算

2、; 4.练习matlab 6.5中的绘图方法; 5.初步练习M-File的建立、保存、调用。,二、实验原理与方法各种信号、运算形式的数学描述及相应的命令或程序。,涉及函数,矩阵生成函数:1、zeros;2、ones;3、rand;4、randn。 画图函数:1、figure;2、plot;3、subplot;4、stem;5、xlabel;6、ylabel;7、title;8、text;9、axis。 数学运算函数:1、min;2、max;3、abs;4、 angle;5、 cos;6、exp;7、conv 。 调试函数:error 其他函数:find fliplr,三、实验内容及步骤 1.启

3、动matlab 6.5,了解常用窗口及其作用;,1)常用一维矩阵的生成N=10A=zeros(1,N) %生成1行N列的全0矩阵A=ones(1,N) %生成1行N列的全1矩阵A=randn(1,N) %生成1行N列的随机矩阵2)简单一维矩阵的生成x1=1 2 3 0 0 x=0.123y1=1,2,3,4,5 y=123,2.MATLAB编程基础,请在命令窗口中输入蓝色部分,结合讲授进行理解,3)利用冒号生成向量a1=0:1:9b1=0:9t=-0.1:0.01:0.1%生成有N个元素的行向量X,其值在a与b之间线性分布a=1; b=100; N=10;X=linspace(a,b,N) %

4、生成有N个元素的行向量Y,其值在10a与10b之间等分分布a=1; b=5; N=10;Y=logspace(a,b,N)4)基本语句格式变量名列表=表达式; %左边是返回值,右边是表达式的定义,请在命令窗口中输入蓝色部分,结合讲授进行理解,5)for循环语句基本格式for 循环变量=起始值:步长:终止值循环体end例:for i=10:-1:1y(i)=i;endy执行后y的值为y=1 2 3 4 5 6 7 8 9 10,请在命令窗口中输入蓝色部分,结合讲授进行理解,6)while循环语句基本格式while 表达式循环体end例:sum=0;i=0; while sum100i=i+1;

5、sum=sum+i;endsumi执行后sum的值为sum=105i=14,请在命令窗口中输入蓝色部分,结合讲授进行理解,7)if语句基本格式if 逻辑表达式语句end 例:for i=1:10 a(i)=i;if i5a(i)=10-i;endenda 执行后a的值为a= 1 2 3 4 5 4 3 2 1 0,请在命令窗口中输入蓝色部分,结合讲授进行理解,8)if-else语句基本格式例:if x=1y=10;elseif x-1 end上述程序段的功能为?,请在命令窗口中输入蓝色部分,结合讲授进行理解,9)switch语句基本格式switch 表达式case 值1语句1 case 值2语

6、句2 otherwise语句nend,10)MATLAB自定义函数(M-File)基本格式先定义后保存再调用 定义: 在M-File窗口中输入function c =WAdd(a,b) %函数定义行c = a+b; %函数体的语句 保存:保存在work文件夹中以便调用调用:在命令窗口中输入a=1; b=1;c= WAdd(a,b) ;%得到c=2 相关说明:1.写M-file的地方:在选择File/New/M-file后出现的窗口中;2. function是关键字;3. M-file的保存:一般应保存在Matlab工作目录中的work文件夹下。文件名是函数名字,如WAdd.m,否则无法调用。,

7、请在命令窗口中输入蓝色部分,结合讲授进行理解,表示x(n) ,一般应采用两个矢量,如x1=1 -1 3 2 0 4 5 2 1 %产生序列x1(n) nx1=-3 -2 -1 0 1 2 3 4 5x2=1,-1,3,2,0,4,5,2,1 %产生序列x2(n) nx2=-3:5 x3=1,-1,3,2,0,4,5,2,1 ; %产生序列x3(n) nx3=-3,-2,-1,0,1,2,3,4,5; x3 nx3,3. 基本信号的表示、引用、图形描述,请在命令窗口中输入蓝色部分,结合讲授进行理解,注:1. matlab命令可在command window中直接输入;2. 注意命令后有无“;”

8、的区别。3. %表示注释,练习,X(1)=?,Matlab与C,C+不同,矩阵(向量)坐标从1开始,而不是从零开始,%单位取样序列(1):(n) N=8; x=zeros(1,N);% x=0 0 0 0 0 0 0 0 x(1)=1;% x=1 0 0 0 0 0 0 0,%单位取样序列(2):(n) N=8; n=0:N-1; x=n=0;,%移位单位取样序列(3):(n-n0) n1=0;n2=10;n0=5; n=n1:n2; x=(n-n0)=0;% x=0 0 0 0 0 1 0 0 0 0 0,%单位阶跃序列(1):u(n) N=10; x=ones(1,N);% x=1 1 1

9、 1 1 1 1 1 1 1,%产生n1=0);% x=0 0 0 0 0 1 1 1 1 1 1,% 产生 x(n) = u(n-n0)的M-file或自定义函数; n1n,n0 n2 function x,n = stepseq(n0,n1,n2) if (n0 n2) | (n1 n2)error(参数必须满足 n1 = 0; %x = zeros(1,(n0-n1), ones(1,(n2-n0+1);,保存: 调用:生成u(n-8),区间为0到20 则 x,n = stepseq(8,0, 20) 结果? 调用:调用自定义函数产生单位阶跃序列(2):u(n-5)、 u(n-10) n

10、1=0; n2=19; x1,nx1 = stepseq(5,n1,n2) % u(n-5) x2,nx2 = stepseq(10,n1,n2) % u(n-10),%实指数序列:x(n)=anu(n),%正(余)弦序列:x(n)=cos(wn+),%周期序列,N=5;a=0.5; n=0:N-1; x=a.n;% x=1.0000 0.5000 0.2500 0.1250 0.0625,N=5; w0=pi/4; Q=pi/3; n=0:N-1; x=cos(w0*n+Q);% x=0.5000 -0.2588 -0.8660 -0.9659 -0.5000,y=x x x x;%4个周期

11、的序列,%复指数序列:x(n)=e(+jw)n,%随机序列,N=3;sigma=0.5;w0=pi/4; n=0:N-1; x=exp(sigma+j*w0)*n);% x=1.0000 1.1658 + 1.1658i 0.0000 + 2.7183i %这里的i和j为虚部标识。再如: x=1+2j或y=1+2i x1=abs(x);%序列x的幅值 x2=angle(x);%序列x的相位,N=5; rand(1,N);%N点,在0,1上均匀分布 randn(1,N);%N点,均值为0方差为1的高斯随机序列 rand(state,0),%序列操作 %实现信号加的M-file :y(n)=x1(

12、n)+x2(n),function y,n = sigadd(x1,n1,x2,n2) % implements y(n) = x1(n)+x2(n) % - % y,n = sigadd(x1,n1,x2,n2) % y = sum sequence over n, which includes n1 and n2 % x1 = first sequence over n1 % x2 = second sequence over n2 (n2 can be different from n1) % 信号的长度一样才能相加,起点和止点一样才不会加错 n = min(min(n1),min(n2

13、):max(max(n1),max(n2); % duration of y(n) y1 = zeros(1,length(n); y2 = y1; % initialization y1(find(n=min(n1) % sequence addition,%实现信号乘的M-file : y(n)=x1(n) x2(n) function y,n = sigmult(x1,n1,x2,n2) % implements y(n) = x1(n)*x2(n) % - % y,n = sigmult(x1,n1,x2,n2) % y = product sequence over n, which

14、 includes n1 and n2 % x1 = first sequence over n1 % x2 = second sequence over n2 (n2 can be different from n1) % 信号的长度一样才能相乘,起点和止点一样才不会乘错 n = min(min(n1),min(n2):max(max(n1),max(n2); % duration of y(n) y1 = zeros(1,length(n); y2 = y1; y1(find(n=min(n1) % sequence multiplication,%改变比例:y(n)=ax(n) y=a*

15、x;%移位的M-file :y(n)=x(n-n0) function y,n = sigshift(x,m,n0) % implements y(n) = x(n-n0) % - % y,n = sigshift(x,m,n0) % n = m+n0; y = x;%折叠的M-file :y(n)=x(-n) function y,n = sigfold(x,n) % implements y(n) = x(-n) % - % y,n = sigfold(x,n) % y = fliplr(x); n = -fliplr(n);,%取样和: y=sum(x(n1:n2);%取样积 y=pro

16、d(x(n1:n2);%信号能量 Ex=sum(x.*conj(x); Ex=sum(abs(x).2);%信号功率 Px=sum(abs(x).2)/N;,%信号加、乘、移位、折叠例子 Exp1_1 x1=1 2 3 0 1 2 3;n1=0 1 2 3 4 5 6; x2=1 2 3 4 5;n2=-1:3; z1,nz1=sigadd(x1,n1,x2,n2); %调用自定义相加函数 z2,nz2=sigmult(x1,n1,x2,n2); %调用自定义相乘函数 z3,nz3=sigshift(x1,n1,3); %调用自定义移位函数 z4,nz4=sigfold(x1,n1); %调用

17、自定义反褶函数 %画图,红色x轴,蓝色y轴 figure(1); %调用第1个图形窗口 subplot(221);stem(n1,x1);xlabel(n1);ylabel(x1); subplot(223);stem(n2,x2);xlabel(n2);ylabel(x2); subplot(222);stem(nz1,z1);xlabel(nz1);ylabel(z1=x1+x2); subplot(224);stem(nz2,z2);xlabel(nz2);ylabel(z2=x1*x2); figure(2); %调用第2个图形窗口 subplot(311);stem(n1,x1);x

18、label(n1);ylabel(x1); subplot(312);stem(nz3,z3);xlabel(nz3);ylabel(z3=x1(n-3); subplot(313);stem(nz4,z4);xlabel(nz4);ylabel(z4=x(-n);,function y,ny = conv_m(x,nx,h,nh) % Modified convolution routine for signal processing % - % y,ny = conv_m(x,nx,h,nh) % y = convolution result % ny = support of y % x

19、 = first signal on support nx % nx = support of x % h = second signal on support nh % nh = support of h % nyb = nx(1)+nh(1); %卷积结果起点 nye = nx(length(x) + nh(length(h); %卷积结果止点 ny = nyb:nye; y = conv(x,h);,%卷积运算的M-file:y(n)=x1(n)*x2(n),%卷积运算例子:,已知:h(n)=(0.9)nu(n),x(n)=u(n)-u(n-10).求y(n)=h(n)*x(n).,n

20、= -5:50; u1 = stepseq(0,-5,50); %u(n)=u1(n) u2=stepseq(10,-5,50); %u(n-10)=u2(n) x = u1-u2; % input x(n)= u(n)-u(n-10) h = (0.9).n).*u1; % 脉冲响应 h(n) %画图,红色x轴,蓝色y轴 figure(1); subplot(3,1,1);stem(n,x); axis( -5,50 , 0,2 ); title(输入序列);ylabel(x(n);text(52,0,n); subplot(3,1,2); stem(n,h); axis(-5,50,0,2

21、) title(脉冲响应);ylabel(h(n); text(52,0,n); %调用卷积运算的M-file求输出响应 y,ny =conv_m(x,n,h,n); subplot(3,1,3); stem(ny,y); axis(-5,50,0,8) title(输出序列);ylabel(y(n);text(52,0,n);,1)gauspuls:产生高斯调制的正弦脉冲,yi=gauspuls(t,fc,bw); %fc中心频率,bw带宽,2)gmonopuls:产生高斯单脉冲,y=gmonopuls(t,fc); %fc中心频率,3) pulstran:产生脉冲串,y=pulstran(

22、t,d,func); %func=gauspuls或rectpuls或tripuls,4) rectpuls:产生非周期矩形的取样信号,y=rectpuls(t); y=rectpuls(t,w);%指定矩形的宽度,更多的信号产生函数,5) sawtooth:产生锯齿波或三角波,y=sawtooth(t); y=sawtooth(t,width);%0width1,6) sinc:产生sinc函数,y=sinc(x);,7) square:产生方波,y=square(t); y=square(t,duty);%duty指定占空比,8) tripuls:产生非周期三角波的取样信号方波,y=tri

23、puls(T); y= tripuls(T,w); %w指宽度 y= tripuls(T,w,s); %s指斜度-1s1,3.画出以下各序列在给定区间的图形。 1) x(n)=2(n+2)-(n-4)+(n) ,-5n5 2) x(n)=nu(n)-u(n-10)+10e-0.3(n-10)u(n-10)-u(n-20), 0n20 3) x(n)=2-cos(0.4n)- cos(0.8n) ,0n50 4.令x(n)=1,2,3,4,5,6,7,6,5,4,3,2,1,画出下列序列的图形 1) x1(n)=2x(n-5)-3x(n-4)2) x2(n)=x(3-n)-x(n)x(n-2)3) xe(n)和xo(n) -通过编写求xe(n)、xo(n)的M-file来实现(需要给出测试函数) xe(n) 和xo(n)分别为x(n)的偶部和奇部,五、实验报告要求1.简述实验目的及实验原理;2.记录实验内容3、4的命令或程序及图形。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报