MATLAB课程设计报告

时间:2024.4.13

燕山大学

课 程 设 计 说 明 书

题目:基于matlab的肌电信号工频干扰的消除

学院(系): 电气工程学院

年级专业: 09级测控仪表

学 号

学生姓名:

指导教师:

教师职称:

1

燕山大学课程设计(论文)任务书

院(系):电气工程学院 基层教学单位:自动化仪表系

MATLAB课程设计报告

20xx年 6 月 29日

2

燕山大学课程设计评审意见表

MATLAB课程设计报告

摘 要

肌电信号是产生肌肉力的电信号根源,它是肌肉中很多运动单元动作电位在时间和空间上的叠加,反映了神经,肌肉的功能状态,在基础医学研究、临床诊断和康复工程中有广泛的应用。

梳状滤波器它是由许多按一定频率间隔相同排列的通带和阻带,只让某些特定频率范围的信号通过。梳状滤波器其特性曲线象梳子一样,故称为梳状滤波器。

本文主要介绍使用梳状滤波器消除在检测和记录肌电信号时噪声和干扰的影响,如50HZ的工频及其谐波,并使用MATLAB软件对原信号、滤波器、处理信号进行频谱分析,观察其频谱特性。

关键词:梳状滤波器;MATLAB;频谱分析

4

目 录

第一章 设计过程 ………………………………………………………6

1.1滤波器设计结构图………………………………………………6

1.2设计滤波器步骤…………………………………………………6

第二章 MATLAB的应用……………………………………………………6

2.1MATLAB语言简介………………………………………………6

2.2一些函数及指令简介……………………………………………7

第三章 程序和仿真图……………………………………………………9

3.1滤波器设计程序及仿真图………………………………………9

3.2原始信号的频谱分析……………………………………………11

3.3信号滤波的程序设计及频谱分析………………………………12

第4章 学习心得…………………………………………………………16 参考文献 …………………………………………………………………17

5

第一章 设计过程

1.1滤波器设计结构图

椭圆滤波器设计结构图如图所示:

连续混合

MATLAB课程设计报告

信号

图4.1结构框图

1.2设计数字滤波器的步骤

1.确定数字滤波器的性能指标:Wp、Ws、Rp、Rs、N、Wc。

2. 将数字滤波器的性能指标转化成相应模拟滤波器的性能指标。

3.设计满足指标要求的模拟滤波器Ha(s)。

4.通过变换将模拟滤波器转换成数字滤波器

4.数字滤波器的MATLAB实现和频谱分析

第二章 MATLAB的应用

2.1 MATLAB语言简介

MATlAB是在20世纪80年代初期,由美国的MathWorks软件开发公司正式推出的一种数学工具软件。它以矩阵运算为基础,把计算、可视化、程序设计有机地融合到了一个简单易学的交互式工作环境中,其出色的数值计算能力和 6

强大的图形处理功能得到了广大科研人员和工程技术人员的垂青。它拥有功能全面的函数库,他把大量的函数封装起来,让用户脱离了繁琐复杂的程序设计过程,只需要将精力集中到模型的建立和工作上即可,大大提高了工作效率。利用MATLAB可以实现科学计算、符号运算、算法研究、数学建模和仿真、数据分析和可视化、科学工程绘图以及图形用户界面设计等强大功能。更重要的是,MATLAB提供了图形用户界面(GUI)设计功能,用户可以自行设计别具风格的人机交互界面。此外,MATLAB提供了与C语言或Fortran语言的交互操作,是用户能通过程序接口很方便地进行程序间的调用和转换。

2.2一些函数及指令简介

MATLAB的信号处理工具箱提供了设计椭圆滤波器的函数:ellipord函数、ellip函数、filter函数、freqz函数、fft函数和abs函数。

1. ellipord函数的功能是求滤波器的最小阶数,其调用方式为:

[n,wp]=ellipord(wp,ws,rp,rs)

n-椭圆数字滤波器最小阶数;

wp-椭圆滤波器通带截止角频率;

