625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc

上传人:laozhun 文档编号:2388355 上传时间:2023-02-17 格式:DOC 页数:21 大小:537.50KB
返回 下载 相关 举报
625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc_第1页
第1页 / 共21页
625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc_第2页
第2页 / 共21页
625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc_第3页
第3页 / 共21页
625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc_第4页
第4页 / 共21页
625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc》由会员分享,可在线阅读,更多相关《625.MATLAB在信号系统课程中的应用【MATLAB课设报告】.doc(21页珍藏版)》请在三一办公上搜索。

1、目录第一章 绪论.3第二章 程序设计实现思路及步骤.4第三章 程序运行结果. . .7第四章 程序设计心得.12第五章 附录.14第一章 绪论MATLAB提供了一个信号处理工具(Signl Processing Toolbox),它基于MATLAB树枝计算环境,提供了数字信号处理的各种操作,其内容涉及了从波形产生到滤波器设计和参量建模以及信号谱分析的范围,核心领域为滤波器设计和频谱分析。工具箱除去提供了用于信号处理的命令函数外,还提供了一组基于CPU开发的借口工具。数字信号处理的基本内容分为两部分:(1)、离散时间信号与系统分析这部分主要涉及的内容是,离散时间信号与系统的时域、频域表示,以及信

2、号通过系统的时域、频域分析及其变换域分析。MATLAB数据库中提供了与之相对应的函数,一些主要的函数如下所列:Filter 提供对数字序列进行滤波的功能;Conv 实现一维信号之间的卷积运算;Convmtx 构造系统或信号的卷积矩阵;Fft、ifft 利用快速傅立叶算法计算序列的离散傅叶变换和反变换;Freqz 基于FFT算法计算数字滤波器的频率响应;Impz 求解数字滤波器的单位冲击响应;Zplane 系统函数的零点分析;(2)、数字滤波器设计和频谱分析 数字滤波器设计和频谱分析是数字信号处理的两个主要应用。数字滤波器设计包括了无限冲击响应(IIR)和有限冲击响应(FIR)滤波器设计,在这一

3、方面,MATLAB的这一工具库提供了极为丰富的设计工具。频谱分析又可进一步分为线性频谱分析和非线性频谱分析。其中,线性频谱分析的理论基础为傅立叶变换,因此所使用的MATLAB函数主要为fft,ifft,此外,工具箱中还给出了各种窗函数。对于非线性频谱分析,MATLAB也提供了多种成熟算法的相应函数。第二章 程序设计实现思路及步骤一、程序设计要求1 设计的程序要关于MATLAB在某课程中的应用,如信号与系统、电路、高等数学等。2 在大体完成程序的主体设计后,须进行程序界面的设计,在设计的界面实现程序的绘图、动画等功能,即将MATLAB 程序设计与GUI相结合。二、程序设计基本思路根据上述要求,本

4、人立足设计MATLAB在信号处理方面的应用,具体是信号的滤波操作。首先,将程序分成带通滤波部分,低通滤波部分和高通滤波部分三部分进行模块化设计,这样设计有利于编程过程中对程序的调试,更主要的是方便最后界面设计过程中对各个对话框的控件,如:按钮(Push Button)等与程序相应部分的进行对接。特别是控件的Callback属性设置;然后,分模块进行检查以保证各部分的代码运行正常;最后是在MATLAB提供的图形用户界面(GUI)开发环境下,将程序串接在同一界面上,完成程序的界面设计。三、程序组织结构图界面设计带通滤波高通滤波低通滤波引入连续的信号四、程序实现步骤:1.程序各部分代码连续信号频域波

5、形设计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(频率响应幅度);

6、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.程序界面设计部分 “文件”菜单项下“打开”的子

7、菜单项功能的实现部分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(你真的要推出系

8、统吗? );if answer=Yes; closeend点击“帮助”菜单下的子菜单项“版本信息”弹出对话框部分设计 questdlg(此为09年系统第一版,版权归07通信一班 黄朕同学所有,版本信息,确定,default) 点击“帮助”菜单下的子菜单项“系统自述”弹出Word形式的自述文件部分设计open(系统自述.doc);第三章 程序运行结果1.程序运行的初始界面2.点击菜单项“文件”下的子菜单项“打开”后,程序的界面3.点击菜单项“文件”下的子菜单项“另存为”后,程序的界面4、点击菜单项“退出”后的界面5、点击菜单项“帮助”下的子菜单项“版本信息”后,程序的界面6.点击按钮“输入连续信

9、号”后的程序界面7.右键波形线条的某一点,在随后出现的对话框中选择“颜色”为红后,程序的运行界面(其它选项的效果在这里就不作详细介绍了,待大家去尝试)8、点击按钮“带通滤波器”后的程序界面9. 点击按钮“高通滤波器”后的程序界面10. 点击按钮“低通滤波器”后的程序界面 课第四章 程设计心得一、知识心得1.通过这次MATLAB大作业是对MATLAB很好的一次复习。许多知识点比如,MATLAB中函数的定义,MATLAB中绘图等在这次大作业都得到了很好的复习。2.通过MATLAB的这次大作业,还掌握了一些以前重未接触过的MATLAB的知识,例如,MATLAB中几个常见的对话框(问题提示对话框que

10、stdlg、信息提示对话框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)这个方法好处是可以在MATL

11、AB中打开任意路径下的文件。方法二、 直接使用open函数以windows默认的方式打开文档即open(“文件名”)这个方法有其明显的缺陷,那就是只能在MATLAB程序运行的路径下才能打开所指定的文件二、体会(1)、这是我自己独立完成的设计。虽然各个波形的设计都参考了网络上的已有的相关范本,但总体来说是自己完成的。(2)、对滤波的效果,我也还感觉满意。在我设计的三中滤波器中,高通、低通和带通分别对应不同的频段,滤波的结果都与之相吻合。我认为这次设计也存在不足之处:(1)、不能改变信号的频率。无论是输入信号还是输出信号,或者是滤波器,频率都是固定的,没有设置频率更改按钮。(2)、虽然实现了菜单项

12、中的“另存为”的子菜单项的功能,但实际效果不好,仍不能很好保存系统运行产生的数据。(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*.%

13、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 C

14、ALLBACK 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

15、 initialization code - DO NOT EDITgui_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 & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1

16、);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

17、 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 a

18、n1handles.output = hObject; % Update handles structureguidata(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)% varargo

19、ut 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 structuren=8;wn=100 200/500;b,a=butter(n,wn);

20、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

21、=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(h

22、ls,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,

23、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% han

24、dles 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(hl

25、s,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,col

26、or,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

27、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,线

28、型);%建立菜单项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 ,

29、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 OpenMenuIt

30、em (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, h

31、andles)% 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 res

32、erved - 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

33、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

34、 - 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 h

35、andles 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

36、=Yes; closeend;% -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 push

37、button7_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

38、=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

39、(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, l

40、abel , 黑 , 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) % -

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号