- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB在信号系统课程中的应用【MATLAB课设报告】
目录
第一章 绪论.............................................3
第二章 程序设计实现思路及步骤...........................4
第三章 程序运行结果............................ .. .......7
第四章 程序设计心得....................................12
第五章 附录............................................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也提供了多种成熟算法的相应函数。
第二章 程序设计实现思路及步骤
一、程序设计要求
设计的程序要关于MATLAB在某课程中的应用,如信号与系统、电路、高等数学等。
在大体完成程序的主体设计后,须进行程序界面的设计,在设计的界面实现程序的绘图、动画等功能,即将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;
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(频率响应幅度);
[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(频率响应幅度);
[filename, pathname] = uigetfile
文档评论(0)