ws-椭圆滤波器阻带起始角频率;

rp-通带最大衰减量也即通带波纹(dB);

rs-阻带最小衰减量(dB);

这里wp、ws都是归一化频率,即0?wp(或ws)?1,1对应?弧度。

2. ellip函数的功能是用来设计椭圆滤波器,其调用方式为:

(1)[b,a]=ellip(n,rp,rs,wp)

rp用来指定通带内波纹的最大衰减;

rs用来指定阻带内波纹的最小衰减;

在这里,wp的取值范围是(0.0,1.0),其中1对应于0.5Fs,Fs为采样频率。

(2)[b,a]=ellip(n,rp,rs,wp,'high'):设计高通椭圆滤波器。上述返回的 7

向量b和a的维数都是n+1,而不是n。

MATLAB课程设计报告

filter函数功能:利用IIR滤波器和FIR滤波器对数据进行滤波,其调用方式为:

y=filter(b,a,x):计算输入信号X的滤波输出,向量b和a分别是所采用的滤波器的分子系数向量和滤波器的分母系数向量。

[y,zf]=filter(b,a,x,zi):参数zi指定滤波器的初始条件值,其大小为zi=max(length(a),length(b))-1。

y=filter(b,a,x,[],dim)或y=filter(b,a,x,zi,dim):参数dim指定滤波的维数。

filter采用数字滤波器对数据进行滤波,其实现采用移位直接Ⅱ型结构,因而适用于IIR和FIR滤波器。滤波器的系统函数为 b0?b1z?1?b2z?2?b3z?3?????bmz?m

H(Z)??1?2?3?n1?az?az?az?????az123n

即滤波器系数a=[a0 a1 a2 ...an],b=[b0 b1 ...bm],输入序列矢量为x。这里,标准形式为a0=1,如果输入矢量a时,a0≠1,则MATLAB将自动进行归一化系数的操作;如果a0=0,则给出出错信息。

4. freqz函数功能:求解数字滤波器频率响应,其调用方式为:

(1)[h,w]=freqz(b,a,n):返回数字滤波器的n点复频率响应,输入参数b和a分别是滤波器系数的分子和分母向量;输出参数h是复频率响应,w是频率点。输入参数n的默认值为512。

(2)h=freqz(b,a,w):计算由向量w(单位为rad/sample,范围为[0,?]) 8

指定的频率点的复频率响应。

(3)[h,f]=freqz(b,a,n,Fs):同时输出实际频率点。用于对H(ejω)在[0,Fs/2]上等间隔采样n点,采样点频率及相应频响值分别记录在f 和h中。由用户指定FS(以HZ为单位)值。

(4)h=freqz(b,a,f,Fs):计算由向量f指定的频率点的复频率响应。 5. Abs函数 调用方式为:

Y=abs(x):计算x各元素的绝对值。当x为一个复数的时候,则计算x的复数模。

第三章 程序和仿真图

3.1滤波器设计程序及仿真图

MATLAB课程设计报告

MATLAB课程设计报告

9

MATLAB课程设计报告

10

MATLAB课程设计报告

滤波器仿真图

9

8.8

MATLAB课程设计报告

8.6

8.4

幅8.2

8

7.8

7.6

7.4050100150200250300350400450

频率/Hz

3.2原始信号的频谱分析

X=[原始信号,肌电信号];

N=length(x);

y=fftshift(fft(x));

df=fs/(N-1);

n=-(N-1)/2:(N-1)/2;

q=n*df;

subplot(2,1,1);

plot(q,abs(y));

title('幅频图像')

subplot(2,1,2);

plot(q,angle(y));

title('相频图像')

11

原始信号仿真图

幅频图像

250

200

MATLAB课程设计报告

150

100

50

0-500-400-300-200-1000100200300400500

相频图像

4

2

MATLAB课程设计报告

-2

-4-500-400-300-200-1000100200300400500

3.3信号滤波的程序设计及频谱分析

x=load(‘EMG.txt’);

wp1=45;wp2=55;ws1=49.9;

12

ws2=50.1;

