首页 > 精品范文库 > 1号文库
《信号处理matlab仿真》大作业
编辑:寂夜思潮 识别码:10-1055784 1号文库 发布时间: 2024-06-30 15:49:04 来源:网络

第一篇:《信号处理matlab仿真》大作业

中国石油大学(华东)信息与控制工程学院

《信号处理matlab仿真》结课作业

专业班级:电子班 学

号:***** 姓

名:****** 任课老师:***** 202_年11月12日

《信号处理matlab仿真》结课作业

一、实现算法及设计思路

1、基本信号显示

正弦信号的显示,可以对它的幅度、角频率以及初相位进行设置输入。

A1=get(handles.edit1,'String');A=str2num(A1);

w1=get(handles.edit2,'String');w=str2num(w1);

p1=get(handles.edit3,'String');p=str2num(p1);t=-2*pi:0.01:2*pi;y=A*sin(w*t+p);plot(t,y,'r-.');grid

title('正弦信号');

方波信号:

t0=-6*pi;t1=6*pi;dt=1;t=t0:dt:t1;y1=square(t);plot(t,y1,'r-');grid

title('方波信号')锯齿信号:

t0=-6*pi;t1=6*pi;dt=0.05;t=t0:dt:t1;

f=sawtooth(pi/5*t,0);plot(t,f,'r-')grid

title('锯齿信号')单位阶跃信号:

t=-5:0.01:5 y1=u(t);plot(t,y1,'r');grid

title('单位阶跃信号')

《信号处理matlab仿真》结课作业

U(t):

function f=u(t)f=(t>0);%t>0时,f为1,否则为0 end 抽样信号:

t=-15:0.01:15;t1=t/pi;y4=sinc(t1);plot(t,y4,'r-');grid title('抽样信号');指数信号:

clc t=0:.001:10;ft=exp(t);plot(t,ft,'r-'),grid title('指数信号)')

2、序列运算

单位脉冲序列,可以对位移量进行设置:

t=str2num(get(handles.edit1,'String'));k=[t-3:t+7];fk=[(k-t)==0];stem(k,fk)title('单位脉冲序列')单位阶跃序列,可以对位移量进行设置:

t=str2num(get(handles.edit2,'String'));k=[t-3:t+7];fk=[(k-t)>=0];stem(k,fk)title('单位阶跃序列')指数序列,可以对底数进行设置:

t=str2num(get(handles.edit3,'String'));

《信号处理matlab仿真》结课作业

k=[0:10];fk=t.^k;stem(k,fk)title('指数序列')序列卷积,可以对卷积幅度进行设置(针对了特定的两个序列): t=str2num(get(handles.edit4,'String'));k1=-1:3;k2=-1:3;f1=[0 1 3 2 0 ];f2=[0 4 3 2 1 ];y=t*conv(f1,f2);k0=k1(1)+k2(2);k3=length(f1)+length(f2)-2;k=k0:k0+k3;stem(k,y)title('卷积序列')

3、卷积与傅里叶变换

卷积,针对两个特定的信号,对卷积幅度进行设置: clc

t=str2num(get(handles.edit1,'String'));t11=0;

t12=1;

t21=0;

t22=2;

t1=t11:0.001:t12;ft1=2*rectpuls(t1-0.5,1);t2=t21:0.001:t22;ft2=t2;

《信号处理matlab仿真》结课作业

t3=t11+t21:0.001:t12+t22;ft3=conv(ft1,ft2);ft3=t*ft3*0.001;plot(t3,ft3)title('f1(t)*f2(t)')方波傅里叶分析,对方波幅度进行设置: clc f=str2num(get(handles.edit2,'String'));t=0:0.01:2*pi;y=f*sin(t);plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3);plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5);plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7);plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7+sin(9*t)/9);plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7+sin(9*t)/9+sin(11*t)/11);plot(t,y),grid title('方波傅立叶分析')

《信号处理matlab仿真》结课作业

离散傅里叶变化,针对指数信号,对底数进行设置: t=str2num(get(handles.edit3,'String'));n=-5:5;x=t.^n;k=-200:200;w=(pi/100)*k;X=x*(exp(-j*pi/100)).^(n'*k);p=abs(X);plot(w/pi,p),grid title('离散傅立叶变换');快速傅里叶变化,针对指数信号,对底数进行设置: N=str2num(get(handles.edit3,'String'));x0=sin(N*2*pi*[1:8]/8)*5;dt=2*pi/8;w=linspace(0,2*pi,1000)/dt;x0=x0*exp(-j*[1:length(x0)]'*w)*dt;plot(w,abs(x0))title('快速傅立叶变换')

4、滤波器设计

FIR低通滤波器,可以对阶数、截止频率进行设置:

A1=get(handles.edit1,'String');N=str2num(A1);w1=get(handles.edit2,'String');Wn=str2num(w1);b=fir1(N,Wn,'low');

《信号处理matlab仿真》结课作业

fs=202_;[h,f]=freqz(b,1,1024,fs)plot(f,20*log10(abs(h)));FIR高通滤波器,可以对阶数、截止频率进行设置: A1=get(handles.edit3,'String');N=str2num(A1);w1=get(handles.edit4,'String');Wn=str2num(w1);b=fir1(N,Wn,'high');fs=202_;[h,f]=freqz(b,1,1024,fs)plot(f,20*log10(abs(h)));FIR带通滤波器,可以对阶数、截止频率进行设置: A1=get(handles.edit5,'String');N=str2num(A1);w1=get(handles.edit6,'String');Wn=str2num(w1);b=fir1(N,Wn);fs=202_;[h,f]=freqz(b,1,1024,fs)plot(f,20*log10(abs(h)));巴特沃斯低通滤波器:

《信号处理matlab仿真》结课作业

[b,a]=butter(11,0.5);figure(1);freqz(b,a,512,1000)n=0:40;x1=[(n-3)>=0];x2=[(n-20)>=0];x=x1-x2;y=filter(b,a,x);figure(2)subplot(1,2,1)stem(n,x);axis([0,35,-0.3,1.3]);grid title('x(n)');subplot(1,2,2)stem(n,y)grid title('y=filter(b,a,x)');切比雪夫I型滤波器: wp1=1000;ws1=1500;wc=3000;

《信号处理matlab仿真》结课作业

wp=wp1/wc;ws=ws1/wc;[n,wn]=cheb1ord(wp,ws,1,15);[b,a]=cheby1(n,1,wn);freqz(b,a,512,6000);axis([0,3000,-40,5]);

5、简单图像处理:

打开图片:

[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},' 载入图像 ');%选择路径打开图像

if isequal(filename,0)|isequal(pathname,0)%若 filename 为 0 或 pathname为 0,即未选中文件

errordlg('未选中文件 ','警告');%建立一个名为警告的错误对话框,内容为“未选中文件 ”

return;else

file=[pathname,filename];%将文件名和目录名组合成一个完整的路径

x=imread(file);%读入图像

set(handles.axes1,'HandleVisibility','ON');%设置图形对象属性,可从命令窗口中和 GUIs 中访问

