版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、matlab 在信号系统课程中的应用 第 0 页 目录目录 第一章第一章 绪论绪论.3.3 第二章第二章 程序设计实现思路及步骤程序设计实现思路及步骤.4.4 第三章第三章 程序运行结果程序运行结果. . . .7 7 第四章第四章 程序设计心得程序设计心得.12.12 第五章第五章 附录附录.14.14 matlab 第 1 页 第一章第一章 绪论绪论 matlab 提供了一个信号处理工具(signl processing toolbox) ,它基于 matlab 树 枝计算环境,提供了数字信号处理的各种操作,其内容涉及了从波形产生到滤波器设计和 参量建模以及信号谱分析的范围,核心领域为滤波
2、器设计和频谱分析。工具箱除去提供了 用于信号处理的命令函数外,还提供了一组基于 cpu 开发的借口工具。 数字信号处理的基本内容分为两部分: (1) 、离散时间信号与系统分析 这部分主要涉及的内容是,离散时间信号与系统的时域、频域表示,以及信号通过系 统的时域、频域分析及其变换域分析。matlab 数据库中提供了与之相对应的函数,一些 主要的函数如下所列: filter 提供对数字序列进行滤波的功能; conv 实现一维信号之间的卷积运算; convmtx 构造系统或信号的卷积矩阵; fft、ifft 利用快速傅立叶算法计算序列的离散傅叶变换和反变换; freqz 基于 fft 算法计算数字滤
3、波器的频率响应; impz 求解数字滤波器的单位冲击响应; zplane 系统函数的零点分析; (2) 、数字滤波器设计和频谱分析 数字滤波器设计和频谱分析是数字信号处理的两个主要应用。数字滤波器设计包括了 无限冲击响应(iir)和有限冲击响应(fir)滤波器设计,在这一方面,matlab 的这一 工具库提供了极为丰富的设计工具。频谱分析又可进一步分为线性频谱分析和非线性频谱 分析。其中,线性频谱分析的理论基础为傅立叶变换,因此所使用的 matlab 函数主要 为 fft,ifft,此外,工具箱中还给出了各种窗函数。对于非线性频谱分析,matlab 也提供 了多种成熟算法的相应函数。 matl
4、ab 在信号系统课程中的应用 第 2 页 第二章第二章 程序设计实现思路及步骤程序设计实现思路及步骤 一、程序设计要求一、程序设计要求 1 设计的程序要关于 matlab 在某课程中的应用,如信号与系统、电路、高等数学等。 2在大体完成程序的主体设计后,须进行程序界面的设计,在设计的界面实现程序的绘 图、动画等功能,即将 matlab 程序设计与 gui 相结合。 二、程序设计基本思路二、程序设计基本思路 根据上述要求,本人立足设计 matlab 在信号处理方面的应用,具体是信号的滤波操 作。首先,将程序分成带通滤波部分,低通滤波部分和高通滤波部分三部分进行模块化设 计,这样设计有利于编程过程
5、中对程序的调试,更主要的是方便最后界面设计过程中对各 个对话框的控件,如:按钮(push button)等与程序相应部分的进行对接。特别是控件的 callback 属性设置;然后,分模块进行检查以保证各部分的代码运行正常;最后是在 matlab 提供的图形用户界面(gui)开发环境下,将程序串接在同一界面上,完成程序 的界面设计。 三、程序组织结构图三、程序组织结构图 界面设计 带通滤波高通滤波低通滤波 引入连续的信号 四、程序实现步骤:四、程序实现步骤: 1.程序各部分代码程序各部分代码 连续信号频域波形设计连续信号频域波形设计 t=(1:100)/1000; matlab 第 3 页 s=
6、sin(2*pi*t*50)+sin(2*pi*t*(50+100)+sin(2*pi*t*(50+200); s=fft(s,512);w=(0:255)/256*500; plot(w,abs(s(1:256),y); xlabel(hz);ylabel(频率响应幅度); grid; title(连续信号频域波形); 带通滤波器部分带通滤波器部分 n=8;wn=100 200/500; b,a=butter(n,wn); h,w=freqz(b,a,512,1000); plot(w*1000/(2*pi),abs(h),b-); xlabel(hz);ylabel(频率响应幅度); ti
7、tle(带通滤波器);grid; 高通滤波部分高通滤波部分 b,a=butter(8,100/500); h,w=freqz(b,a,512,1000); plot(w*1000/(2*pi),abs(h),r*); xlabel(hz);ylabel(频率响应幅度); title(高通滤波器);grid; 低通滤波部分低通滤波部分 b,a=butter(8,200/500,high); h,w=freqz(b,a,512,1000); plot(w*1000/(2*pi),abs(h),k-); xlabel(hz);ylabel(频率响应幅度); title(低通滤波器);grid; 2.
8、2.程序界面设计部分程序界面设计部分 “文件文件”菜单项下菜单项下“打开打开”的子菜单项功能的实现部分的子菜单项功能的实现部分 filename, pathname = uigetfile(*.doc;*.ppt;*.xls;*.*,选择打开的文 件); file=fullfile(pathname,filename); open(file)程序运行结果 “文件文件”菜单项下菜单项下“另存为另存为”的子菜单项功能的实现部分的子菜单项功能的实现部分 p = rand(1,10); q = ones(10); fn,pn,fid=uiputfile(*.mat,matlab date(*.mat)
9、,save as,*.mat); fn=pn,fn; matlab 在信号系统课程中的应用 第 4 页 if fid=0 save(fn,p,q) end 退出系统开关控制部分退出系统开关控制部分 answer=questdlg(你真的要推出系统吗? ); if answer=yes; close end 点击点击“帮助帮助”菜单下的子菜单项菜单下的子菜单项“版本信息版本信息”弹出对话框部分设计弹出对话框部分设计 questdlg(此为09年系统第一版,版权归07通信一班 黄朕同学所有,版本信息,确定 ,default) 点击点击“帮助帮助”菜单下的子菜单项菜单下的子菜单项“系统自述系统自述”
10、弹出弹出word形式的自述文件部分设计形式的自述文件部分设计 open(系统自述.doc); matlab 第 5 页 第三章第三章 程序运行结果程序运行结果 1.1.程序运行的初始界面程序运行的初始界面 2.2.点击菜单项点击菜单项“文件文件”下的子菜单项下的子菜单项“打开打开”后,程序的界面后,程序的界面 matlab 在信号系统课程中的应用 第 6 页 3.3.点击菜单项点击菜单项“文件文件”下的子菜单项下的子菜单项“另存为另存为”后,程序的界面后,程序的界面 4 4、点击菜单项、点击菜单项“退出退出”后的界面后的界面 matlab 第 7 页 5 5、点击菜单项、点击菜单项“帮助帮助”
11、下的子菜单项下的子菜单项“版本信息版本信息”后,程序的界面后,程序的界面 6.6.点击按钮点击按钮“输入连续信号输入连续信号”后的程序界面后的程序界面 matlab 在信号系统课程中的应用 第 8 页 7.7.右键波形线条的某一点,在随后出现的对话框中选择右键波形线条的某一点,在随后出现的对话框中选择“颜色颜色”为为 红后,程序的运行界面(其它选项的效果在这里就不作详细介绍了,红后,程序的运行界面(其它选项的效果在这里就不作详细介绍了, 待大家去尝试)待大家去尝试) 8 8、点击按钮点击按钮“带通滤波器带通滤波器”后的程序界面后的程序界面 matlab 第 9 页 9.9. 点击按钮点击按钮“
12、高通滤波器高通滤波器”后的程序界面后的程序界面 10.10. 点击按钮点击按钮“低通滤波器低通滤波器”后的程序界面后的程序界面 课 matlab 在信号系统课程中的应用 第 10 页 第四章第四章 程设计心得程设计心得 一、知识心得一、知识心得 1.通过这次 matlab 大作业是对 matlab 很好的一次复习。许多知识点比如,matlab 中 函数的定义,matlab 中绘图等在这次大作业都得到了很好的复习。 2.通过 matlab 的这次大作业,还掌握了一些以前重未接触过的 matlab 的知识,例如, matlab 中几个常见的对话框(问题提示对话框 questdlg、信息提示对话框
13、msgbox 等) ,matlab 中文件的打开 word 文档,ppt 文件的操作。下面就具体介绍 一下 matlab 中打开 word 文档,ppt 文件这些文件操作: 其实,要实现上述功能有两种方法。 方方 法法 一一、 通过 uigetfile 命令获取文件路径,然后使用 open 函数使用以 windows 默认的方式 打开对应的应用程序,比如 doc 默认以 word 打开 filename,pathname=uigetfile(*.doc;*.ppt;*.xls;*.*, file selector); file=fullfile(pathname,filename); open
14、(file) 这个方法好处是可以在这个方法好处是可以在 matlab 中打开任意路径下的文件。中打开任意路径下的文件。 方法二、方法二、 直接使用 open 函数以 windows 默认的方式打开文档 即 open(“文件名”) 这个方法有其明显的缺陷,那就是只能在这个方法有其明显的缺陷,那就是只能在 matlab 程序运行的路径下才能打开所指程序运行的路径下才能打开所指 定的文件定的文件 matlab 第 11 页 二、体会二、体会 (1) 、这是我自己独立完成的设计。虽然各个波形的设计都参考了网络上的已有的相关范 本,但总体来说是自己完成的。 (2) 、对滤波的效果,我也还感觉满意。在我设
15、计的三中滤波器中,高通、低通和带通分 别对应不同的频段,滤波的结果都与之相吻合。 我认为这次设计也存在不足之处:我认为这次设计也存在不足之处: (1) 、不能改变信号的频率。无论是输入信号还是输出信号,或者是滤波器,频率都是固 定的,没有设置频率更改按钮。 (2) 、虽然实现了菜单项中的“另存为”的子菜单项的功能,但实际效果不好,仍不能很 好保存系统运行产生的数据。 (3) 、在实现程序改变图形线条的颜色,粗细和虚实的功能时所采用的方法过于繁琐。 matlab 在信号系统课程中的应用 第 12 页 第五章第五章 附录附录 function varargout = an1(varargin) %
16、an1 m-file for an1.fig % an1, by itself, creates a new an1 or raises the existing % singleton*. % % h = an1 returns the handle to a new an1 or the handle to % the existing singleton*. % % an1(property,value,.) creates a new an1 using the % given property value pairs. unrecognized properties are pass
17、ed via % varargin to an1_openingfcn. this calling syntax produces a % warning when there is an existing singleton*. % % an1(callback) and an1(callback,hobject,.) call the % local function named callback in an1.m with the given input % arguments. % % *see gui options on guides tools menu. choose gui
18、allows only one % instance to run (singleton). % % see also: guide, guidata, guihandles % edit the above text to modify the response to help an1 % last modified by guide v2.5 22-jun-2009 00:59:25 % begin initialization code - do not edit gui_singleton = 1; gui_state = struct(gui_name, mfilename, . g
19、ui_singleton, gui_singleton, . gui_openingfcn, an1_openingfcn, . gui_outputfcn, an1_outputfcn, . gui_layoutfcn, , . gui_callback, ); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_state, varargin:); matlab 第 13 页 else gui_mainfcn(gui_state, varargin:); end % end initialization code -
20、do not edit % - executes just before an1 is made visible. function an1_openingfcn(hobject, eventdata, handles, varargin) % this function has no output args, see outputfcn. % hobject handle to figure % eventdata reserved - to be defined in a future version of matlab % handles structure with handles a
21、nd user data (see guidata) % varargin unrecognized propertyname/propertyvalue pairs from the % command line (see varargin) % choose default command line output for an1 handles.output = hobject; % update handles structure guidata(hobject, handles); % uiwait makes an1 wait for user response (see uires
22、ume) % uiwait(handles.figure1); % - outputs from this function are returned to the command line. function varargout = an1_outputfcn(hobject, eventdata, handles) % varargout cell array for returning output args (see varargout); % hobject handle to figure % eventdata reserved - to be defined in a futu
23、re version of matlab % handles structure with handles and user data (see guidata) % get default command line output from handles structure n=8;wn=100 200/500; b,a=butter(n,wn); h,w=freqz(b,a,512,1000); % - executes on button press in pushbutton4. function pushbutton4_callback(hobject, eventdata, han
24、dles) % hobject handle to pushbutton4 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) n=8;wn=100 200/500; matlab 在信号系统课程中的应用 第 14 页 b,a=butter(n,wn); h,w=freqz(b,a,512,1000); x1=w*1000/(2*pi); y1=abs(h); hl=pl
25、ot(x1,y1); xlabel(hz);ylabel(频率响应幅度); title(带通滤波器);grid; hc=uicontextmenu;%建立快捷菜单 hls=uimenu(hc,label,线型);%建立菜单项 hlw=uimenu(hc,label,线宽); cm=uimenu(hc,label,颜色); uimenu(hls,label,虚线,callback,set(hl,linestyle,:), ); uimenu(hls,label,实线,callback,set(hl,linestyle,-), ); uimenu(hlw,label,加宽,callback,set
26、(hl,linewidth,3),); uimenu(hlw,label,变细,callback,set(hl,linewidth,0.4),); uimenu(cm, label , 红 , callback , set(hl,color,r), ); uimenu(cm, label , 蓝 , callback , set(hl,color,b), ); uimenu(cm, label , 绿 , callback , set(hl,color,g), ); uimenu(cm, label , 黑 , callback , set(hl,color,k), ); set(hl,uic
27、ontextmenu,hc); % - executes on button press in pushbutton5. function pushbutton5_callback(hobject, eventdata, handles) % hobject handle to pushbutton5 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) b,a=butte
28、r(8,100/500); h,w=freqz(b,a,512,1000); x2=w*1000/(2*pi); y2=abs(h); hla=plot(x2,y2,r); xlabel(hz);ylabel(频率响应幅度); title(高通滤波器);grid; hc=uicontextmenu;%建立快捷菜单 hls=uimenu(hc,label,线型);%建立菜单项 hlw=uimenu(hc,label,线宽); cm=uimenu(hc,label,颜色); matlab 第 15 页 uimenu(hls,label,虚线,callback,set(hla,linestyle,:
29、), ); uimenu(hls,label,实线,callback,set(hla,linestyle,-), ); uimenu(hlw,label,加宽,callback,set(hla,linewidth,3),); uimenu(hlw,label,变细,callback,set(hla,linewidth,0.4),); uimenu(cm, label , 红 , callback , set(hla,color,r), ); uimenu(cm, label , 蓝 , callback , set(hla,color,b), ); uimenu(cm, label , 绿 ,
30、 callback , set(hla,color,g), ); uimenu(cm, label , 黑 , callback , set(hla,color,k), ); set(hla,uicontextmenu,hc); % - executes on button press in pushbutton6. function pushbutton6_callback(hobject, eventdata, handles) % hobject handle to pushbutton6 (see gcbo) % eventdata reserved - to be defined i
31、n a future version of matlab % handles structure with handles and user data (see guidata) b,a=butter(8,200/500,high); h,w=freqz(b,a,512,1000); x3=w*1000/(2*pi); y3=abs(h); hlb=plot(x3,y3,k-); xlabel(hz);ylabel(频率响应幅度); title(低通滤波器);grid; hc=uicontextmenu;%建立快捷菜单 hls=uimenu(hc,label,线型);%建立菜单项 hlw=ui
32、menu(hc,label,线宽); cm=uimenu(hc,label,颜色); uimenu(hls,label,虚线,callback,set(hlb,linestyle,:), ); uimenu(hls,label,实线,callback,set(hlb,linestyle,-), ); uimenu(hlw,label,加宽,callback,set(hlb,linewidth,3),); uimenu(hlw,label,变细,callback,set(hlb,linewidth,0.4),); uimenu(cm, label , 红 , callback , set(hlb
33、,color,r), ); uimenu(cm, label , 蓝 , callback , set(hlb,color,b), matlab 在信号系统课程中的应用 第 16 页 ); uimenu(cm, label , 绿 , callback , set(hlb,color,g), ); uimenu(cm, label , 黑 , callback , set(hlb,color,k), ); set(hlb,uicontextmenu,hc); % - - function openmenuitem_callback(hobject, eventdata, handles) %
34、hobject handle to openmenuitem (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) filename, pathname = uigetfile(*.doc;*.ppt;*.xls;*.*,选择打开的文件); file=fullfile(pathname,filename); open(file) % - - function printme
35、nuitem_callback(hobject, eventdata, handles) % hobject handle to printmenuitem (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % - - function closemenuitem_callback(hobject, eventdata, handles) % hobject handl
36、e to closemenuitem (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % - - function filemenu_callback(hobject, eventdata, handles) % hobject handle to filemenu (see gcbo) % eventdata reserved - to be defined in
37、a future version of matlab % handles structure with handles and user data (see guidata) % - if enable = on, executes on mouse press in 5 pixel border. matlab 第 17 页 % - otherwise, executes on mouse press in 5 pixel border or over pushbutton6. function pushbutton6_buttondownfcn(hobject, eventdata, ha
38、ndles) % hobject handle to pushbutton6 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % - - function untitled_1_callback(hobject, eventdata, handles) % hobject handle to untitled_1 (see gcbo) % eventdata rese
39、rved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % - - function untitled_2_callback(hobject, eventdata, handles) % hobject handle to untitled_2 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles struc
40、ture with handles and user data (see guidata) answer=questdlg(你真的要推出系统吗? ); if answer=yes; close end; % - - function untitled_3_callback(hobject, eventdata, handles) % hobject handle to untitled_3 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with
41、handles and user data (see guidata) % - executes on button press in pushbutton7. function pushbutton7_callback(hobject, eventdata, handles) % hobject handle to pushbutton7 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (se
42、e guidata) t=(1:100)/1000; s=sin(2*pi*t*50)+sin(2*pi*t*(50+100)+sin(2*pi*t*(50+200); matlab 在信号系统课程中的应用 第 18 页 s=fft(s,512); y4=abs(s(1:256); x4=(0:255)/256*500; hlc=plot(x4,y4,y); xlabel(hz);ylabel(频率响应幅度); title(连续信号频域波形);grid; hc=uicontextmenu;%建立快捷菜单 hls=uimenu(hc,label,线型);%建立菜单项 hlw=uimenu(hc,
43、label,线宽); cm=uimenu(hc,label,颜色); % 制作具体菜单项,定义相应的回调 uimenu(hls,label,虚线,callback,set(hlc,linestyle,:), ); uimenu(hls,label,实线,callback,set(hlc,linestyle,-), ); uimenu(hlw,label,加宽,callback,set(hlc,linewidth,3),); uimenu(hlw,label,变细,callback,set(hlc,linewidth,0.4),); uimenu(cm, label , 红 , callback
44、 , set(hlc,color,r), ); uimenu(cm, label , 蓝 , callback , set(hlc,color,b), ); uimenu(cm, label , 绿 , callback , set(hlc,color,g), ); uimenu(cm, label , 黑 , callback , set(hlc,color,k), ); set(hlc,uicontextmenu,hc);%将该快捷菜单和曲线对象联系起来 % - - function untitled_4_callback(hobject, eventdata, handles) % ho
45、bject handle to untitled_4 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) questdlg(此为09年系统第一版,版权归07通信一班 黄朕同学所有,版本信息,确 定,default) % - - function untitled_5_callback(hobject, eventdata, handles) % hobject handl
46、e to untitled_5 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) matlab 第 19 页 open(系统自述.doc); % - - function untitled_6_callback(hobject, eventdata, handles) % hobject handle to untitled_6 (see gcbo) % eventda
47、ta reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % - - function untitled_7_callback(hobject, eventdata, handles) % hobject handle to untitled_7 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handle
48、s structure with handles and user data (see guidata) % - executes on button press in checkbox1. function checkbox1_callback(hobject, eventdata, handles) % hobject handle to checkbox1 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and us
49、er data (see guidata) % hint: get(hobject,value) returns toggle state of checkbox1 % - executes on slider movement. function slider1_callback(hobject, eventdata, handles) % hobject handle to slider1 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure wit
50、h handles and user data (see guidata) % hints: get(hobject,value) returns position of slider % get(hobject,min) and get(hobject,max) to determine range of slider % - executes during object creation, after setting all properties. function slider1_createfcn(hobject, eventdata, handles) % hobject handl
51、e to slider1 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles empty - handles not created until after all createfcns called matlab 在信号系统课程中的应用 第 20 页 % hint: slider controls usually have a light gray background. if isequal(get(hobject,backgroundcolor), get(0,de
52、faultuicontrolbackgroundcolor) set(hobject,backgroundcolor,.9 .9 .9); end % - executes on selection change in listbox2. function listbox2_callback(hobject, eventdata, handles) % hobject handle to listbox2 (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % hints: contents = get(hobject,string) returns listbox2 contents as cel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程防水防潮技术及其安全保障
- 工业安全防护知识与技能培训手册
- 列车长职业发展规划建议
- 海洋经济:海洋资源开发与保护策略
- 中国农村新能源开发路径探索
- 城市垃圾处理与资源回收项目分析报告
- 某大型购物中心改造项目策划书
- 生物纳米材料在医疗技术中的前景
- 先进制造业发展经验与教训案例
- 快手算法工程师面试全攻略
- 2026四川成都市双流区招聘政府雇员14人考试备考题库及答案解析
- 2026年江西电力职业技术学院单招职业技能考试题库带答案详解
- GB/T 26953-2025焊缝无损检测渗透检测验收等级
- 结构化面试答题套路90结构化面试题型及答题套路
- GB/T 24218.1-2009纺织品非织造布试验方法第1部分:单位面积质量的测定
- FZ/T 43008-2012和服绸
- 大型工业园区规划方案
- 初中英语名师工作室工作总结
- 《边坡稳定性分析》课件
- 卫生健康科技计划项目申报书
- 基于性能导航之飞行学院-pbn运行介绍
评论
0/150
提交评论