rp=0.3;rs=40;Fs=1000;

wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2);

[N,wc]=ellipord(wp,ws,rp,rs,'z');

[num,den]=ellip(N,rp,rs,wc,'stop');

[H1,W1]=freqz(num,den); sf1=filter(num,den,x);

wp1=95;wp2=105;ws1=99.9;

ws2=100.1;

rp=0.3;rs=40;Fs=1000;

wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2);

[N,wc]=ellipord(wp,ws,rp,rs,'z');

[num,den]=ellip(N,rp,rs,wc,'stop');

[H2,W2]=freqz(num,den);

sf2=filter(num,den,sf1);

wp1=145;wp2=155;ws1=149.9;

ws2=150.1;

rp=0.3;rs=40;Fs=1000;

wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2);

[N,wc]=ellipord(wp,ws,rp,rs,'z');

[num,den]=ellip(N,rp,rs,wc,'stop');

[H3,W3]=freqz(num,den);

sf3=filter(num,den,sf2);

wp1=195;wp2=205;ws1=199.9;

ws2=200.1;

rp=0.3;rs=40;Fs=1000;

wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2);

[N,wc]=ellipord(wp,ws,rp,rs,'z');

[num,den]=ellip(N,rp,rs,wc,'stop');

[H4,W4]=freqz(num,den);

sf4=filter(num,den,sf3);

wp1=245;wp2=255;ws1=249.9;

ws2=250.1;

rp=0.3;rs=40;Fs=1000;

13

wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2);

[N,wc]=ellipord(wp,ws,rp,rs,'z');

[num,den]=ellip(N,rp,rs,wc,'stop');

[H5,W5]=freqz(num,den);

sf5=filter(num,den,sf4);

N=length(sf5);

y=fftshift(fft(sf5));% fftshift的作用正是让正半轴部分和负半轴部分的图像分

别%关于各自的中心对称。因为直接用fft得出的数据与频率

不%是对应的

df=1000/(N-1);

n=-(N-1)/2:(N-1)/2;

q=n*df;

subplot(2,1,1);

plot(q,abs(y));

title('幅频图像')

subplot(2,1,2);

plot(q,angle(y));

title('相频图像')

14

滤波信号仿真图

幅频图像

200

150

MATLAB课程设计报告

100

50

0-500-400-300-200-1000100200300400500

相频图像

4

2

MATLAB课程设计报告

-2

-4-500-400-300-200-1000100200300400500

15

第四章 学习心得

经过一周的课程设计,我学到了很多东西。对于以前不理解的知识,通过试验的学习得到了理解,学会的知识也得到了进一步深化。

这学期开设的数字信号处理课程是信号与系统课程的延续,带着对信号与系统学习的兴趣,我满怀信心的开始了对数字信号处理这门课程的学习。

因为对信号与系统这门课程学习的还算透彻,,所以以为数字信号处理这门课程也应该不在话下,但事实上并非如此。信号与系统相对来说更倾向于对数学理论及公式的学习,需要理解的部分也较浅显易懂,计算也较简单,只是简单的接触并学习了一些信号的基本知识。而数字信号处理是信号知识的深化学习,既重理论又重实践,理解起来也相当困难,特别是对于一些以前没接触过的概念,学习起来真有点寸步难行。

课程设计在刚接触的时候感觉很难,但我们并没有被困难所吓倒。我们组的成员积极的复习课本,又从图书馆借来有关Matlab语言及函数库的书籍,从中收获了不少知识,模糊的实验步骤渐渐清晰起来。为了使设计的实验更严谨完美,一周的时间我都充分的利用了起来,不仅是梳状滤波器的知识,也将课本复习了一遍,这不仅仅加强了我们对滤波器知识的理解,也使后来的考试变得更有自信。

课程设计虽然结束了,但它带来的影响却是无穷尽的。它不仅锻炼了我们的动手能力,也增强了我们的理解和学习能力。特别是对Matlab的应用,不再仅仅的局限于搬抄课本上的程序,而是自己去思考去设计实验的源程序,更具有挑战性,也使我的Matlab知识得到了提高,对于后续的学习会更加有帮助。

