已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录目录 第一章第一章 绪论绪论.3.3 第二章第二章 程序设计实现思路及步骤程序设计实现思路及步骤.4.4 第三章第三章 程序运行结果程序运行结果. . . .7 7 第四章第四章 程序设计心得程序设计心得.12.12 第五章第五章 附录附录.14.14 第一章第一章 绪论绪论 MATLAB 提供了一个信号处理工具(Signl Processing Toolbox) ,它基于 MATLAB 树 枝计算环境,提供了数字信号处理的各种操作,其内容涉及了从波形产生到滤波器设计和 参量建模以及信号谱分析的范围,核心领域为滤波器设计和频谱分析。工具箱除去提供了 用于信号处理的命令函数外,还提供了一组基于 CPU 开发的借口工具。 数字信号处理的基本内容分为两部分: (1) 、离散时间信号与系统分析 这部分主要涉及的内容是,离散时间信号与系统的时域、频域表示,以及信号通过系 统的时域、频域分析及其变换域分析。MATLAB 数据库中提供了与之相对应的函数,一些 主要的函数如下所列: Filter 提供对数字序列进行滤波的功能; Conv 实现一维信号之间的卷积运算; Convmtx 构造系统或信号的卷积矩阵; Fft、ifft 利用快速傅立叶算法计算序列的离散傅叶变换和反变换; Freqz 基于 FFT 算法计算数字滤波器的频率响应; Impz 求解数字滤波器的单位冲击响应; Zplane 系统函数的零点分析; (2) 、数字滤波器设计和频谱分析 数字滤波器设计和频谱分析是数字信号处理的两个主要应用。数字滤波器设计包括了 无限冲击响应(IIR)和有限冲击响应(FIR)滤波器设计,在这一方面,MATLAB 的这一 工具库提供了极为丰富的设计工具。频谱分析又可进一步分为线性频谱分析和非线性频谱 分析。其中,线性频谱分析的理论基础为傅立叶变换,因此所使用的 MATLAB 函数主要 为 fft,ifft,此外,工具箱中还给出了各种窗函数。对于非线性频谱分析,MATLAB 也提供 了多种成熟算法的相应函数。 第二章第二章 程序程序设计实现设计实现思路及步思路及步骤骤 一、程序设计要求一、程序设计要求 1 设计的程序要关于 MATLAB 在某课程中的应用,如信号与系统、电路、高等数学等。 2在大体完成程序的主体设计后,须进行程序界面的设计,在设计的界面实现程序的绘 图、动画等功能,即将 MATLAB 程序设计与 GUI 相结合。 二、程序设计基本思路二、程序设计基本思路 根据上述要求,本人立足设计 MATLAB 在信号处理方面的应用,具体是信号的滤波操 作。首先,将程序分成带通滤波部分,低通滤波部分和高通滤波部分三部分进行模块化设 计,这样设计有利于编程过程中对程序的调试,更主要的是方便最后界面设计过程中对各 个对话框的控件,如:按钮(Push Button)等与程序相应部分的进行对接。特别是控件的 Callback 属性设置;然后,分模块进行检查以保证各部分的代码运行正常;最后是在 MATLAB 提供的图形用户界面(GUI)开发环境下,将程序串接在同一界面上,完成程序 的界面设计。 三、程序组织结构图三、程序组织结构图 界面设计 带通滤波高通滤波低通滤波 引入连续的信号 四、程序实现步骤:四、程序实现步骤: 1.程序各部分代码程序各部分代码 连续信号频域波形设计连续信号频域波形设计 t=(1:100)/1000; s=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(频率响应幅度); title(带通滤波器);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.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),Save as,*.mat); fn=pn,fn; if fid=0 save(fn,p,q) end 退出系统开关控制部分退出系统开关控制部分 answer=questdlg(你真的要推出系统吗? ); if answer=Yes; close end 点击点击“帮助帮助”菜单下的子菜单项菜单下的子菜单项“版本信息版本信息”弹出对话框部分设计弹出对话框部分设计 questdlg(此为09年系统第一版,版权归07通信一班 黄朕同学所有,版本信息,确定 ,default) 点击点击“帮助帮助”菜单下的子菜单项菜单下的子菜单项“系统自述系统自述”弹出弹出Word形式的自述文件部分设计形式的自述文件部分设计 open(系统自述.doc); 第三章第三章 程序运行程序运行结结果果 1.程序运行的初始界面程序运行的初始界面 2.点点击击菜菜单项单项“文件文件”下的子菜下的子菜单项单项“打开打开”后,程序的界面后,程序的界面 3.点点击击菜菜单项单项“文件文件”下的子菜下的子菜单项单项“另存另存为为”后,程序的界面后,程序的界面 4、点、点击击菜菜单项单项“退出退出”后的界面后的界面 5、点、点击击菜菜单项单项“帮助帮助”下的子菜下的子菜单项单项“版本信息版本信息”后,程序的界面后,程序的界面 6.点点击击按按钮钮“输输入入连续连续信号信号”后的程序界面后的程序界面 7.右右键键波形波形线线条的某一点,在随后出条的某一点,在随后出现现的的对话对话框中框中选择选择“颜颜色色”为红为红后,后, 程序的运行界面(其它程序的运行界面(其它选项选项的效果在的效果在这这里就不作里就不作详细详细介介绍绍了,待大家了,待大家 去去尝试尝试) ) 8、 、点点击击按按钮钮“带带通通滤滤波器波器”后的程序界面后的程序界面 9. 点点击击按按钮钮“高通高通滤滤波器波器”后的程序界面后的程序界面 10.10. 点点击击按按钮钮“低通低通滤滤波器波器”后的程序界面后的程序界面 课 第四章第四章 程程设计设计心得心得 一、知一、知识识心得心得 1.通过这次 MATLAB 大作业是对 MATLAB 很好的一次复习。许多知识点比如,MATLAB 中 函数的定义,MATLAB 中绘图等在这次大作业都得到了很好的复习。 2.通过 MATLAB 的这次大作业,还掌握了一些以前重未接触过的 MATLAB 的知识,例如, MATLAB 中几个常见的对话框(问题提示对话框 questdlg、信息提示对话框 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(file) 这个方法好处是可以在这个方法好处是可以在 MATLAB 中打开任意路径下的文件。中打开任意路径下的文件。 方法二、方法二、 直接使用 open 函数以 windows 默认的方式打开文档 即 open(“文件名”) 这个方法有其明显的缺陷,那就是只能在这个方法有其明显的缺陷,那就是只能在 MATLAB 程序运行的路径下才能打开所指程序运行的路径下才能打开所指 定的文件定的文件 二、体会二、体会 (1) 、这是我自己独立完成的设计。虽然各个波形的设计都参考了网络上的已有的相关范 本,但总体来说是自己完成的。 (2) 、对滤波的效果,我也还感觉满意。在我设计的三中滤波器中,高通、低通和带通分 别对应不同的频段,滤波的结果都与之相吻合。 我认为这次设计也存在不足之处:我认为这次设计也存在不足之处: (1) 、不能改变信号的频率。无论是输入信号还是输出信号,或者是滤波器,频率都是固 定的,没有设置频率更改按钮。 (2) 、虽然实现了菜单项中的“另存为”的子菜单项的功能,但实际效果不好,仍不能很 好保存系统运行产生的数据。 (3) 、在实现程序改变图形线条的颜色,粗细和虚实的功能时所采用的方法过于繁琐。 第五章第五章 附附录录 function varargout = an1(varargin) %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 passed 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 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, . gui_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:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - 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 and 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 UIRESUME) % 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 future 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, handles) % 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; b,a=butter(n,wn); H,w=freqz(b,a,512,1000); x1=w*1000/(2*pi); y1=abs(H); hl=plot(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(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,uicontextmenu,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=butter(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,颜色); uimenu(hls,Label,虚线,callback,set(hla,LineStyle,:), ); 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 , 绿 , 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 in 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=uimenu(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,color,r), ); uimenu(cm, label , 蓝 , callback , set(hlb,color,b), ); 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) % 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 PrintMenuItem_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 handle 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 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. % - Otherwise, executes on mouse press in 5 pixel border or over pushbutton6. function pushbutton6_ButtonDownFcn(hObject, eventdata, handles) % 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 reserved - 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 structure 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 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 (see GUIDATA) t=(1:100)/1000; s=sin(2*pi*t*50)+sin(2*pi*t*(50+100)+sin(2*pi*t*(50+200); 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,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 , 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) % hObject 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 handle 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) open(系统自述.doc); % - - function Untitled_6_Callback(hObject, eventdata, handles) % hObject handle to Untitled_6 (see GCBO) % eventdata 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 % handles 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 user 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 with 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 handle 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 % Hint: slider controls usually have a light gray background. if isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) 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 cell array % contentsget(hObject,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京航空航天大学《电动力学》2022-2023学年期末试卷
- 南京工业大学浦江学院《信号与系统》2021-2022学年第一学期期末试卷
- 南京工业大学浦江学院《设计语义与风格》2021-2022学年第一学期期末试卷
- 分数初步认识的说课稿
- 渠涵施工组织设计
- 《元次方程应用》说课稿
- 《下雨啦》说课稿
- 南京工业大学浦江学院《发动机原理》2023-2024学年第一学期期末试卷
- 租船合同范本(2篇)
- 纹身免责协议书(2篇)
- 2024年“312”新高考志愿填报指南
- 13区域分析与区域规划(第三版)电子教案(第十三章)
- 跨界产品研发与实战智慧树知到期末考试答案2024年
- 2024年山东青岛城投金融控股集团有限公司招聘笔试参考题库含答案解析
- 工业机器人应用4-装配
- 中医外治治疗风湿病
- 美国实时总统大选报告
- 外贸业务与国际市场培训课件
- 信创医疗工作总结
- 教师教育教学质量提升方案
- 2024《中央企业安全生产治本攻坚三年行动方案(2024-2026年)》
评论
0/150
提交评论