axes(handles.axes1);%定义图形区域 axes1

imshow(x);%显示图像

《信号处理matlab仿真》结课作业

set(handles.axes1,'HandleVisibility','OFF');%设置图形对象属性,不可从命令窗口中和 GUIs 中访问

axes(handles.axes2);%定义图形区域 axes2 imshow(x);%显示图像

handles.img=x;%把图像发给handles.img end 灰度处理:

global T %定义全局变量

axes(handles.axes2);%定义图形区域 axes2 T=getimage;%从坐标轴获取图像数据

x=rgb2gray(handles.img);%利用 rgb2gray函数对源图像进行灰度处理 imshow(x);%显示图像

xlabel('灰度图像 ');% x 轴名为“灰度图像 ”

handles.img=x;%把图像发给 handles.img 傅里叶变换:

axes(handles.axes2);i1=handles.img;%获取图像

i2=im2double(i1);%图像矩阵转换成双精度浮点类型

f1=fft2(i2);%对图像进行二维离散傅里叶变换

fc1=fftshift(f1);%将变换后的图象频谱中心从矩阵的原点移到矩阵的中心

i=log(1+abs(fc1));%对变换后的图像矩阵数据求绝对值后取自然对数 imshow(i);

《信号处理matlab仿真》结课作业

xlabel('傅里叶变换图像 ');handles.img=i;直方图均衡化:

axes(handles.axes2);%定义图形区域 axes2 T=getimage;%从坐标轴获取图像数据

x=rgb2gray(handles.img);%利用 rgb2gray函数对源图像进行灰度处理 h=histeq(x);%对图像进行直方图均衡化处理

imshow(h);%显示图像

xlabel('直方图均衡化后的图像 ');handles.img=h;低通滤波器处理: axes(handles.axes2);y1=handles.img;%获取图像

x=rgb2gray(handles.img);%灰度变换

f=double(x);%数据类型转换为双精度数值

g=fft2(f);%二维离散傅里叶变换

g=fftshift(g);%将变换后的图象频谱中心从矩阵的原点移到矩阵的中心

[M,N]=size(g);%返回矩阵 g 的大小,即 M 为行数,N 为列数

nn=2;%二阶巴特沃斯低通滤波器 d0=50;%截止频率 50Hz m=fix(M/2);

n=fix(N/2);%取矩阵 g 的行数和列数一半的整数

《信号处理matlab仿真》结课作业

for i=1:M

for j=1:N % 循环

d=sqrt((i-m)^2+(j-n)^2);

h=1/(1+0.414*(d/d0)^(2*nn));%计算低通滤波器传递函数

result(i,j)=h*g(i,j);%结果返回到 result

end end result=ifftshift(result);%将图象频谱中心从矩阵的中心移到矩阵的原点 y2=ifft2(result);%二维离散傅里叶反变换

y3=uint8(real(y2));%把矩阵 y2 实部转换成 8 位无符号数据

imshow(y3);%显示低通滤波后的图像

xlabel('低通滤波图像 ');handles.img=y3;高通滤波器处理: axes(handles.axes2);x=handles.img;%获取图像

y=rgb2gray(handles.img);%灰度变换

f=double(y);%数据类型转换为双精度数值 k=fft2(f);%二维离散傅里叶变换

g=fftshift(k);%将变换后的图象频谱中心从矩阵的原点移到矩阵的中心

[M,N]=size(g);%返回矩阵 g 的大小,即 M 为行数,N 为列数

nn=2;%二阶

《信号处理matlab仿真》结课作业

d0=25;%截止频率 25Hz m=fix(M/2);n=fix(N/2);for i=1:M

for j=1:N %循环 d=sqrt((i-m)^2+(j-n)^2);if d<=d0 h=0;else h=1;end result(i,j)=h*g(i,j);%结果返回到 result end end result=ifftshift(result);%将图象频谱中心从矩阵的中心移到矩阵的原点

y2=ifft2(result);%二维离散傅里叶反变换

y3=uint8(real(y2));%把矩阵 y2 实部转换成 8 位无符号数据 imshow(y3);%显示高通滤波后的图像

xlabel('高通滤波图像 ');handles.img=y3;上下翻转:

axes(handles.axes2);

T= getimage;%从坐标轴获取图像数据 f=flipud(handles.img);%将图像矩阵上下翻转

《信号处理matlab仿真》结课作业

imshow(f);%显示翻转后的图像

xlabel('上下翻转后的图像 ');handles.img=f;左右翻转:

axes(handles.axes2);T= getimage;%从坐标轴获取图像数据 f=fliplr(handles.img);%将图像矩阵左右翻转

imshow(f);%显示翻转后的图像

xlabel('左右翻转后的图像 ');handles.img=f;

二、调试分析

这个错误主要是不细心造成,检查发现右括号少了,加上就解决了。

对变量没有定义,直接进行使用,在程序开始之前对其进行了重新定义。

《信号处理matlab仿真》结课作业

Freqz错误使用,对程序及freqz参数调整,得到解决。

跟上面的问题一样,都是对freqz重新调整,得到解决。如图所示:

没有对axes1进行定义,直接使用,程序加了:axes(handles.axes1);得到解决。

《信号处理matlab仿真》结课作业

这个错误开始的时候以为是图窗设计的不合理,或者是程序的问题,就把图窗和.m文件都删了重新设计,还是这个错误,排除了图窗设计错误,就对程序进行重新设计,最后实现了简单的图像处理按钮的编写并且没有了错误。

直接对.img进行了使用,对程序作了一下改动,此问题得到解决:

三、测试结果

1、仿真系统开始界面:

《信号处理matlab仿真》结课作业

2、基本信号显示:

①:正弦信号的显示:

②:方波信号的显示:

③:锯齿信号的显示:

《信号处理matlab仿真》结课作业

④:单位阶跃信号的显示:

⑤:抽样信号的显示:

《信号处理matlab仿真》结课作业

⑥:指数信号的显示:

3、序列运算:

①:单位脉冲序列:

②:单位阶跃序列:

③:指数序列:

《信号处理matlab仿真》结课作业

④:序列卷积:

4、卷积与傅里叶变换:

①:卷积:

②:方波傅里叶分析:

《信号处理matlab仿真》结课作业

③:离散傅里叶变换:(主要是对指数信号)

④:快速傅里叶变换:(主要是对指数信号)

《信号处理matlab仿真》结课作业

5、滤波器设计:

①:FIR低通滤波器:

②:FIR高通滤波器:

③:FIR带通滤波器:

④:巴特沃斯低通滤波器:(幅频与相频图线)

《信号处理matlab仿真》结课作业

⑤:切比雪夫I型滤波器:

6、简单图像处理:

①:选择图片打开:

《信号处理matlab仿真》结课作业

②:灰度处理:

③:傅里叶变换:

④:直方图均衡化:

《信号处理matlab仿真》结课作业

⑤:低通滤波器处理:

⑥:高通滤波器处理:

⑦:上下翻转:

《信号处理matlab仿真》结课作业

⑧:左右翻转:

注:每项操作完成后,都有一个返回主界面按钮,为退出此项操作,这里不一一展示。

四、课程总结及心得体会

通过近一段的学习,我明确了matlab是一款集数据分析、矩阵运算、信号处理和图形显示于一体,可方便地应用于数学计算、算法开发、数据采集、系统建模和仿真、数据分析和可视化、科学和应用软件开发等方面的强悍软件,是研究人员、工程人员研究工作中不可多得的工具,也是我们学习过程中必不可少的软件。而正因为其强

《信号处理matlab仿真》结课作业

大之处,以及可视性及可交互性使我对它的学习产生了浓厚的兴趣。开学至今,我们学习了 matlab 矩阵及其运算、matlab 程序设计、m文件操作、m文件 调试、m文件编程以及 matlab 绘图等,一段时间下来,对 matlab 还是有了一定的框架性认识及编程能力。并且在学习matlab 过程中,我感觉到它和 c 语言有许多相似之处,它有c语言的特征,但是比 c 语言编程计算更加简单,适合于复杂的数学运算。以上就是我对此课程的总结和心得体会。

根据自己学习的过程提出以下两点建议:

1、针对上课学习: 对于软件类的学习存在这样一个问题,我们可以上课时带电脑到课堂上或机房授课,一方面老师在讲台上演示,另 一方面同学们在下面即时练习,这样印象会更加深刻。

2、针对课下学习:近期 matlab 学习,老师给的课下作业很少,仅有实验,也许老师考虑同学们比较忙,以及可能交上来的作业效果质量达不到预期效果。但我认为适量的课下作业还是非常有必要的,尤其是对于我们这些普遍自制力较差的情况,这点显得更加有意义。课下作业可以布置那些老师演示过的程序或 ppt 中程序略加改动,让我们下课后及时完成上交。可以使我们及时巩固。

第二篇:能耗制动matlab仿真

注:考生属哪种类别请划“√”

(博士、√在校硕士、工程硕士、师资硕士、同等学力、研究生班)

辽宁工程技术大学 研究生考试试卷

考试时间: 202_年6月30日 考试科目:现代电力电子学 考生姓名:丁永峰 评卷人: 考试分数:

注意事项

1、考前研究生将上述项目填写清楚

2、字迹要清楚,保持卷面清洁

3、试题、试卷一齐交监考老师

4、教师将试题、试卷、成绩单,一起送研究生学院; 专业课报所在院、系

三项异步电动机能耗制动分析及matlab仿真

。三相异步电动机制动介绍

1.1制动的分类

一、再生回馈制动

再生回馈制动是在外加转矩的作用下,转子转速超过同步转速,电磁转矩改变方向成为制动转矩的运行状态。再生回馈制动与反接制动和能耗制动不同,再生回馈制动不能制动到停止状态。

二、反接制动

反接制动是在电机定子三根电源线中的任意两根对调而使电机输出转矩反向产生制动,或者在转子电路上串接较大附加电阻使转速反向,而产生制动。

三、能耗制动

电机在正常运行中,为了迅速停车,在电机定子线圈中接入直流电源,在定子线圈中通入直流电流,形成磁场,转子由于惯性继续旋转切割磁场,而在转子中形成感应电势和电流,产生的转矩方向与电机的转速方向相反,产生制动作用,最终使电机停止。于惯性继续旋转切割磁场,而在转子中形成感应电势和电流,产生的转矩方向与电机的转速方向相反,产生制动作用,最终使电机停止。

1.2能耗制动的原理

当电机停止按钮按下,电机断开三相电源做惯性运行,我们在定子绕组通入半波直流电源,使之产生固定磁场并与定子相切割,产生感应直流电。制动原理如图1.1所示,此直流电在磁场中受力与旋转方向相反,使之产生制动并停车。

NFn=0FS

图1.1 能耗制动原理图

如果三相异步电动机定子绕组断开三相电源后,则电机内无磁通势。从而电磁转矩T=0,电动机在负载转矩作用下,自然停车,这是自然制动过程。能耗制动的电路接线及保护接线图如图1.2所示,三相异步电动机定子绕组切断三相交流电源后(1K断开),同时,在定子绕组任意两相上接入直流电流I(I也称直流励磁电流),即接通开关2K,从而在电机内形成一个不旋转的空间位置固定的磁通势F,最大幅值为F&。在三相交流电源切断后的瞬间,电动机转子由于机械惯性其转速n不能突变,而继续维持原逆时针方向旋转。此时,直流电流I产生的空间固定不转的磁通势F&相对于旋转的转子是一个旋转磁通势;旋转方向为顺时针,转速大小为n。这种相对运动导致了转子绕组有感应电动势E,并产生电流I和电磁转矩T,根据左手定则可知,T的方向与磁通势F相对于转子的旋转方向是一样的,但与转速n的方向相反,电动机处于制动运行状态,电机转速迅速下降,直到转速n=0时,磁通势F与转子相对静止 E=0, I=0, T=0, 减速过程结束,电动机将停转,实现了快速制动停车。如果负载是反抗性负载,则电机转速n将停车。如果负载是位能性负载,则电机转速n=0时必须立即用机械抱闸,将电机轴刹住停车。

QSL1L2L32FU1VNKM2KM1KM247KM25FR0UPEVWKM1KM2KTM3~KM18RSB13SB2KM1KT6KT9KM21FRFU2

图1.2能耗制动控制接线图

由于制动过程,转轴的机械能转换成电能消耗在转子回路的电阻上,因此,称为能耗制动。2.异步电动机能耗制动的特性分析

三相异步电动机能耗制动的机械特性的推导类似于三相异步电动机固有机械特性的推导。当异步电动机切断三相交流电源,接入直流电流I时的等值电路如图2.1所示。它是转子绕组相数、匝数、绕组系数及转子电路的频率都折合到定子边界的结果。

图2.1能耗制动的等值电路 图2.2能耗制动的电流关系

图中S为能耗制动转差率。当直流磁通势F于转子之间相对转速(既转差)不变时,即0-n=-n,且F&的相对转子的转速即同步转速为n1=60f1/p,则

Sn/n

12-1

转子绕组频率为:

f2|sv|f12-2

图中I1为等值电流,它是通过三相异步电动机定子绕组接入直流电流 换算得到的。利用三相交流电流产生的旋转磁通势F&效替代直流磁通势F&推导出关系如下:

当电动机定子绕组为ㄚ形接法时,有

I12I

2-3 3当电动机定子绕组为△形接法时,有 I12I 2-4 3根据等值电路画出能耗制动时各电流之间的关系图如图2.2所示,则222I0I0cos(902)I22I0I0sin2-5 I12I22I222I2忽略励磁电阻r的铁损耗作用,则

I0Z2E1E2I2Ir2(2)2X222-6 XmXmXmXmsv对于转子功率因数角有

sin2X2r22()X22sv 2-7

代入整理各得

I12I12X2r22()(XmX2)2sv

2-8

r222r23pI1XmsvsvPM T