16

参考文献

5.谢平、王娜、林洪斌等主编,信号处理原理及应用。北京:机械工业出版社,2008.10

6.宋爱国、刘文波等主编,测试信号分析与处理。北京:机械工业出版社,2005,9

7.聂祥飞、王海宝、谭泽富主编,Matlab程序设计及其在信号处理中的应用。成都:西南交通大学出版社,2005

8.吴大正、高西全等主编,Matlab及在电子信息课程中的应用。北京:电子工业出版社,2006.3

5.李培芳、孙晖、李江主编,信号与系统分析基础。北京:清华大学出版社,2006.12

17


第二篇:MATLAB课程设计报告.doc


机 电 工 程 学 院

MATLAB课程设计

    目:          RL并联电路分析           

    业:       机械设计制造及其自动化       

    级:             08机械单               

    名:      刘芬      学号:  20080612305

    院:          机电工程学院              

    绩:                                   

( 20##年12月15日 )

目录

摘要. Ⅰ

1 理论分析. 1

1.1 Matlab6.5版学习. 1

1.1.1 Matlab简介. 1

1.1.2 MATLAB的优势.. 2

1.2 RL并联电路. 4

1.3 RL并联电路分析. 5

2程序设计. 6

2.1程序设计方框图. 6

2.2编写程序代码. 7

3 程序运行结果. 8

4 图表分析及总结. 9

参考文献. 9

                        

1 理论分析

1.1 Matlab6.5版学习

1.1.1 Matlab简介

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。

1.1.2 MATLAB的优势

(1)友好的工作平台和编程环境

MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。

(2)简单易用的程序语言

  Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

(3)强大的科学计算机数据处理能力

  MATLAB是一个包含大量计算算法的集合。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。

(4)出色的图形处理功能

   MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能方面更加完善,而且对于一些其他软件所没有的功能,MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

(5)应用广泛的模块集合工具箱

  MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等。

(6)实用的程序接口和发布平台

  新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。

1.2 RL并联电路

如图所示电路,已知I0=2A,R=4Ω,L=3H,当t=0-时,开关 S至1闭合,当t=0+时,开关 S至2闭合,求uL(t),iL(t),并画出波形。

1.3 RL并联电路分析

如图1-1所示电路在开关S动作之前电流已恒定不变,电感中有电流I0=i(0-)=2A,在t=0时开关由1合到2,具有初始电流2A的电感L=3H和电阻R=4Ω相连接,构成一个闭合回路,如图所示。在t>0时,根据KVL,有

uR+uL=0

uR=Ri,uL=L,电路的微分方程为:

L+Ri=0

令方程的特解为i=Aept,可以得到相应的特征方程为:Lp+R=0

其特征根为

p=-

故电流为

i=Ae

根据i(0+)=i(0-)=I0,代入上式可得A=i(0+)=I0,从而

i=i(0+)e-t=I0 e

所以电感上的电压为

uL(t)= L=-RI0 e

电流为

i=I0 e

令T=,称为RL电路的时间常数。则所求的为

uL(t)=-RI0e,iL(t)=I0 e

2程序设计

2.1程序设计方框图

 

图2-1 程序设计方框图

2.2编写程序代码

clear,format compact

R=4;

L=3;                        

Io=2;

T=L/R;

t=0:0.001:10;

i=Io*exp(-t/T);

u=R*Io*exp(-t/T);

P=-R*Io*Io*exp(-2*t/T);

figure(1) plot( t,i)

figure(2),plot( t,u)

3 程序运行结果

图3-1 程序运行结果——i

图3-2 程序运行结果——U

4 图表分析及总结

由图中可以看出uL.iL始终不改变方向,由大到小,最后趋近零,电压与电流i按照同样的指数规律衰减,它们衰减的快慢取决于R/L的大小。由于p=-R/L,这是电路特征方程的特征根,仅取决于电路的结构和元件参数。而且有uL>=0,iL>=0,当t=0时,i(0+)=2A。当t→∞时放电过程结束,i(∞)=0,此过程中电感释放的能量全部让电阻以热能的形式放出,直至原来储存在电感中的磁场能全部为电阻吸收转化为热能。

参考文献

[1]邱关源,《电路》,高等教育出版社,1998

[2]唐昌建,《Matlab编程基础及应用》,四川大学网络教育学院, 2003.5

[3]吴锡龙,《电路分析》,高等教育出版社,2004

[4]张志涌,《MATLAB教程》,北京航天航空大学出版社,2005

[5]曹弋,《MATLAB教程及实例》,机械工业出版社,2008

更多相关推荐:
课程设计报告

1课程设计目的课程设计是船舶设计原理课程重要的实践性教学环节是培养学生掌握船舶设计基本原理和能力的技术基础主尺度论证与总布置设计是船舶总体设计的重要组成部分通过课程设计的训练力求使学生实现从学生到船舶设计师的角...

课程设计报告内容

一设计目的1强化上机动手能力在理论和实践的基础上进一步巩固数据结构课程学习的内容掌握工程化软件设计的基本方法2掌握图的创建和应用3掌握迪杰斯特拉以及Prim等基本算法思想4掌握if语句及switch语句的运用方...

课程设计报告

中国计量学院信息工程学院课程设计报告课程设计名称系统设计与仿真课程计二级学院信息工程学院专业班级10电信2班学姓成绩号名1000301232廖壁波指导老师20xx年12月13日中国计量学院信息工程学院课程设计报...

课程设计报告模板

信息科学与工程学院高级语言程序设计课程设计报告学生成绩管理系统学科专业计算机科学与技术班级1301学号指导教师唐郑熠讲师学生二零年月目录目录1设计任务12需求分析121基础功能122扩展功能13系统概要设计13...

课程设计报告

扬州大学数据结构课程设计报告课题名称姓名学院系科班级指导老师日期自来水管架设问题广陵学院陈宏建1一课程设计的题目自来水管理架设问题问题描述若要在扬州大学的八个居民区A区B区C区D区E区F区G区H区之间架设自来水...

课程设计报告

系统软件课程设计时钟中断与进程调度学号姓名指导教师11070319许明秀金雪云20xx年12月一报告摘要进程调度是操作系统十分重要的一个部分在操作系统的设计过程中进程调度和时钟中断形成了密不可分的关系系统时钟定...

课程设计报告

计算机高级语言课程设计报告班级学号姓名蔡路日期学生成绩管理系统19xx3120xx100031020xx年1月18日一课程设计题目与要求实习题目学生成绩管理系统实习内容C语言面向对象的分析与设计基本要求学生成绩...

JAVA_课程设计报告

JAVA程序设计课程设计报告设计题目学院名称专业班级姓名学号1目录一需求分析3二概要设计3三详细设计331数据库设计332模块及窗体设计3321数据库模块设计3322用户登录识别模块5323用户信息管理模块61...

软件课程设计报告

中南民族大学软件课程设计报告电子信息工程09级题目学生吴雪学号指导教师王锦程电子工程0907100220xx年4月25日简易网络聊天系统摘要计算机网络通信技术已经深入我们的生活并给我们即使通信带来了很大的方随着...

软件课程设计报告

任务书北京信息科技大学计算机软件基础课程设计题目从某个源点到其余各顶点的最短路径学院专业学生姓名班级学号指导老师起止时间任务书1摘要摘要本次课程设计的问题假设西安北京沈阳武汉4个城市构成小型交通网4个城市表示图...

计算机网络课程设计报告

计算机网络课程设计报告一.课程设计的题目、目的及要求.........................................................2二.课程设计的内容(分析和设计).....…

Java课程设计报告模板

Java程序设计课程设计报告20xx20xx年度第1学期Hannio塔专业学生姓名班级学号指导教师完成日期计算机科学技术网络工程马千里B计算机1021010704213徐森20xx年1月8日Hannoi塔目录目...

课程设计报告(33篇)