2-9 2n11r22)2]2f[()(XXm260s3I12v上式为能耗制动的机械特性表达式。和电动机运行状态时的机械特性参数表达式推导方法一样,可导出能耗制动时的最大转矩TmT相应的转差率SV为

TmT4f(XmX2)

2-10

r2SvXmX23pI12Xm2画出三相异步电动机能耗制动时的机械特性如图2.3所示,图中曲线1为直

图2.3 能耗制动的性 图2.4 能耗制动过程

流电流为 I,子串入电阻R=0性;曲线2为直流电流为I,子串入电阻R非0;曲线3为直流电流为I转子串入电阻R=0;曲线4为电机运行的固有特性。制动过程分析

三相异步电动机工作于电动运行状态时,采用能耗制动停车,电动机的运行点如图2.4所示。即A→B→0I小而改变制动转矩的大小,从而改变制动时间的大小。直流电流I选择

对于三相鼠笼式异步电动取

I(3.55)I0

2-11

对于三相绕线式异步电动机取

I(23)I0

2-12 R(0.20.4)E2N3I2N

2-13

式中I0电动机的空载电流。能耗制动广泛应用于要求平稳准确停车的场合。也可用于起重机一类带位能性负载的机械限制重物下放的速度,使重物保持匀速下降,只需改变直流电流大小(调节电位器RP)或改变转子回路串电阻R值,则可达到目的。3异步电动机的能耗制动matlab仿真

在交流电力拖动系统中, 异步电动机既可运行于电动状态, 又可运于电磁制动状态, 随生产机械的不同要求而定。三相异步电动机的能耗制动, 是通过将运行在电动状态的异步电机的定子脱离交流电源时, 立即在定子两相绕组通入直流励磁电流的方法, 使定子产生静止磁场的。当转子由于惯性仍在旋转时, 其导体切割此磁场便感应电流并产生与转子转向相反的电磁制动转矩而实现制动。本节用MATLAB/ SIMULINK,建立了三相异步电动机能耗制动系统的仿真模型, 通过实例进行仿真。这一方法可以构成更完备的电动机能耗制动和保护方案, 改善电动机的运行状况, 更好地满足生产的需要。

MATLAB 是一个功能强大的科学计算软件,SIMULINK 是MATLAB 的动态仿真工具, 它为用户提供了用方框图进行建模的图形接口。用户只要根据所建立的仿真模型和一些具体的仿真要求, 从模块库中拖放合适的模块组合在一起即可实现系统的仿真。已下便是仿真过程分析实例。

模型的建立

创建三项鼠笼式异步电动机能耗仿真模型如图3.1所示。电机断电后,将直流电(电压U=80V)经限流电阻(R=1)通入定子绕组,进行能耗制动。

鼠笼式三相异步电动机参数设置对话框如图3.2所示 断路器breaker的参数设置对话框如图3.3所示

图3.1 异步电动机能耗制动仿真模型

图3.2 异步电动机参数设置对话框

图3.3 breaker 参数设置对话框

模型的仿真及其仿真结果仿真波形如图3.4、3.5、3.6所示。依次是电机定子电流i、电机的转速n、电磁转矩T。由图可见,在1s前电机转速n为额定速度。在1s后交流电源切断,直流电经限流电阻通入定子绕组,进行能耗制动。在制动转矩的作用下电机转速快速下降,再经0.2秒电机速度下降接近0,其后转速就在0附近波动,而定子与转矩还有较大波动并逐渐衰减到2s仿真结束。能耗制动2秒结束比自由停车10s才停下来,其工作效率还是高很多。***02826241.11.21.31.41.51.61.71.81.92

图3.4 定子电流i ***0-100-202_.11.21.31.41.51.61.71.81.92

图3.5电机转速n 6040200-20-40-60-801.11.21.31.41.51.61.71.81.92

图3.6 电磁转矩

结论

能耗制动是一种优越的交流电机制动制方式,它能取得比自由停车平稳高效的控制效果由于制动具有不稳定难观测的特点,所以采用MATLAB仿真研究是一个很好且很方便的方法。但是MATLAB毕竟是软件模拟实现,仅仅从原理上证实了设计的准确性,我们还必须搭建实际系统并进行调试才能最终确定合适的调节器模型参数。

从仿真结果上看,在制动转矩的作用下电机转速快速下降,再经0.2s三电机速度下降接近0,其后转速就在0附近波动,而定子与转矩还有较大波动。能耗制动2s三结束比自由停车10s才停下来,其工作效率还是高很多。说明该电机的能耗制动还是不错的。从时间来看,它的响应时间也能满足要求。

参考文献

[1]陈伯时.电力拖动自动控制系统(第3版).机械工业出版社.202_. [2]李德华.电力拖动控制系统(运动控制系统).电子工业出版社.202_ [3]裴润,宋申明.自动控制原理(上册).哈尔滨工业大学出版社.202_. [4]黄忠霖.自动控制原理的MATLAB实现.国防工业出版社.202_. [5]曾岳南.无速度传感器矢量控制原理与实践.202_.

[6] 陆文伟.谈异步电动机能耗制动控制线路的设计[J].低压电器, 1987.[7] 康养科.单二极管整流三相异步电动机能耗制动线路的计算[J].机床电器, 1997.[8]李琴兰.笼型电动机能耗制动控制线路的分析与改进[J].天水师范学院学报, 202_.[9]可控硅能耗制动[J].机械工人.冷加工, 1975.[10]王传美, 王泽东.双速电动机应用能耗制动电路[J].机床电器, 1994.[11]芮静康.能耗制动直流供电线路的改进[J].设备维修, 1986.[12]罗德荣, 江岳春, 邓建国.三相异步电动机能耗制动的数值仿真[J].微特电机,202_.

第三篇:基于Matlab的ASK仿真

基于MATLAB的2ASK调制

根据数字带通调制原理,运用MATLAB进行编程,仿真调制过程,记录并分析仿真结果。

形成设计报告。

课程设计需要运用MATLAB编程实现2ASK,2FSK,2PSK,2DPSK调制解调过程,并且输出其调制后的波形,画出频谱、功率谱密度图,并比较各种调制的误码率情况,讨论其调制效果。

二进制数字调制技术原理

数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。通常使用键控法来实现数字调制,比如对载波的振幅、频率和相位进行键控。

2ASK

2ASK信号的产生方法通常有两种:模拟调制和键控法。解调有相干解调和非相干解调。P=1时f(t)=Acoswt;p=0时f(t)=0;其功率谱密度是基带信号功率谱的线性搬移

2.2 数字调制技术的仿真实现

MATLAB是一种功能强大的科学计算和工程仿真软件,它的交互式集成界面能够帮助用户快速的完成数值分析、数字信号处理、仿真建模、和优化等功能。本课程设计需要运用MATLAB编程实现2ASK,2FSK,2PSK,2DPSK调制解调过程,并且输出其调制后的波形,画出频谱、功率谱密度图,并比较各种调制的误码率情况,讨论其调制效果。

3.程序与调试图形 3.1、ASK调制解调 3.1.1 ASK程序: 3.3.2 ASK图形:

close all clear all n=16;fc=1000000;

%fc>=bitRate fc/bitRate为每个二进制包含sin周期个数 bitRate=1000000;N=50;%noise=ti;noise=10;

signal=source(n,N);transmittedSignal=askModu(signal,bitRate,fc,N);signal1=gussian(transmittedSignal,noise);configueSignal=demoASK(signal1,bitRate,fc,n,N);

1.随机信号的产生

2.ASK信号调制

3.信道加噪声后信号

4.接收信号的解调

5.解调出的二进制信号

3.4、误码率分析

1.ASK误码率分析

ASK clear all close all i=10;j=5000;

t=linspace(0,5,j);%取0,0.001,0.002。。5 共5001个点

fc=10;fm=i/5;B=2*fc;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生基带信号

a=round(rand(1,i));%随机序列

figure(2)

plot(rand(1,i))st=t;for n=1:10

if a(n)<1;

for m=j/i*(n-1)+1:j/i*n

%一个信号取500个点

st(m)=0;

end

else

for m=j/i*(n-1)+1:j/i*n

st(m)=1;

end

end end figure(1);subplot(421);plot(t,st);axis([0,5,-1,2]);title('基带信号');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波

s1=cos(2*pi*fc*t);subplot(422);

plot(s1);title('载波信号');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制

e_2ask=st.*s1;subplot(423);plot(t,e_2ask);title('已调信号');noise =rand(1,j);

e_2ask=e_2ask+noise;%加入噪声

subplot(424);plot(t,e_2ask);

title('加入噪声的信号');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调

at=e_2ask.*cos(2*pi*fc*t);at=at-mean(at);subplot(425);plot(t,at);

title('相乘后信号');

[f,af] = T2F(t,at);%通过低通滤波器

[t,at] = lpf(f,af,2*fm);subplot(426);

plot(t,at);

title('解调后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决

for m=0:i-1;

if at(1,m*500+250)+0.5<0.5;

for j=m*500+1:(m+1)*500;

at(1,j)=0;

end else

for j=m*500+1:(m+1)*500;

at(1,j)=1;

end end end subplot(427);plot(t,at);axis([0,5,-1,2]);title('抽样判决后波形')

第四篇:基于matlab的语音信号滤波处理——数字信号处理课程设计

数字信号处理课程设计

题目: 学院: 专业: 班级: 学号: 姓名: 指导教师:

基于matlab的语音信号滤波处理

物理与电子信息学院电子信息工程

摘要:

语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。

Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境!

本设计要求自己录制一段自己的语音后,在MATLAB软件中采集语音信号、回放语音信号并画出语音信号的时域波形和频谱图。再在Matlab中分别设计不同形式的FIR数字滤波器。之后对采集的语音信号经过不同的滤波器(低通、高通、带通)后,观察不同的波形,并进行时域和频谱的分析。对比处理前后的时域图和频谱图,分析各种滤波器对于语音信号的影响。最后分别收听进行滤波后的语音信号效果,做到了解在怎么样的情况下该用怎么样的滤波器。

目录

1.设计内容……………………………………………………………4 2.设计原理……………………………………………………………4 2.1语音信号的时域分析…………………………………………4 2.2语音信号的频域分析…………………………………………5 3.设计过程……………………………………………………………5 3.1实验程序源代码………………………………………………6

3.1.1原语音信号时域、频域图………………………………6

3.1.2低通滤波器的设计………………………………………6

3.1.3高通滤波器的设计………………………………………7

3.1.4带通滤波器的设计………………………………………8

3.1.5语音信号的回放………………………………………9 3.2调试结果描述…………………………………………………10 3.3所遇问题及结果分析…………………………………………15

3.3.1所遇主要问题…………………………………………16

3.3.2结果分析………………………………………………16 4.体会与收获…………………………………………………………17 5.参考文献……………………………………………………………17

1.设计内容:

1.首先录制好一段自己的语音。

2.用Matlab分别设计好3种类型的滤波器(指标自己确定):低通型、高通型、带通型。3.用Matlab将语音信号进行采样,并分别将其通过所设计的3种滤波器。4.用Matlab自带的语音返回函数收听滤波后的语音信号,分析并比较其与原语音信号的差异。

2.设计原理:

语音信号时一种非平稳的时变信号,它带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在于方便有效的提取并表示语音信号所携带的信息。语音信号处理可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,崎岖的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。2.1语音信号的时域分析

信号提取:通过图形用户界面上的菜单功能按键采集电脑上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。

信号调整:在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。

2.2语音信号的频域分析

信号的傅里叶表示在信号的分析和处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅里叶分析方法能完善地解决许多信号分析和处理问题。另外,傅里叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。

由于语音信号时随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。输出频谱是声道系统频率响应与激励源频谱的乘积。身份到系统的频率响应及激励源都是随时间变化的,因此一般标准的傅里叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。

1.信号变换:在用户图形界面西啊对采集的语音信号进行Fourier等变换,并画出变换前后的频谱图和倒谱图。

2.信号滤波:滤除语音信号中的噪音部分,可以采用抵用滤波、高通滤波、带通滤波,并比较各种滤波后的效果。

3.设计过程:

3.1实验程序源代码(原语音信号存放在e:下):

3.1.1.原语音信号的时域、频域图

[x1,fs,bits]=wavread('e:txwz.wav');%sound(x1,fs,bits);figure(1);

plot(x1);%做原始语音信号的时域图形 title('原始语音信号');xlabel('时间 t');ylabel('音量 n');figure(2);y1=fft(x1);%做length(x1)点的FFT y1=fftshift(y1);%平移,是频率中心为0 derta_fs = fs/length(x1);%设置频谱的间隔,分辨率 plot([-fs/2:derta_fs: fs/2-derta_fs],abs(y1));%画出原始语音信号的频谱图

title('原始语音信号的频谱');grid on;3.1.2低通滤波器的设计

%低通滤波:截止频率4000,阻带衰减20dB,过渡带宽0.1π

fc1=4000;N1=2*pi*0.9/(0.1*pi)wc1=2*pi*fc1/fs;if rem(N1,2)==0 N1=N1+1;end Window= boxcar(N1+1);%长度为N1的矩形窗Window b1=fir1(N1,wc1/pi,Window);

figure(3);freqz(b1,1,512);title('低通滤波器的频率响应');x1_low = filter(b1,1,x1);%对信号进行低通滤波 figure(4);plot(x1_low);title('信号经过低通滤波器(时域)');figure(5);plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(fft(x1_low))));title('信号经过低通滤波器(频域)');3.1.3高通滤波器的设计

%高通滤波:截止频率4000,阻带衰减40dB,过渡带宽0.1π

fc2=4000;N2=2*pi*3.1/(0.1*pi)wc2=2*pi*fc1/fs;N2=N2+mod(N2,2);Window=hanning(N2+1);b2=fir1(N2,wc2/pi,'high',Window);figure(6);freqz(b2,1,512);%数字滤波器频率响应 title('高通滤波器的频率响应');

x1_high = filter(b2,1,x1);%对信号进行高通滤波 figure(7);plot(x1_high);title('信号经过高通滤波器(时域)');figure(8);plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(fft(x1_high))));title('信号经过高通滤波器(频域)')3.1.4带通滤波器的设计

%带通滤波:下截止频率4000,上截止频率8000,阻带衰减20dB,过渡带宽度0.1π

f1=4000;f2=8000;%带通滤波器的通带范围 w1=2*pi*f1/fs;w3=w1+0.1*pi;w2=2*pi*f2/fs;w4=w2-0.1*pi;w=[(w1+w3)/2,(w2+w4)/2];B=0.1*pi;N3=ceil(2*0.9*pi/B);N3=N3+mod(N3,2);Window=boxcar(N3+1);b3=fir1(N3,w/pi,'stop',Window);%带通滤波器

figure(9);freqz(b3,1,512);%数字滤波器频率响应 title('带通滤波器的频率响应');x1_daitong = filter(b3,1,x1);%对信号进行带通滤波 figure(10);plot(x1_daitong);title('信号经过带通滤波器(时域)');figure(11);plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(fft(x1_daitong))));title('信号经过带通滤波器(频域)');3.1.5语音信号的回放(分别执行)

sound(x1,fs,bits);%原始信号

sound(x1_low,fs,bits);%经过低通滤 sound(x1_high,fs,bits);%经过高通滤波 sound(x1_daitong,fs,bits);%经过带通滤波

3.2调试结果描述

原始语音信号的时域图形:

原始语音信号频谱:

低通滤波器的频率响应:

信号经过低通滤波后的时域波形:

信号经过低通滤波后的频域波形

高通滤波器的频率响应:

信号经过高通滤波后的时域波形:

信号经过高通滤波后的频域波形:

带通滤波器的频率响应:

信号经过带通滤波后的时域波形:

信号经过带通滤波后的频域波形:

3.3所遇问题及结果分析

3.3.1所遇主要问题

1.在高通与带通滤波器的设计时老是报错,但同样的用法在低通滤波器中就可以实现

b2=fir1(N2,wc2/pi,'high',Window);??? Error using ==> fir1 The window length must be the same as the filter length.其要求在fir函数中所选用的窗长要和滤波器长度一致。但在参考书上指出,滤波器阶数必须为窗长加1。经上网查询后,原来高通、带阻滤波器的阶数应该控制为奇数,因为如果阶数为偶数,则在π点必有一零点,这对于高通带阻来说是不允许的,故取阶数为奇数,而你FIR1滤波器阶数为M+1阶,所以你的M必须为偶数,所以可以将程序中去窗长算法由原程序的: N2=2*pi*0.9/(0.1*pi);if rem(N2,2)==0 N2=N2+1;End 和: N3=2*pi*0.9/(0.1*pi);if rem(N3,2)==0 N3=N3+1;End 改为了:

N2=N2+mod(N2,2);和: B=0.1*pi;(B为过渡带宽)N3=ceil(2*0.9*pi/B);N3=N3+mod(N3,2);2.在设计高通滤波器时先是使用的矩形窗,用矩形窗验证出来的结果中低频语音分量依旧很强,不能将其全部抑制在0,之后换窗,选着了最小衰减可以到达53dB的海明窗,再次试验,非常成功!3.3.2结果分析

经过回放三个不同类型滤波器输出的语音信号,并与原语音信号对比得到了如下结论。

语音高频成分音质非常尖锐,齿音中,声音有些暗淡。语音低频成分音质沉稳,空间感觉强,语音浑厚。语音中频成分音质有力度,有通透感。

4.体会与收获

以往都是通过课本来感性的认知语音信号,通过本次的课程设计,让我对语音信号有了一个较为实际的认识。于此同时,让我再次把数字信号处理及数字滤波器的设计方法重新进行了复习和学习。而对于Matlab,也再次让我感受到了其功能的强大。最为重要的是,本次课 17

程设计让我重新审视了学习的过程:只去做实验是不行的,首先还是要思考,遇到了问题查书籍,百度搜索也只是一种手段,更加重要的是想,再理解,只有这样才能真正的做好实验。

5.参考文献

《数字信号处理》钱同惠、百度文库

第五篇:MATLAB作业

第一章 MATLAB R2010a简介

主要内容总结如下:

本章主要介绍了MATLAB的功能和它的用户界面以及MATLAB R2010a的路径搜索。MATLAB的功能是多种多样的,有数学计算功能、图形化显示功能、M语言编程功能、编译功能Simulink建模仿真功能,自动代码生成功能,图形用户界面开发功能等一系列功。在介绍MATLAB R2010a用户界面时,主要介绍了它的启动方法,主菜单及其功能。学习心得体会:

通过本章的学习,我了解了MATLAB的基本功能,认识了它的界面和启动方法,以及主菜单功能,被他强大的计算功能和其他功能深深吸引,学会了MATLAB,将会为我以后学习其他方面的知识提供一种工具,使学习其他的东西更加的方便。我非常喜欢这门课,所以我一定会努力学好它的。

第二章 基本使用方法

主要内容总结如下:

本章主要介绍了MATLAB中一些简单的数学运算和常用的数学函数和数学运算符,标点符号的使用,常用的操作命令和快捷键,整数、浮点数、复数、逻辑变量等数据类型和他们之间的转换,数据类型操作函数和变量,MATLAB中的关系运算符逻辑运算符等运算符和它们的优先级,以及一些基础函数,如位操作函数、逻辑运算函数、集合函数、时间与日期函数。本章还介绍了MATLAB中的脚本文件。

学习心得体会:

通过本章的学习我了解了MATLAB中的简单数学运算符,一些操作命令和快捷键,MATLAB R2010a的数据类型和运算符,还有一些基础函数,脚本文件。我认为这些东西是基本的东西,但是我又必须要学好它们,只有把这些基础都掌握了,才能为以后的学习打下坚实的基础。我认为MATLAB中的许多函数我应该熟练它的作用,做到看到函数要知道其作用。我在这一部分的学习中,脚本文件的编写对我来说有一定的困难,我以后一定多加练习,学好他们。

第三章 数组和向量

主要内容总结如下:

本章主要介绍了数组和向量两个大的方面。其中数组介绍了数组的创建,数组的操作(如获取数组中的元素,从数组中移除元素,数组算术操作,数组逻辑运算数组连接,切片、重排和线性化数组),和一些实例应用;向量部分介绍了向量的创建,尺寸,索引(包括数值索引、逻辑索引),缩短,向量操作(包括算术操作、逻辑操作、应用库函数、连接、切片)等知识。学习心得体会:

通过本章的学习我对数组和向量有了一个全新的认识,这部分的学习有许多细节需要注意,如我们在从数组中移除元素时,元素必须整列整行的移除;行向量可以直接输入,列向量输入时中间需要用到分号;.*,./,和.^被分别用作逐个元素相乘,相除,及指数运算等等。还有一些函数如zeros,rand,diag,magic等都可以产生一些常用的数组,学习时应该熟练掌握。向量的索引对我来说是比较难的知识,刚开始学的时候不太理解,不过后来经过我反复的学习逐渐了解,这部分知识我还需要努力。向量和数组这部分知识在以后的几章会经常用到,并且和实际联系的也比较紧密,所以我必须要学好他们。

第四章MATLAB 的数学运算 本章主要内容总结如下:

本章主要介绍了多项式与差值,函数运算,微分方程三大模块。其中多项式与插值主要介绍了多项式的四则运算,roots函数,polyval函数,polyder函数,多项式拟合,以及数据插值;函数运算主要介绍了函数图像的绘制,函数的极值,数值积分和含参数函数的使用;微分积分主要介绍了常微分初值问题和常微分方程边值问题。

学习心得体会:

通过本章的学习掌握了在MATLAB中对多项式的处理,和图形的绘制,极值的求解,函数的求解,微分、积分的处理。本章所介绍的MATLAB处理方法处理的是高等数学中经常遇到的问题,从这里可以知道MATLAB是一种很好的数学工具。本章学习时有许多问题需要注意,如多项式在相加时要等长;绘制函数图像的函数为fplot;使用含参数函数还可以通过匿名函数来实现,函数的参数在使用之前必须先赋值等问题。这一部分也介绍了许许多多的函数,我应该在课下熟练掌握,充分理解其作用。

第五章 字符串、单元数组和结构体

本章主要内容总结如下:

本章主要介绍了的字符串生成、执行、字符串与数值之间的转化;单元数组的生成和一些操作;结构体的生成和一些操作。在MATLAB中,生成字符串的简单方法为stringname=’the content of the string’.;单元数组可以通过赋值语句直接创建,也可以利用cell函数先为单元数组分配一个内存空间,然后再给各个单元赋值;结构体的生成可以是直接输入,也可以使用结构体生成函数struct。还介绍了字符串的比较,字符串的查找和替换;单元数组的显示和图形显示和单元数组元素的删除;结构体中有添加成员变量,删除成员变量和调用成员变量。学习心得体会:

通过本章的学习了解了字符串,单元数组,结构体的一些基本的使用技巧,学会了字符串,单元数组,结构体的创建,以及它们的一些特殊的用途,如利用函数来进行字符串与数值之间的转化,单元数组的图形显示,在结构体中添加成员变量。字符串,单元数组和结构体是三种特殊的数据结构,字符串用于对字符型数据结构进行操作,单元数组和结构体数据类型允许用户将不同类型的数据集成为一个单一的变量,因此,相关的数据可以通过一个单元数组或是结构体进行组织和操作。在这一部分的学习中,感觉比较有意思,所以对这部分知识兴趣很高。觉的这一部分知识很是有用,所以应该好好学习。

第六章 MATLAB编程

本章主要内容总结如下:

本章主要介绍了MATLAB的脚本文件和编辑器/调试器,程序设计和开发,关系运算符和逻辑变量,逻辑运算符和函数,条件语句,和循环。其中脚本文件和编辑器主要介绍了脚本文件如何创建和使用,以及它的命令窗口的介绍,脚本文件的调试,如何使用脚本文件存储数据,以及如何控制输入和输出;程序设计和开发主要介绍了算法和控制结构,结构化程序设计以及伪代码;关系运算符和逻辑变量主要介绍了logical类,logical函数以及使用逻辑数组访问数组;逻辑运算符和函数主要介绍了一些如与、或、非等逻辑运算符以及它,们的优先级别和使用方法,还介绍了短路逻辑运算符,find函数;条件语句主要介绍了if语句,elseif语句和它们的使用方法,还简要介绍了如何输入和输出参数的数量;循环主要介绍了for循环,break和continue语句,使用数组作为循环索引,隐含循环,使用逻辑数组作为掩码等知识。学习心得体会:

通过本章的学习初步掌握了MATLAB的脚本文件及其编辑和调试方法,掌握了MATLAB的程序设计和开发流程,和MATLAB的关系运算符、逻辑运算及函数操作,MATLAB中的流程控制语句包括if语句,switch语句,contine语句。本章的脚本文件对今后的学习非常有帮助,条件语句和循环语句可用于解决实际生活中许多问题。我对这一部分的认识是:感觉不是太难,又不会的地方也及时请教老师,所以没有遗留太多疑问。再者,大一时也学过条件语句和循环语句,所以学起来没有那么的吃力。习题如下:

编程:求[100]以内的全部素数(素数是大于1且除了1和它本身以外不能被其他任何整数所整除的整数。为了判断整数m是否为素数,一个最简单的办法用2,3,4,5, m-1这些数逐个去除m看能否除尽,如果全都除不尽,则m是素数;否则,只要其中一个能除尽,则m不是素数。)

程序如下: disp(2)for m=3:1:100 for x=2:1:m-1 if rem(m,x)==0 break

elseif(x>=m-1)disp(m)end

end end

第七章 MATLAB的符号处理

本章主要内容总结如下:

本章主要介绍了符号运算的简介,符号表达式的化简与替换,符号函数图形的绘制,符号微积分,符号方程的求解,符号积分变换,MAPLE函数的调用,符号函数计算器。其中符号运算简介主要介绍了符号对象,符号变量、表达式的生成,以及findsym函数和subs函数,符号和数值之间的转化;符号表达式的化简与替换主要介绍了用collect函数合并同类项,用expand函数进行符号表达式的展开,用horner函数将函数转化为嵌套格式,用factor函数来实现因式分解的功能,simplify和simple函数来实现表达式的化简,符号表达式的替换可以用subexpr和subs函数;符号函数图形绘制主要介绍了符号函数曲线的绘制,符号函数曲面网格图及表面图的绘制和等值线的绘制;符号微积分主要介绍了符号表达式求极限,符号微分、积分,级数求和和Taylor级数;符号方程的求解主要包括代数方程的求解,代数方程组的求解,微分方程的求解,微分方程组的求解等;符号积分变换主要有符号傅立叶变换,符号拉普拉斯变换,符号Z变换。学习心得体会: 通过本章的学习了解了MATLAB符号计算的几个功能,有计算、线性代数、化简、方程求解、特殊的数学函数、符号积分变换,MATLAB提供了与MAPLE的良好接口,通过maple.m和map.m实现。这样,MATLAB可以实现更强大的符号运算功能功能,为习惯于MAPLE的用户提供了方便。本章的学习让我领会了MATLAB强大的符号功能,能够很好的解决实际生活中问题。

第八章 MATLAB绘图

本章主要内容总结如下:

本章主要介绍了MATLAB的绘图功能,首先介绍了MATLAB的图形窗口,包括图形窗口的创建与控制,图形窗口的菜单栏的主要功能;然后介绍了基本图形的绘制,有二维图形的绘制,三维图形的绘制以及如何对图形进行操作;介绍了特殊图形的绘制,有条形图、面积图、饼状图、离散型数据图、方向矢量图和速度矢量图、等值线绘制,还介绍了在图形中添加基本注释,包括文本框,线条,箭头,框图,标题,坐标轴,颜色条,图例;最后介绍了一些三维图像的高级控制。学习心得体会:

通过本章的学习了解了MATLAB的图形窗口,掌握了MATLAB基本二维图形、三维图形的绘制,以及图形的基本操作,掌握了MATLAB特殊图形的绘制,如柱状图,饼状图,掌握了图形注释的添加及管理,了解了三维图形的视点控制及颜色、光照控制。本章的学习和实际生活联系的非常紧密,把抽象的数学式子转化为易理解的图形,给人一目了然的清晰感觉。这部分知识是一个很好的绘图工具,对解决其他学科的问题很有帮助。我在学习这一部分知识时,上课紧跟着老师的思路走,模块很是清晰,学习兴趣极高,但是仍存在许多不足的地方,课下一定再进一步努力学习。习题如下:

绘图:在同一图像窗口中绘制六副子图

1.在第一个子图中同时绘制不同线型不同颜色的正弦和余弦曲线,添加图例、坐标轴、标题、网格线和边框线。2.在第二个子图中绘制磁盘空间的饼图。3.在第三个子图中绘制三维网格图(surf)。4.在第四个子图中绘制三维曲面图(mesh)。

5.在第五—六个子图中同时绘制二维正弦离散图和红色点划线余弦阶跃图。

程序如下:

>> x=[0:pi/10:2*pi];subplot(3,2,1);plot(x,sin(x));hold on;plot(x,cos(x),'r-.');grid on box on >> m=[8 17];>> subplot(3,2,2);>> pie(m,{'可用空间','已用空间'});>> t=0:pi/50:10*pi;>> subplot(3,2,3),plot3(sin(t),cos(t),t);>> grid on >> axis square >> X=-1:0.1:1;>> Y=X';>> X1=X.^2;>> Y1=Y.^2;>> p=ones(3,1);>> p=ones(length(X),1);>> q=ones(1,length(Y));>> X1=p*X1;>> Y1=Y1*q;>> Z=X1+Y1;>> subplot(3,2,4)>> mesh(X,Y,Z)>> n=[0:10:360]*pi/180;>> N=sin(n);>> subplot(3,2,5),stem(n,N)>> subplot(3,2,6),stairs(n,N,'r-.');

运行结果如下:

第九章 句柄图形

本章主要内容总结如下:

本章主要介绍了MATLAB 的图形对象,图形对象的属性,和图形对象的属性值的设置和查询。MATLAB介绍了Root对象,Figure对象,Core对象,Plot对象,Annotation对象,Group对象;图形对象的属性包括公共属性和特有属性;图形对象属性值的设置和查询首先通过构造函数返回其创建的对象句柄,然后利用该句柄,用户可以在对象创建完成后对其属性值进行查询和修改。学习心得体会:

通过本章的学习了解MATLAB图形对象及其属性,掌握MATLAB图形对象属性的设置及其查询,掌握了MATLAB图形句柄的访问及其操作。句柄图形是MATLAB中用于创建图形的面向对象的图形系统。通过图形句柄,MATLAB可以对图形元素进行操作,而这些图形正是产生各种类型图形的基础。利用图形句柄,可以在MATLAB中修改图形的显示效果,创建绘图函数。对于这部分知识的学习有所欠缺,课下应该多加练习。

第十章GUI设计

本章主要内容总结如下:

本章主要介绍了GUI的基本控件,如何创建简单的GUI,如何向界面中添加控件以及如何设置设置控件的属性和编写响应函数;本章还介绍了通过向导创建GUI界面和通过程序创建GUI,其中通过向导创建包括1,启动GUIDE2,2,向GUI中添加控件并设置控件标志和控件显示文本,3,创建菜单;通过程序创建GUI的步骤主要包括1,需要实现的功能及需要包含的控件2,需要使用的技术3,创建GUI,4,创建GUI界面和控件,5,初始化GUI,6,定义响应函数,7,该GUI的完整M文件;本章还介绍了如何编写GUI代码,包括GUI文件和响应函数。学习心得体会:

通过本章的学习掌握了图形用户界面和GUI中所包含的多个图形对象,如窗口、图标、菜单和文本的用户界面。以某种方式选择或激活这些对象,通常引起动作或发生变化。了解GUI的基本控件,掌握了通过GUIDE创建GUI的方法,也掌握了通过程序创建GUI的方法。对于本章的知识我是比较陌生的,以前从来没有接触过,所以刚开始学的时候比较吃力,后来经过老师的讲解,和自己在课下的学习,对这部分知识有了一个系统的了解。做作业时,刚开始时,程序运行出错,后来经过反复修改,终于运行成功,看着自己的GUI成功运行,心中是比较兴奋的,课下一定会多加练习的。习题如下:

GUI:绘制抛物线y=ax2+bx+c的图像,其中参数a、b、c及标题等由界面文本编辑框输入,设计边框线按钮和边框菜单。M文件程序如下:

function varargout = untitled(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @untitled_OpeningFcn,...'gui_OutputFcn', @untitled_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});end

if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else

gui_mainfcn(gui_State, varargin{:});end

function untitled_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);function varargout = untitled_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;function go_Callback(hObject, eventdata, handles)grid on function tit_Callback(hObject, eventdata, handles)title('¶þ´ÎÇúÏßy=a*x.^2+b*x+c')function ax_Callback(hObject, eventdata, handles)axis([-7 7-10 10])function gf_Callback(hObject, eventdata, handles)grid off

function togglebutton5_Callback(hObject, eventdata, handles)function op_Callback(hObject, eventdata, handles)box on box off

function bo_Callback(hObject, eventdata, handles)box on

function bf_Callback(hObject, eventdata, handles)box off

function pushbutton2_Callback(hObject, eventdata, handles)function edit1_Callback(hObject, eventdata, handles)x=str2num(get(handles.edit1,'string'));t=-10:.001:10;y=x(1)*t.^2+x(2)*t+x(3);plot(t,y)function edit1_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end

运行结果如下:

第十一章 Simulink的建模与仿真

本章主要内容总结如下:

本章主要介绍了Simulink中的建模方法和基本功能模块,首先介绍了Simulink建模的基本操作和基本流程,然后介绍了Simulink的各,功能模块和常见Simulink模型,最后介绍S函数,并通过实例建模以使读者对Simulink有进一步的认识。学习心得体会:

通过本章的学习了解了Simulink的建模方法和基本模块,这一部分知识对我来说完全是新的内容,学起来有点吃力,所以应该多花点时间在这部分。这部分知识和专业联系的比较紧密,专业性很强,一定要学好。

第十二章 文件和数据的导入与导出

本章主要内容总结如下:

本章主要介绍了文件的存储,数据的导入,文件的打开,文本文件的读写,低级文件I/O和利用界面工具导入数据。文本文件的读写可以用csvread,csvwrite,dlmread,dlmwrite,textread,textscan等函数来实现。学习心得体会:

通过本章的学习了解了MATLAB的基本数据操作,掌握了MATLAB中文本文件的读写方式和MATLAB通过界面导入导出数据,了解MATLAB中的基本输入输出函数,这部分知识要深入了解,达到融会贯通的程度。

《信号处理matlab仿真》大作业
TOP