信号系统matlab实验

2024-07-27 版权声明 我要投稿

信号系统matlab实验(精选10篇)

信号系统matlab实验 篇1

MATLAB 综合实验 项目二

连续系统的频域阐发 目的:

周期信号输入连续系统的响应可用傅里叶级数阐发。由于盘算历程啰嗦,最适适用MATLAB 盘算。通过编程实现对输入信号、输出信号的频谱和时域响应的盘算,认识盘算机在系统阐发中的作用。

任务:

线性连续系统的系统函数为11)(jj H,输入信号为周期矩形波如图 1 所示,用MATLAB 阐发系统的输入频谱、输出频谱以及系统的时域响应。

-3-2-1 0 1 2 300.511.52Time(sec)

图 1

要领:

1、确定周期信号 f(t)的频谱nF。基波频率 Ω。

2、确定系统函数 )( jn H。

3、盘算输出信号的频谱

n nF jn H Y )( 

4、系统的时域响应

 nt jnn eY t y)(MATLAB 盘算为

y=Y_n*exp(j*w0*n“*t);

要求(画出 3 幅图):

1、在一幅图中画输入信号 f(t)和输入信号幅度频谱|F(j)|。用两个子图画出。

2、画出系统函数的幅度频谱|H(j)|。

3、在一幅图中画输出信号 y(t)和输出信号幅度频谱|Y(j)|。用两个子图画出。

解:(1)阐发盘算:

输入信号的频谱为

(n)输入信号最小周期为 =2,脉冲宽度,基波频率Ω=2π/ =π,所以

(n)系统函数为

因此

输出信号的频谱为

系统响应为

(2)步伐:

t=linspace(-3,3,300);

tau_T=1/4;

%

n0=-20;n1=20;

n=n0:n1;

%盘算谐波次数20

F_n=tau_T*Sa(tau_T*pi*n);

f=2*(rectpuls(t+1.75,0.5)+rectpuls(t-0.25,0.5)+rectpuls(t-2.25,0.5));

figure(1),subplot(2,1,1),line(t,f,”linewidth“,2);

%输入信号的波形 axis([-3,3,-0.1,2.1]);grid on

xlabel(”Time(sec)“,”fontsize“,8),title(”输入信号“,”fontweight“,”bold“)%设定字体巨细,文本字符的粗细

text(-0.4,0.8,”f(t)“)

subplot(2,1,2),stem(n,abs(F_n),”.“);

%输入信号的幅度频谱 xlabel(”n“,”fontsize“,8),title(”输入信号的幅度频谱“,”fontweight“,”bold“)

text(-4.0,0.2,”|Fn|“)

H_n=1./(i*n*pi+1);

figure(2),stem(n,abs(H_n),”.“);

%系统函数的幅度频谱 xlabel(”n“,”fontsize“,8),title(”系统函数的幅度频谱“,”fontweight“,”bold“)

text(-2.5,0.5,”|Hn|“)

Y_n=H_n.*F_n;y=Y_n*exp(i*pi*n”*t);

figure(3),subplot(2,1,1),line(t,y,“linewidth”,2);

%输出信号的波形 axis([-3,3,0,0.5]);grid on

xlabel(“Time(sec)”,“fontsize”,8),title(“输出信号”,“fontweight”,“bold”)

text(-0.4,0.3,“y(t)”)

subplot(2,1,2),stem(n,abs(Y_n),“.”);

%输出信号的幅度频谱 xlabel(“n”,“fontsize”,8),title(“输出信号的幅度频谱”,“fontweight”,“bold”)

text(-4.0,0.2,“|Yn|”)

(3)波形:

-3-2-1 0 1 2 300.511.52Time(sec)输 入 信 号f(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输 入 信 号 的 幅 度 频 谱|Fn|-20-15-10-5 0 5 10 15 2000.10.20.30.40.50.60.70.80.91n系 统 函 数 的 幅 度 频 谱|Hn|

-3-2-1 0 1 2 300.10.20.30.4Time(sec)输 出 信 号y(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输 出 信 号 的 幅 度 频 谱|Yn|

项目三

连续系统的复频域阐发 目的:

周期信号输入连续系统的响应也可用拉氏变更阐发。用 MATLAB 的标记盘算成果,通过编程实现对系统瞬态响应和稳态响应的阐发,加深理解拉氏变更在阐发系统中的作用。

任务:

线性连续系统的系统函数为11)(ss H,输入信号为周期矩形波如图2所示,用MATLAB阐发系统的响应和稳态响应。

0 1 2 3 4 5 6 700.511.52Time(sec)

图 2

要领:

1、确定第一个周期拉氏变更)(0s F。

2、确定前 6 个周期的拉氏变更)(s F。

3、盘算输出信号的拉氏变更)()()(s F s H s Y 

4、系统的时域响应)()(s Y t y 

MATLAB 盘算为

y=ilaplace(Y);5、系统的稳态响应和稳态值,即经过 4 个周期后,系统响应趋于稳态,两个稳态值可取为

t=8s 和 t=8.5s

要求:

1、画出输入信号 f(t)波形。

2、画出系统输出信号 y(t)的波形。

3、画出系统稳态响应 yss(t)的波形,4 个周期后。并盘算出稳态值。

解:(1)步伐 syms s;

H=1/(s+1);

F0=1/s*(1-exp(-0.5*s));

%输入信号第一个周期的laplace变更

F=F0+F0*exp(-2*s)+F0*exp(-4*s)+F0*exp(-6*s);

Y=H.*F;

Y0=H.*F0;

y=ilaplace(Y);

y=simple(y);

t=linspace(0,12,300);

f=2*(rectpuls(t-0.25,0.5)+rectpuls(t-2.25,0.5)+rectpuls(t-4.25,0.5)+rectpuls(t-6.25,0.5));

yn=subs(y);

%标记替换

figure(1),plot(t,f,“linewidth”,2);

axis([0,7,-0.2,2.2]),xlabel(“Time(sec)”,“fontsize”,8),title(“输入信号”,“fontweight”,“bold”)

text(3.0,1.0,“f(t)”)

figure(2),plot(t,yn,“linewidth”,2);

axis([0,7,-0.1,0.5]),xlabel(“Time(sec)”,“fontsize”,8),title(“输出信号”,“fontweight”,“bold”)

text(3.0,0.3,“y(t)”)

figure(3),plot(t,yn,“linewidth”,2);

axis([8,12,-0.1,0.5]),xlabel(“Time(sec)”,“fontsize”,8),title(“输出信号稳态响应”,“fontweight”,“bold”)

text(10.0,0.2,“ys(t)”)

t=8:0.5:8.5;

%取t=8s和t=8.5两个稳态值

ys=subs(y,t,“t”);

disp(“输入为周期信号的响应的第一个周期”);

y0=ilaplace(Y0);

pretty(y0);

%标记输出类似数值形式

disp(“输出稳态周期信号的两个值”);

ys

(2)波形

0 1 2 3 4 5 6 700.511.52Time(s ec)输 入 信 号f(t)

0 1 2 3 4 5 6 7-0.100.10.20.30.4Time(sec)输 出 信 号y(t)8 8.5 9 9.5 10 10.5 11 11.5 12-0.100.10.20.30.4Time(sec)输 出 信 号 稳 态 响 应ys(t)

命令窗口显示:

输入为周期信号的响应的第一个周期

heaviside(t-1/2)(exp(1/2-t)-1)-exp(-t)+ 1 输出稳态周期信号的两个值 ys =

0.1015

信号系统matlab实验 篇2

为了达到好的教学效果,课程实验是不可缺少的。由于受硬件电路与元器件性能的限制,硬件电路实验的灵活性与实时性较差,影响了学生对理论与概念的深入理解与掌握。在本文中,我们基于MATLAB软件设计并开发了一套信号与系统实验系统。

1、《信号与系统》课程介绍

《信号与系统》课程是一门实践性较强的课程,其基本方法和原理广泛应用于计算机信息处理的各个领域[1]。但由于信号与系统课程本身的特点及教学方法和手段的单一,信号与系统却长期处于教师难教、学生难学的境况中[3,4]。教与学的矛盾主要表现在以下三个方面:

(1)该课程对高等数学要求较高。课程中的很多理论结果来源于复杂的数学运算及推导,这就导致教师在教和学生在学的时候将很多时间用于数学推导(如微分、积分等),而忽视了理论结果在信号处理中的实际应用。

(2)课程中信号分析的结果缺乏可视化的直观表现,例如给出一个复杂的信号,学生不能直接看到该信号的波形;信号频谱特性或系统的响应只能推导得到不易理解的数学表达式,而无法直观地看到波形显示。这些都严重影响了学生对所学知识的理解.

(3)教材内容偏重理论,相关理论的最新应用实例介绍不够,容易造成理论和实践分离。因此,该课程迫切需要在实验环境中,帮助学生完成数值计算、信号分析的可视化建模及仿真调试。

2、MATLAB简介

MATLAB是matrixlabortory(矩阵实验室)的缩写,是一套功能十分强大的工程计算及数据分析软件,它的应用范围覆盖了工业、电子、医疗、建筑等多个领域。同时它也是一种交互式、面向对象的程序设计语言,其结构完整,具有优良的移植性。它主要用于矩阵运算,同时在数据分析、自动控制、数字信号处理、绘图等方面具有强大的功能[2,3]。

它的主要特点有以下几点:

(1)运算功能强大,MATLAB的数值运算要素不是单个数据,而是矩阵,每个元素都可看作复数,运算包括加、减、乘、除、函数运算等;通过MATLAB的符号工具箱,还可以解决在数学、应用科学和工程计算领域中常常遇到的符号计算问题。

(2)完备的图形处理功能,实现计算结果和编程的可视化。

(3)人机界面友好,编程效率高;MATLAB的命令表达方式与标准的数学表达式非常相近,使学者易于学习和掌握。

(4)功能丰富的应用工具箱,大量针对各专业应用的工具箱的提供,使MATLAB适用于不同领域。

(5)S i m u l i n k动态仿真功能,MATLAB的Simulink提供了动态仿真的功能,用户通过绘制框图来模拟一个线性、非线性、连续或离散的系统,通过Simulink能够仿真并分析该系统。

MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。基于以上考虑,我们以MATLAB为平台设计并开发一套信号与系统实验软件。

3、《信号与系统》实验系统的设计

3.1系统的特点

《信号与系统》实验系统充分利用了交互式人机界面和计算机快速运算的特点,同时运用了MATLAB的数值分析及计算结果可视化、信号处理工具箱的强大功能。实验系统共设立三类实验:验证性实验着重于对“信号与系统”课程的重要原理和知识点进行验证,巩固所学知识点;研究性实验要求学生通过对比不同的实验现象,提高他们提出问题,分析问题,解决问题的能力,培养其对知识进行探索的兴趣;综合设计性实验涵盖“信号与系统”的重要知识点,并将这些知识点有机结合起来,学生在做实验的过程中对所学知识进行融会贯通。

验证性实验和研究性实验有统一的用户界面,学生可以选择实验内容设置相应的参数来观看实验结果,同时要求学生读懂实验中所使用的关键MATLAB代码。综合设计性实验要求学生掌握基本的MATLAB编程,实际动手编程以达到相应的实验效果,使学生增强了动手能力。通过实验,学生对知识的掌握是一个从验证性实验、研究性实验到综合设计性实验,从观察演示结果到自主设计开发实验的过程。

本系统主要分为连续信号及系统实验和离散信号及系统实验两大部分。连续信号及系统实验中,验证性实验包括连续信号的波形及运算;研究性实验包括系统的零状态响应和系统的冲激响应与阶跃响应;综合性实验包括系统的频率特性分析、s域分析和滤波器的设计。在离散信号及系统实验中,验证性实验包括离散信号的波形及运算;研究性实验包括系统的零状态响应和系统的冲激响应和阶跃响应;综合性实验包括离散时间系统的z域分析和离散傅立叶变换和逆变换。实验体系如图1所示。

3.2实验实例及代码分析

下面各选择一个验证性实验,研究性实验和综合性实验为例介绍实验系统的用户界面和设计代码。

3.2.1验证性实验

验证性实验针对原理性和抽象性强的知识点,进行原理性演示和验证,实现抽象原理到具体演示的形象转换,实验应尽量涵盖课程的重要知识点。这类实验相对简单,属于基本训练实验。它的目的是加强学生对信号与系统所学理论知识的巩固。

例如对于连续信号和离散信号的波形,学生一直没有直观的认识。通过实验界面学生可以选择想要观察的信号,如抽样信号,在实验窗口中输入相关的参数,就可以观察到信号的波形,如图2所示。

验证性实验有效地弥补了理论教学缺乏形象、具体的缺点,为学生提供了直观的概念解释和原理验证过程,同时实验尽量涵盖了“信号与系统”课程的重要知识点,使学生对本课程的重点知识进行了回顾和加深。

3.2.2研究性实验

研究性实验不是单一的验证某个结果,而是要设计多组实验,得出多个实验现象,让学生对这些实验现象进行比较,发现其中的问题,用所学的知识点来解释或解决问题,或是让学生改变实验中的某些参数,看这些参数对结果的影响。这类实验旨在传达给学生研究的方法,培养其探索知识的兴趣。这里所选的实验内容和实验参数要具有可扩展性、可跟踪性,并且难易程度适中,能适合大多数学生。

例如求解连续系统的冲激响应,当系统对应的微分方程不同时,冲激响应也不同。连续系统的冲激响应实验界面如图3所示,学生可以选择连续系统的阶数,以二阶系统为例,单击冲激响应下的“二阶系统”按钮,进入二阶系统的冲激响应界面,如图4所示。学生可以输入微分方程的系数,单击“计算”按钮,则可以在界面上画出该微分方程对应系统的冲激响应的波形,使得学生可以直观看到给定的连续系统的冲激响应。

关键代码如下所示:

其中微分方程的LTI系统模型sys要借助MATLAB中的tf函数来获得,其调用形式为:sys=tf(b,a),b和a分别为微分方程右端和左端各项的系数向量。系统冲激响应可以用控制系统工具箱提供的函数impulse,其调用形式为:y=impulse(sys,t)。

研究性实验让学生对信号与系统学习中碰到的问题进行探索,提高了学生的研究能力,同时学生通过比较不同的实验结果,了解到实验过程中任何一个参数或条件的细微变化都可能造成实验结果的截然不同,训练了科学规范的思维。同时阅读实验中的关键代码使得学生通过实验实例学习MATLAB编程,为后面综合性实验做准备。

3.2.3综合性实验

综合性实验综合信号与系统的知识点,将部分分散的理论知识点进行有机整合,同时与其他课程或实际系统相联系,拓宽和加深学生的知识,实现从知识点到知识面的过渡,培养学生的创新性和科研素质。

在连续系统的频域特性分析实验中,学生可以在MATLAB中仿照实验例子画出连续系统的频域特性曲线。例如三阶的Butterworth低通滤波器的频率响应为:

其中,MATLAB信号处理工具箱提供了freqs函数可以直接计算系统的频率响应,它的一般调用形式为:H=freqs(b,a,w),式中b为中分子多项式的系数向量,a为分母多项式的系数向量,w为需要计算的的频率抽样点向量(w中至少需包含2个频率点,w的单位为rad/s)。

如果没有输出参数直接调用freqs函数,则MATLAB会在当前绘图窗口中自动画出幅频和相频响应曲线图形。程序运行结果如图5所示:

学生可以仿照该例子做出其他连续时间系统(如

的频率响应的幅值和相位特性曲线。由此可见,综合设计性实验通过将零散的知识点整合起来,能够综合和总结知识,实现学生对知识系统性的掌握,同时锻炼了学生MATLAB编程的能力。

4、结论

本文提出并实现了基于MATLAB的信号与系统实验系统,该系统将信号与系统实验分为验证性实验,研究性实验和综合设计性实验。实验系统对学生学好信号与系统的课程具有很好的辅助作用。在实验过程中,学生可以在实验界面随意修改实验参数,比较实验结果,从而达到加深学习信号与系统中关键知识点的目的;同时可通过学习MATLAB编程语言自行设计系统进行模拟,从而加强了学生的综合设计能力。

参考文献

[1]郑君里,杨为理,应启珩.信号与系统[M].第2版.北京:人民出版社.2000

[2]张智星.MATLAB程序设计与应用[M].北京:清华大学出版社.2002

[3]王红梅,黄华飞,唐春霞.MATLAB软件在信号与系统实验中的应用[J].广西轻工业.2007.6,pp:55-56

信号系统matlab实验 篇3

关键词:信号处理;MATLAB;图形用户界面;实验软件

引言

信号处理类课程是高等院校电气信息学科学生的必修课程,它不仅是电类专业和信息类专业的一门专业基础课程,而且也是工科学生受益较多的一门课程。但是这类课程的许多理论都基于繁琐的数学理论和数学推导,因此容易使学生感到乏味。为了提高学生学习的效率,需要借助实验手段来帮助学生理解课堂所学理论。

MATLAB是有美国MathWorks公司推出的一个为工程计算和数据分析而专门设计的高级交互式软件包,利用它能容易地解决在系统仿真领域教学与研究中遇到的问题;不仅如此,它还提供了用户可编程设计的图形用户界面(Graphical UserInterface,简写为GUI)设计工具,为课堂实验教学和实验仿真提供了十分有效的手段。基于此,本文利用MATLAB的可视化图形用户界面(GuI)工具,设计实验系统的图形用户界面的总体结构。本系统能够用于完成相关的信号处理实验。

1设计的基本内容

本设计有以下特点:

(1)具有序列的基本计算、基本信号的产生、数据采集、卷积、傅里叶变换、z变换以及FIR和IIR滤波器等功能。

(2)界面可视性强,操作简单方便。

(3)具有数据输入输出、图形输出、数据修改和文件保存、打印等功能,系统内容丰富,实验效率高,结果直观易懂、便于分析。

(4)系统易于扩展新的实验项目。

2系统总体设计步骤

在本系统的设计中,界面布局设计采用自顶向下的设计方法,即先设计引导界面和主界面,再设计各个实验子界面。界面设计完成后,只是一些静态的画面而已,没有什么内涵,还不能用于实验操作,要想达到实验目的,必须借助于函数调用。在设计中,各个回调函数的编写顺序则是采用自底向上的设计方法,即先编制各个实验子界面的回调函数,再编写主界面和引导界面的回调函数。

其设计的具体步骤如下:

(1)运用MATLAB的图形用户界面(GuI)设计方法,设计整个实验系统的开始引导界面、实验主界面及其实现信号处理课程中具体实验的各个子界面;

(2)运用MATLAB的图形用户界面(GUD设计方法,设计系统的说明界面及其各个实验的说明界面;

(3)分别编写各个子界面的各个控件对象的回调函数,来实现控件相应控制功能,达到直接通过界面上各个控件就可以控制数据的输入输出,并可以方便地对实验结果的数据及其图形进行读取和分析的目的;

(4)编写主界面的回调函数,将各个实验子界面整合在信号处理系统实验主界面中,即通过主界面就可以进入任何一个实验子界面进行实验;

(5)编写开始引导界面的回调函数,实现从引导界面直接进入主界面。

3实验系统的设计及实现

3.1实验系统的设计

本实验系统整体结构设计由两部分组成:界面模块设计和菜单模块设计。其中,界面模块总共包括十个模块:开始引导模块、主模块、说明模块、序列基本计算模块、基本信号的产生模块、数据采集模块、卷积模块、傅里叶变换模块、z变换模块、滤波器设计模块。一些实验界面模块下面又有下一级实验界面模块,如滤波器设计模块下面还有FIR滤波器设计模块和IIR滤波器设计模块,其中FIR滤波器模块又包含FIR滤波器线性的判断实验界面、窗函数的频率响应实验界面和FIR滤波器的设计实验界面;IIR滤波器模块又包含完全IIR滤波器的设计实验界面和典型ILR滤波器实验界面;主界面中还包含了说明模块。在菜单设计时,在实验子界面中除使用系统约定的菜单条外,还增加了几个控制背景和退出实验的菜单;引导界面中不使用菜单;主界面中将所有实验项目做成菜单的形式,只要通过选择相应的菜单选项,就可以进入实验。

系统的整体结构如图1所示。

3.2实验系统的实现

没计出的主界面是用于进入信号处理各个实验子界面的。它使用菜单及其一些按钮控件来实现,将各个实验子界面有机地联系到一起,使界面美观,易于操作。实验系统主界面如图2所示。

在图2界面中,用户可以通过选择菜单中相应的项,进入相应的实验界面来进行实验。可以进行的实验包括以下几种:序列的基本计算、基本信号的产生、数据采集、卷积、傅里叶变换、z变换、FIR及IIR滤波器的设计等。此外,界面上还设计有各个实验的简要说明控件,用户在进行实验之前,可以先单击相应的说明控件,来阅读相关实验的简要信息。

4结束语

信号与系统实验报告总结 篇4

实验一常用信号的观察

方波:

正弦波:

三角波:

在观测中,虚拟示波器完全充当实际示波器的作用,在工作台上连接AD1为示波器的输入,输入方波、正弦波、三角波信号时,可在电脑上利用软件观测到相应的波形,其纵轴为幅值可通过设置实现幅值自动调节以观测到最佳大小的波形,其横轴为时间,宜可通过设置实现时间自动调节以观测到最佳宽度的波形。实验四非正弦周期信号的分解与合成

方波DC信号:

DC信号几乎没有,与理论相符合,原信号没有添加偏移。

方波基波信号:

基波信号为与原方波50Hz信号相对应的频率为50Hz的正弦波信号,是方波分解的一次谐波信号。

方波二次谐波信号:

二次谐波信号频率为100Hz为原方波信号频率的两倍,幅值较一次谐波较为减少。

方波三次谐波信号:

三次谐波信号频率为150Hz为原方波信号的三倍。幅值较一二次谐波大为减少。

方波四次谐波信号:

四次谐波信号的频率为200Hz为原方波信号的四倍。幅值较三次谐波再次减小。

方波五次谐波信号:

五次谐波频率为250Hz为原方波信号的五倍。幅值减少到0.3以内,几乎可以忽略。

综上可知:50Hz方波可以分解为DC信号、基波信号、二次、三次、四次、五次谐波信号…,无偏移时即无DC信号,DC信号幅值为0。分解出来的基波信号即一次谐波信号频率与原方波信号频率相同,幅值接近方波信号的幅值。二次谐波、三次谐波、四次谐波、五次谐波依次频率分别为原方波信号的二、三、四、五倍,且幅值依次衰减,直至五次谐波信号时几乎可以忽略。可知,方波信号可分解为多个谐波。方波基波加三次谐波信号:

基波叠加上三次谐波信号时,幅值与方波信号接近,形状还有一定差异,但已基本可以看出叠加后逼近了方波信号。

方波基波加三次谐波信号加五次谐波信号:

基波信号、三次谐波信号、五次谐波信号叠加以后,比基波信号、三次谐波信号叠加后的波形更加接近方波信号。

综上所述:方波分解出来的各次谐波以及DC信号,叠加起来以后会逼近方波信号,且叠加的信号越多,越是接近方波信号。说明,方波信号可有多个谐波合成。

三角波DC信号:

三角波基波信号:

三角波二次谐波信号:

三角波三次谐波信号:

三角波四次谐波信号:

三角波五次谐波信号:

三角波基波加三次谐波信号:

三角波基波加三次谐波加五次谐波信号:

三角波信号的分析与方波信号的分析基本一致,可以看出三角波也可以分解为多个谐波,并且相应的多个多次谐波可以合成三角波信号,且参与合成的波形越多,合成波越是逼近三角波信号。

综合两个波形来看,可知任何周期性函数均可分解为相应的傅里叶展开式里所包含的直流分量和各次谐波项。且任何周期性函数均可由锁对应的直流分量和各次谐波项所合成,参与合成的信号越多,结果越逼近周期性函数的图形。

实验思考题

1.什么样的周期性函数没有直流分量和余弦项;

答:无偏移的周期性函数没有直流分量,当周期性函数为奇函数时没有直流分量和余弦项。

2.分析理论合成的波形与实验观测到的合成波形之间误差产生的原因。

答:理论合成的波形不能把所有无限个谐波合成起来,故必然产生误差,且实验设备、实验方法也存在一定的误差。

实验二 零输入、零状态级完全响应

零输入响应下降沿采样:

零输入响应上升沿采样:

电信专业级信号与系统实验报告 篇5

学 学

院: 信息科学与工程学院 专业 班级: 通信 1401 班 学 学

号: 201404163024 学生姓名: 严若茂 指导教师: 徐望明

2016年 06 月

欢迎下载 实验一

连续时间信号的表示、连续时间 LTI 系统的时域分析

1.用 MATLAB命令产生如下信号,并绘出波形图(1))(25.1t u et (2))42 sin(2  t

(3)  1 , 0 01 0 2)(t ttt f

程序、实验结果及解释说明:

t=-5:0.01:5;

y=2*exp(-1.5*t).*(t>=0);

subplot(2,2,1)

plot(t,y);

y1=sin(2*pi*t+pi/4);

subplot(2,2,2)

plot(t,y1)

y2=2.*(t>=0&t<=1);

subplot(2,2,3)

plot(t,y2)

ylim([-3 4])

欢迎下载

2.已知信号 )(t f 的波形如图所示,试用 MATLAB命令画出)2( t f、)3(t f、)(t f 、)2 3(  t f 的波形图。

t)(t f11 2  0 程序、实验结果及解释说明:

function y=pp(x)

y=0*(x<-2|x>1)+1*(x>=-2&x<0)+(-x+1).*(x>=0&x<=1);

end

t=-5:0.01:5;

y1=pp(t-2);

y2=pp(3*t);

y3=pp(-t);

y4=pp(-3*t-2);

axis([-2 5 0 2])

subplot(2,2,1);

title(“2.1”);

plot(t,y1)

axis([-2 5 0 2])

subplot(2,2,2)

plot(t,y2)

title(“2.2”);

axis([-2 5 0 2])

欢迎下载 subplot(2,2,3)

plot(t,y3)

title(“2.3”);

axis([-2 5 0 2])

subplot(2,2,4)

plot(t,y4)

title(“2.4”)

axis equal

3.已知描述系统的微分方程和激励信号如下)(3)()(4)(4)(t f t f t y t y t y        ,)()(t u e t ft 

要求:(1)从理论上求解系统的冲激响应和零状态响应,并根据求解结果用MATLAB 绘制其时域波形;(2)分别用 MATLAB的 impulse()函数和 lsim()函数绘制系统的冲激响应和零状态响应,验证(1)中的结果。

程序、实验结果及解释说明:

欢迎下载

figure(1)

a=[1 4 4];

b=[0 1 3];

subplot(2,1,1);

impulse(b,a)

t=0:0.01:3.5;

h=(1+t).*exp(-2*t);

subplot(2,1,2);

plot(t,h)

axis([0,3,5,0,1])

figure(2)

t=0:0.01:3.5;

subplot(2,1,1);

Isim(b,z,x,t)

y=2*exp(-t)-(2+t).*exp(-2*t);

subplot(2,1,2);

plot(t,y)

axis([0,3,5,0,1])

欢迎下载

欢迎下载

实验二 周期信号的傅里叶级数分析

4.已知周期矩形脉冲信号 )(t f 的波形如图所示,设脉冲幅度为 1,宽度为 ,周期为 T,用 MATLAB 绘制信号的频谱图,并研究脉冲宽度  变化时(分别取 4  、8  T ; 2  、8  T ; 1  、8  T),对其频谱的影响。

tT12T 2 程序、实验结果及解释说明:

T=8;w=2*pi/T;

k=-15:15;

subplot(3,1,1)

t1=1;

m1=t1/T;

a1=m1*sinc(k.*m1);

stem(k*w,a1);

subplot(3,1,2)

t2=2;

m2=t2/T;

a2=m2*sinc(k.*m2);

stem(k*w,a2);

subplot(3,1,3)

t3=4;

m3=t3/T;

a3=m3*sinc(k.*m3);

stem(k*w,a3);

欢迎下载

5.设 系 统 的 频 率 响 应 为2 3)(1)(2  j jj H,若 外 加 激 励 信 号 为)10 cos(2)cos(5 t t ,用 MATLAB求其响应。

程序、实验结果及解释说明:

a=[1 3 2];

b=[0 0 1];

t=-10:0.01:10;

x=5*cos(t)+2*cos(10*t);

y=lsim(b,a,x,t);

plot(t,y,t,x)

欢迎下载

欢迎下载

实验三 连续时间 LTI 系统的频域分析

6.下图是用 RLC 元件构成的二阶低通滤波器。设 H L 8.0 ,F C 1.0 ,  2 R,试用 MATLAB 的 freqs()函数绘出该系统的幅频特性曲线和相频特性曲线。(求模:abs()函数,求相角:angle()函数)

LCR)(t f)(t y

程序、实验结果及解释说明:

a=[0.08 0.4 1];b=[0 0 1];w=logspace(-1,1);freqs(b,a,w)

欢迎下载 7.假 设 基 带 信 号 为)20 cos(2)10 cos(3)(t t t g  ,被 调 制 成)1 0 0 c o s()()(t t g t f ,在接收端又被解调为)100 cos()()(0t t f t g ,并通过低通滤波器  其他 030 1)( j H

得到信号)(1t g。试用 MATLAB绘制上述各个信号的时域波形和频谱。

程序、实验结果及解释说明:

clear;[t,omg,FT,IFT] = prefourier([-5,5],length(-5:0.01:5),[-250,250],1000);g=3*cos(10*t)+2*cos(20*t);f=g.*cos(100*t);g0=f.*cos(100*t);G0=FT*g0;H=(omg<30&omg>-30);G1=G0.*H;g1=IFT*G1;G=FT*g;F=FT*f;subplot(4,2,1)plot(t,g);ylabel(“g”);subplot(4,2,2)plot(t,f);ylabel(“f”);subplot(4,2,3)plot(t,g0);ylabel(“g0”);subplot(4,2,4)plot(t,g1);ylabel(“g1”);subplot(4,2,5)plot(omg,abs(G)),ylabel(“G”);subplot(4,2,6)plot(omg,abs(F)),ylabel(“F”);subplot(4,2,7)plot(omg,abs(G0)),ylabel(“G0”);subplot(4,2,8)plot(omg,abs(G1)),ylabel(“G1”);

function [t,omg,FT,IFT]=prefourier(Trg,N,OMGrg,K)%Trg 为时域起止范围 %N 为时域抽样点数 %OMGrg 为频域起止范围 %K 为频域抽样点数 %t 为抽样时间点 %omg 为抽样频率点

欢迎下载 %FT 为傅里叶变换矩阵(将该矩阵左乘信号即得信号的傅里叶变换)

%IFT 为傅里叶反变换矩阵(将该矩阵左乘信号即得信号的傅里叶反变换)

T=Trg(2)-Trg(1);t=linspace(Trg(1),Trg(2)-T/N,N)“;OMG=OMGrg(2)-OMGrg(1);omg=linspace(OMGrg(1),OMGrg(2)-OMG/K,K)”;FT=T/N*exp(-j*kron(omg,t“));IFT=OMG/2/pi/K*exp(j*kron(t,omg”));

欢迎下载

欢迎下载

欢迎下载

实验四

连续时间 LTI 系统的复频域分析

8.已知某二阶系统的零极点分别为 1001  p,2002  p,02 1  z z(二重零点),试用 MATLAB绘出该系统在 0 ~ 1kHz 频率范围内的幅频特性曲线(要求用频率响应的几何求解方法实现),并说明该系统的作用。

程序、实验结果及解释说明:

clear;f=0:0.01:1000;w=2*pi*f;p1=-100;p2=-200;A1=abs(j*w-p1);A2=abs(j*w-p2);B1=abs(j*w);H=(B1.^2)./(A1.*A2);plot(w,H)xlabel(“ 频率(rad/s)”)ylabel(“ 幅频响应”)

欢迎下载

9.已知系统的系统函数为 2 73 4)(2 32   s s ss ss H

试用 MATLAB命令绘出其零极点分布图,并判定该系统是否稳定。

程序、实验结果及解释说明:

clear;b=[0 1 4 3];a=[1 1 7 2];sys=tf(b,a);pzmap(sys)grid

欢迎下载

《信号 与系统 》 实验 小 结:

利用 matlab编程可以解决高次函数的零极点问题,很容易的绘制系统函数的特性曲线,从中可以看出系统是否稳定,并可以利用相关函数很容易的求解外加激励通过系统时的响应。(对于极点、零点出现多重的现象,也可利用相关函数,或通过编程解决系统函数的特性曲线。)

信号系统matlab实验 篇6

____________________

业:

_____ 制药工程 ___ __ __

级:

_____ 14040242__ __ __ __

号:

_____ _ 14040242 xx_ _ _____

名:

_______x x xxxxx ________

中北大学理学院

目录 实验八

级数及运算.......................................................................................................................3 【实验类型】

...........................................................................................................................3 【实验学时】

...........................................................................................................................3 【实验目的】

...........................................................................................................................3 【实验内容】

...........................................................................................................................3 【实验方法与步骤】

...............................................................................................................4 实验的基本理论与方法...................................................................................................4 二、实验使用的 MATLAB 函数....................................................................................4 【实验练习】

...........................................................................................................................5

实验八

级数及运算 【 实验类型 】

验证性 【 实验学时 】学时 【 实验目的 】

1.掌握用 MATLAB 判定常数项级数的敛散性的方法。

2.掌握用 MATLAB 进行幂级数求和的方法。

3.掌握用 MATLAB 将函数展开成幂级数的方法; 【 实验内容 】

1.熟悉有关级数收敛、发散的判定方法和级数求和; 2.利用 MATLAB 判断常数项级数的敛散性; 3.熟悉有关幂级数的各种运算; 4.利用 MATLAB 进行幂级数的求和运算; 5.利用 MATLAB 进行函数的幂级数展开;

【 实验方法与步骤 】

实验的基本理论与方法 1.常数项级数的审敛法:

(1)级数收敛的必要条件:若级数1 nnu收敛,则必有0 lim  nnu。

(2)比较审敛法的极限形式:设有正项级数1 nnu,1 nnv,若  nnnvul i m,)0(   ,则级数1 nnu,1 nnv同时收敛或发散。

(3)比值审敛法:设有正项级数1 nnu,若  nnnuu1lim,当1  时级数收敛;当1  时级数发散。

(4)条件收敛与绝对收敛:若级数1 nnu收敛(级数1 nnu必收敛),则称级数绝对收敛;若级数1 nnu发散,而级数1 nnu收敛,则称级数条件收敛。

2.幂级数展开的唯一性:若函数)(x f在含点0x的某一区间内能展开为幂级数,则必为 Taylor 级数              n nx x x fnx x x f x x x f x f x f))((!1))((!21))(()()(0 0)(20 0 0 0 0 的 二、实验使用的 MATLAB 函数

1.), , ,(0 n kk k k f symsum S 

判断级数nkk kkf0的收敛性并求级数的和。

其中,kf为级数的通项,k 为级数自变量,0k和nk为级数求和的起始

项与终止项,并可以将起始或终止项设置成无穷量 inf。若给出的kf变量中只含有一个变量,则在函数调用时可以省略 k。但是在调用这个函数时,需要先用 syms k 声明自变量 k 为符号变量。

2.taylor(f,x,k)

将)(x f按 x=0 进行 Taylor 幂级数展开 taylor(f,x,k,a)

将)(x f按 x=a 进行 Taylor 幂级数展开 其中,f 为函数的符号表达式,x 为自变量,若函数只有一个自变量,则 x 可以省略。k 为需要展开的项数,默认值为 6 项。还可以给出 a参数,表明需要获得关于 x=a 的幂级数展开。

【实验练习】

练习1 判断下列级数的收敛性,若收敛并求和。

(1)121nn

(2)1cos10 nnn 

(3)11(2)nnn n 练习2 求下列函数的收敛区间及和函数。

(1)02nnnnx

(2)0(1)!nnn xn 练习3 将下列函数展开成幂级数(1))0()ln(  a x a展开为 x 的幂级数(2))(sin 2 x展开为 x 的幂级数(3)3x展开为1  x的幂级数。

信号系统matlab实验 篇7

关键词:仿真,通信系统,数字调制,量化编码,缩短卷积码

0引言

随着通信系统复杂性的增加, 传统的设计方法已经不能适应发展的需要, 进行通信系统模拟仿真的研究, 开发一个高效的通信和系统模拟仿真环境已经成为目前的迫切需要。MATLAB是美国MathWorks公司开发的一套面向理论分析研究和工程设计处理的系统仿真软件设计包, 已经在控制领域得到广泛的应用。在MATLAB中 SIMULINK是一种用来对系统进行可视化建模, 动态仿真与分析的集成环境。为用户提供了用框图进行建模仿真的图形接口。

MATLAB提供的图形界面仿真工具SIMULINK由一系列模型库组成。此项模拟方案是针对语音信号进行。语音信号属于模拟信号所以在仿真过程中用低频正弦信号作为信号源, 来代替真实的模拟语音信号。因为是模拟信号所以需要A/D (模数转换) 。整个通信系统流程被概括为:模拟信号的产生, 模数转换, 信道编译码, 调制解调。其仿真系统总图如图1所示。

1抽样、量化和编码

为完成模/数变换, 需要对信号进行抽样, 量化, 编码。在仿真模块中选用Sampled Quantizer Encode (采样量化编码器) 。它是根据量化间隔和量化码本, 把输入的模拟信号转化成数字信号, 并输出量化电平、量化误差。量化间隔是一个长度n的向量V, 其中的每一个元素V (i) (i=1, 2, …, n) 严格单调递增。抽样量化编码器输出的数字信号y是介于0和n+1之间的整数, 它的确定方法如下:

(1) 当-∞

(2) 当V (m)

(3) 当V (n)

量化码本是一个长度等于n+1的向量C, 它给出了数字信号与量化电平C (n+1) 的关系, 即当y等于0时, 对应与量化码第一个元素C (1) ;当C (n+1) 等于m时, 对应于量化码本第m+1个元素C (m+1) 。

本设计语音信号是小幅度信号, 其出现的概率远大于大幅度信号出现的概率, 为充分利用传输的比特资源, 小幅度信号量化的间隔远小于大幅度信号的量化间隔, 所以对信号采用量化效果较好的非均匀量化。在发送端, 采用低频模拟信号作为模拟输入信号, 对其先进行基于采样定理的采样。然后A律, 使压缩取样后的离散信号范围介于-1于1之间。量化编码采用256级的均匀量化, 每个样值用0~255之间的一个整数表示, 然后对信号进行编码。经过转换模块得到0、1数据流。其中采样量化编码器的参数设置:量化[ (-1+1/255) ∶2/255∶ (1-1/255) ], 量化码本[-1∶2/255∶1]。输入信号经过量化后的结果如图2所示。

2缩短卷积码加交织的差错控制

数字信号在传输过程中, 由于信道传输特性的影响, 接收端受到的数字信号会发生各种错误, 为了减少比特误码率, 需要对传输信号进行差错控制。在差错控制中, 卷积码表现出了优秀的纠错能力。卷积编码使得一列信号输入经编码后变成了几列信号输出, 冗余度愈大, 纠错能力越强。代价是计算机复杂, 编码效率低, 即降低了频带利用率。生成多项式的形式决定了它的特性。在发射端, 如果将编码以后的信息按照某种规律删去一些码元 (打孔) , 虽然提高了编码效率, 但是纠错能力却相应下降。在接收端, 按照相同的规律, 在删去码元的位置填入0 (插零) , 则数据流就恢复了卷积编码后的形状, 然后再进行解卷积运算, 从而完成差错控制的全过程。差错控制有两种实现的方法:构建不同的卷积码;或者应用同以卷积码, 但是采用不同的缩短 (打孔) 方案以适应不同的传输数码率, 自然也有着不同的纠错能力和频带利用率。本次设计采用删除型缩短卷积码。

本次卷积编码器是1进3出的结构:poly2trellis (9, [557 663 711]) 。经过4/6的Puncture (打孔) 模块后, 即6个码元删去2个剩下4个, 变为每帧4码元的二进制数据。在调制、解调的过程中, 数据帧的大小不变, 通过Insert Zero (插零) 模块后 (即在原来删去码元的位置插入码元0) , 每帧4码元变为每帧6码元。解卷积后, 恢复为每帧2码元。

卷积码只克服了随机干扰并没有解决突发干扰。因此设计加入交织技术, 交织就是用于解决突发干扰的有效手段, 也就是改变输入信号序列的秩序, 解交织就是恢复信号的序列的秩序。交织的跨度愈大, 克服大尺寸的突发干扰越有效。

3数字调制

在发送端对码流进行编码调制 (BPSK/QPSK/OQPSK) 用二进制数字基带信号控制载频的相位来实现调制称为移相键控PSK, 即随着基带信号0、1的变化, 载波的相位发生0、π的变化。MATLAB中BPSK (二进制移相键控) 模块可以完成调制解调的工作。载波要是一对正交的函数, 譬如sinwt、coswt, 同时对它们进行PSK调制, 这样使用QPSK调制。将两个载波的调制时间错开半个码元宽度, 这样得使用OQPSK (偏置正交移相键控) 。在接收端, 对数据流进行解调恢复调制前的数据流。

为了便于比较, 三个仿真系统条件基本一致, 采用相同的信号源 (随机整数发生器) , 相同的传输环境 (加性高斯白噪声环境信噪比-5dB) , 都是基带调制、解调模块。Error Rate Calculation (误码率计算) 的参数BPSK和QPSK接收延迟为1、OQPSK为2, BPSK和QPSK计算延迟为0、OQPSK为15。仿真后得出的频谱图。

仿真结果表明:在相同传输条件下, QPSK、OQPSK调制比BPSK调制高1倍的速率传输信息, QPSK误码率高于BPSK约30倍, OQPSK误码率高与BPSK约1.6倍。由于是相位调制, 频谱反映了具有不同相位特性的同一载波, 因此频谱特性一致。

4系统仿真图

在系统图中使用OQPSK调制进行仿真, 对于BPSK、QPSK调制, 使用其相对应的调制模块。系统图搭建流程:对原始信号抽样、量化、编码、缩短卷积码加交织的差错控制、调制解调过程, 依次连接对应各个过程的信号模块。其中各个模块的参数设置必须要相互对应, 否则会报错。比如采样量化编码器的参数设置时, 其量化本的大小等于量化间隔加1, 本设计的量化间隔为[ (-1+1/255) ∶2/255∶/ (1-1/255) ]量化间隔数为254, 量化码本参数设置为[ (-1∶2/255∶1) ], 量化码本数为255。还有卷积编码器是采用的格型结构是poly2trellis (9, [557 663 711]) , 即1进3出, 其中还加入了Puncture (打孔) 和Insert Zero (插零) 模块, 其打孔矢量参数设置为[110110]插零矢量[110110], 为了解决突发干扰还加入了交织技术。由于卷积编码器的输入必须是二进制数, 就需要在量化编码器的输出端, 加入整数变二进制的模块 (Integer to Bit Converter) , 同时还添加帧模块 (To Frame) , 转换为以帧模式输出, 在进过这两步转换之后在连接卷积编码模块, 才不至于出错。系统总体仿真图如图6所示。

5结束语

本设计对语音信号首先进行抽样、量化、编码, 把模拟语音信号转换为数字信号, 然后对信号经过信道编码, 实现差错控制, 并对BPSK、QPSK、OQPSK的特性进行仿真、并对其进行仿真分析。本系统使用MATLAB/SIMULINK进行仿真, 对系统的结构、参数不断改进优化, 反复试验, 以致最优。MATLAB应用在通信系统仿真方面, 必将使我们能够对整个通信系统的工作过程产生更加生动、具体的认识、同时对探索通信领域的新课题、对通信事业的发展必将具有促进作用。

参考文献

[1]Jeffery A.Wepman, Analog-to-digital Converters andThe-ir Applications in Radio Receivers[J].IEEE Commu-nications Magazine, 1995 (5) .

[2]Mitola J.The Challenges in the Globalization of Soft-ware Radio[J].IEEE Communications Magazine, 1999 (5) .

[3]唐泽鹏, 宋威.Matlab在通信中的仿真应用[J].通讯电声, 2001, 11 (197) .

[4]徐明远, 邵玉斌.Matlab仿真在通信与电子工程中的应用 (第2版) [M].西安:西安电子科技大学出版社, 2006.

信号系统matlab实验 篇8

【关键词】数字信号处理 Matlab仿真 教学改革

【中图分类号】G71 【文献标识码】A 【文章编号】2095-3089(2016)36-0012-01

《数字信号处理》是一门建立在数学基础上的学科,该课程的特点是理论性强、起点高、难度大。同时,该课程又是一门实用性强、涉及知识面广的课程[1]。由于该课程的概念比较抽象,许多理论是基于繁琐的数学理论和推导,容易使学生感到乏味,纯粹把这门课当成是数学课来学习[2],教学效果不好。

一、数字信号处理教学改革思路

针对《数字信号处理》课程特点,将Matlab仿真应用于该课程的理论教学[3],结合仿真结果给学生讲解概念、算法,从而加深学生对知识的理解。该教学改革实施从以下几个方面着手:①教材选取,笔者选用的是丛玉良主编的《数字信号处理原理及其Matlab实现》,教材中很多例题都给出了Matlab代码,可供学生参考;②课堂讲解,每讲完一个重要理论后都用Matlab将该理论进行仿真,将结果以数据或图形的方式呈现在学生面前,帮助学生理解理论知识,激发学习兴趣;③实验教学,要求学生编制和调试Matlab程序,独立完成一些难易适中的综合性或设计性实验题,促进对理论知识的理解。

二、基于Matlab的教学实践

鉴于课程特点及教学现状,引入Matlab作为教学辅助工具,在讲解数字信号处理理论推导的基础上,穿插讲解用Matlab制作的示例和仿真,收到了很好的效果。下面以两个经典例子加以说明。

1.DFT与FFT运算量比较

根据理论分析,直接计算N点DFT,需要N2次复数乘法、 N(N-1)次复数加法,而时间抽选奇偶分解的FFT算法,需要 次复数乘法,次复数加法[4]。因此,N值越大,FFT算法越优越,比较DFT和FFT的运算时间代码如下。

N=4096; M=80;

x=[1:M, zeros(1,N-M)];

t=cputime; y1=fft(x,N); Time_fft=cputime-t;

t1=cputime; y2=dft(x,N); Time_dft=cputime-t1;

程序運行结果Time_fft =0.0468,Time_dft =22.5889。可知,计算4096点DFT,利用FFT算法只需0.0468s,直接计算需要22.5889s,即FFT算法比DFT快了482倍,从这个比较结果学生可以体会到FFT算法的重大意义。

2.分析FFT取不同长度时序列频谱的变化

设x(n)是长度为6的矩形序列,分别取其8、32、64点FFT,观察x(n)的频谱变化。

x=ones(1,6);

N=8;y1=fft(x,N);

n=0:N-1;subplot(3,1,1);stem(n,abs(y1),'.k');axis([0,9,0,6]);

N=32;y2=fft(x,N);

n=0:N-1;subplot(3,1,2);stem(n,abs(y2),'.k');axis([0,40,0,6]);

N=64;y3=fft(x,N);

n=0:N-1;subplot(3,1,3);stem(n,abs(y3),'.k');axis([0,80,0,6]);

运行程序,得到x(n)的频谱如图1所示:

图中第一幅图为N=8时的频谱,由于N值较小,只能看到8个离散的点,不能反映x(n)频谱变化规律;第二幅图为N=32时的频谱,频谱分辨率较N=8时有明显提高,可以粗略看出频谱变化规律;第三幅图为N=64时的频谱,随着N的增大,待分析信号的有效信息也增多,频率分辨率进一步提高,N值越大就越接近序列真正的频谱,因此,验证了“增加信号有效信息长度可以提高频谱分辨率”这一理论。

三、结束语

Matlab语言具有简单易学、上手快等优点, 可以方便地将其引入《数字信号处理》课程教学, 对算法及处理结果作现场仿真,丰富了教学内容,且对于促进学生的感性认识、巩固数字信号处理的理论等方面起到了积极作用。实践证明:该项教学改革实施以后,课堂教学效果有了较大的提高,学生普遍反映学习不再枯燥,很多学生课后都会花时间去琢磨Matlab仿真结果、消化已学知识,学生考试成绩也有了较大提高。

参考文献:

[1]余颖,肖静,刘树博.数字信号处理课程教学改革的探索和实践[J].东华理工大学学 报(社会科学版),2011,30(3):294-296.

[2]吴瑛,张莉,陈迎春.“数字信号处理”教学改革的几点体会[J].电气电子教学学报,2010,32(6):14-16.

[3]蔡成林,吴海燕,杨玲.《数字信号处理》教学改革的研究与探索[J].湖南人文科技学院学报,2011,(2):137-139.

信号系统matlab实验 篇9

题 目 求π的近似值的数学建模问题

学 院 材料科学与工程

专业班级

学生姓名

成 绩

年 05 月 20

MATLAB

2010 日

摘要 这个学期,我们开了MATLAB的课程,因为是一个人做所以作业选择书上一道相关的题目,并参考了一些资料。

任务

求π的近似值

分析

1111这个公式求π的近似值,直到某一项的绝对值小于10-6为止。4357采用MATLAB的循环来求

实验程序

x=1;y=0;i=1;while abs(x)>=1e-6 y=y+x;x=(-1)^i/(2*i+1);i=i+1;end format long,pi=4*y 可以用实验结果 pi =

3.14***92 收获

得出的π值已经非常接近真实的值了,学好MATLAB可以提高我们的效率。

参考文献

信号系统matlab实验 篇10

一、实验目的

在传统的机电一体化研究设计过程中,机械工程师和控制工程师虽然在共同设计开发一个系统,但是他们各自都需要建立自己的模型,然后分别采用不同的分析软件,对机械系统和控制系统进行独立的设计、调试和试验,最后进行机械系统和控制系统各自的物理样机联合调试,如果发现问题又要回到各自的模型中分别修改,然后再联合调试,显然这种方式费时费力。

基于多领域的建模与联合仿真技术很好的解决了这个问题,为机械和控制系统进行联合分析提供了一种全新的设计方法。机械工程师和控制工程师就可以享有同一个样机模型,进行设计、调试和试验,可以利用虚拟样机对机械系统和控制系统进行反复联合调试,直到获得满意的设计效果,然后进行物理样机的建造和调试。

ADAMS与MATLAB是机械系统仿真和控制系统仿真领域应用较为广泛的软件,其中ADAMS为用户提供了强大的建模、仿真环境,使用户能够对各种机械系统进行建模、仿真和分析,具有十分强大的运动学和动力学分析功能;而MATLAB具有强大的计算功能、极高的编程效率及模块化的建模方式,因此,把ADAMS与MATLAB联合起来仿真,可以充分将两者的优势相结合,将机械系统仿真分析同控制系统设计有机结合起来,实现机电一体化的联合分析。

本实验以倒立摆为例,进行ADAMS与MATLAB的联合仿真,对倒立摆的运动性能和运动规律进行分析。

二、实验方法

软件环境:MD ADAMS R3,MATLAB R2009b 2.1 建立倒立摆的动力学模型

启动ADAMS/View模块弹出如图1所示对话框,建立小车及摆杆模型。首先选择“Create a new model”选项,创建一个新的模型,将该文件保存在相应的文件夹下,本实验将结果保存在E:daolibai_adams文件夹下,将文件名取为“daolibai_adams”,其余选项保持默认。注意,在ADAMS中路径名和文件名最好采用英文字符,否则有可能在运行的过程中出现意想不到的错误。

图1 启动ADAMS/View模块

进入ADAMS/View界面后,需要对相关参数进行设置。选择菜单栏中的“Settings→Working Grid”选项,弹出如图2所示的对话框,设置网格的大小。将“Spacing”设置为X:10mm,Y:10mm,其余参数保持默认。在“Settings”选项中还可以设置图标的大小,单位等等参数,在本实验中这些参数都保持默认即可。

图2 设置网格的大小

与此同时,单击菜单栏“View”选项下的“Coordinate Window”(或者按下键盘上的F4按钮),如图3所示。可随时在窗口中观察鼠标的当前空间坐标位置,方便我们进行建模。

图3 打开鼠标当前空间位置观察窗口

右键点击ADAMS建模工具箱中的图标,选择工具Box,在视图中(0,0,0)处建一个长、宽、高分别为30cm,20cm,20cm的长方体代替小车模型,如图4所示。

图4 长方体尺寸设置

图5 在视图中建立的长方体前视图

长方体建立完毕后,需要进一步在视图中调整其位置。在当前视角下,点击工具箱中的图标,进入如图6所示的界面。在Distance选项中输入15cm,选择长方体,然后点击向左的箭头,小车模型即向左平移15cm。单击工具箱中的按钮,即可返回工具箱主界面。点击图标,切换到右视角视图,再次运用按钮,在Distance选项中输入10cm,选择长方体,然后点击向右的箭头,将小车模型向右平移10cm,如图7所示。

图6 将小车模型向左平移15cm

图7 将小车模型向右平移10cm

小车模型位置修改完毕后,右键点击小车模型,选择Rename,将模型的名称修改为xiaoche,如图8所示。与此同时,在右键菜单中选择Modify,将小车的质量修改为0.5KG,其修改方法如图9所示。

图8 修改模型名称

图9 修改小车模型的质量

至此,小车模型及参数设置完毕,接下来建立摆杆的模型。在建模工具箱中选择(Cylinder)工具建立摆杆模型,其参数设置如图10所示。

图10 摆杆参数的设置

摆杆参数设置完毕后,沿小车垂直向上的方向建立该圆柱体,建好后单击右键修改其特性参数,将部件名称修改为baigan,将摆杆质量修改为0.2kg,转动惯量修改为0.006kg·㎡。建好后,运用工具箱中的顺时针旋转5°,建完后的模型如图11所示。

工具,将摆杆绕端点

图11 倒立摆模型前视图与三维视图

倒立摆的三维模型建立好后,我们需要为模型添加相应的运动副和运动。小车与地面用平移副约束,右键单击图标,在弹出菜单中选择工具,添加方式选择2 Bod-1 Loc方式,分别选择小车和大地,在小车质心处添加水平方向的平移约束副,如图12。

图12 在小车与大地之间添加移动副

摆杆与小车之间存在旋转运动,故需要在小车与摆杆之间添加一个转动副。单击工具中的图标,添加方式选择2 Bod-1 Loc方式,分别选择摆杆和小车,在摆杆与小车的铰接处建立旋转副,如图13所示。

图13 在摆杆与小车之间建立旋转副JOINT_2

倒立摆模型的约束添加完毕之后,我们可以对模型进行运动测试。点击工具,进入运动仿真测试对话框,设置仿真时间为1秒,步长为1000,如图14所示。

图14 运动仿真参数设置

点击按钮开始运动仿真测试,可以看到小车沿着水平方向作直线运动,摆杆绕着铰接点作旋转运动。

2.2 定义倒立摆机械系统的输入输出变量

1)定义输入变量

本实验中需要在ADAMS中定义一个状态变量接收控制小车运动的水平力。选择Build菜单下的System Elements创建一个名为controlforce的状态变量,如图15所示。

图15 创建输入状态变量

由图15可以看出F(time,„)后面输入栏中的数值为0,表示该控制力的数值将从控制软件的输出获得。

给小车定义一个水平力,单击ADAMS工具箱中的工具,选择Body Moving的建模方式,一次选择小车质心作为力的作用点,选择水平向右作为其加载方向(如图16),这样该水平力将一直随着小车的移动而移动。

图16 为小车添加水平方向作用力

上述过程完成以后,右键单击该水平力,选择Modify,将其函数值定义为VARVAL(.daolibai_adams.controlforce),以实时从状态变量controlforce中接收力的数值,如图17。

图17 函数值的定义

2)定义输出变量

定义输出变量的方法与定义输入变量的方法相同,定义ADAMS状态变量以输出动力学模型的运动状态至控制软件,本实验就是要输出摆杆的摆角。选择Build菜单下的System Elements创建一个名为rotateangle的状态变量,选择摆杆的上端点和小车的铰接点出的MARKER点为摆杆绕Z轴旋转运动的参考点,如图18所示。

图18 定义输出变量

其中,在F(time,„)后面的文本输入栏输入摆杆摆角表达式AZ(MARKER_11,MARKER_12),AZ函数用来测量绕Z轴旋转的角度,本实验中即表示摆杆绕着Z轴旋转的角度。利用ADAMS工具箱中的工具,在摆杆的上端点创建一个测点MARKER_11,在小车上创建测点MARKER_12,此点为小车与摆杆的铰接点。设置完毕后单击OK按钮保存设置。3)将状态变量指定为输入/输出变量

上述状态变量定义完成之后,还需要将定义好的状态变量指定为输入或输出变量。

指定状态变量controlforce为输入变量。单击主菜单Build→Data Elements→Plant→Plant Input→New后,弹出输入变量定义对话框,如图19所示。将Variable Name栏中输入controlforce,然后单击OK按钮即完成设置。

图19 输入变量定义对话框

指定状态变量rotateangle为输入变量。单击主菜单Build→Data Elements→Plant→Plant Output→New后,弹出输入变量定义对话框,如图20所示。将Variable Name栏中输入rotateangle,然后单击OK按钮即完成设置。

图20 输出变量定义对话框 4)导出ADAMS模型

通过以上工作,已经在ADAMS机械系统模型中定义了同控制系统交互的相关状态变量和函数,接下来需要利用ADAMS/Controls模块将这些状态变量定义为输入输出信号,并将相关信息导出,以便和其他控制程序连接。

单击Controls菜单下的Plant Export子菜单,弹出如图21所示的设置窗口。将输出文件名修改为test123;在输入信号定义栏中,单击From Input按钮后,弹出数据库浏览窗口,选择定义的PINPUT_1为输入项,双击后,定义的状态变量controlforce将自动出现在输入信号一栏中,同理,输出信号的设置方法同上。目标控制软件下拉菜单可以根据需要选取,本实验目标软件选为MATLAB,其他选项保持默认。单击OK按钮,ADAMS将导出*.m文件,同时产生调用ADAMS/Solver的cmd文件和*.adm的ADAMS模型文件。

图21 ADAMS变量导出设置 上述过程完成后,MATLAB已经可以读取ADAMS模型的相关信息了。

2.3 在MATLAB/Simulink中导入ADAMS模型

1)变量的导入

启动MATLAB后,在命令窗口中输入导出的ADAMS模型名称test123,在MATLAB窗口将出现如下信息:

>> clear all >> test123 ans = 26-Jun-2013 08:53:34 %%% INFO : ADAMS plant actuators names : 1 controlforce %%% INFO : ADAMS plant sensors names : 1 rotateangle 在MATLAB命令提示符下输入who命令,显示文件中定义的变量列表,在MATLAB命令窗口中返回如下结果:

Your variables are: ADAMS_cwd ADAMS_mode ADAMS_solver_type arch ADAMS_exec ADAMS_outputs ADAMS_static flag ADAMS_host ADAMS_pinput ADAMS_sysdir machine ADAMS_init ADAMS_poutput ADAMS_uy_ids temp_str ADAMS_inputs ADAMS_prefix ans topdir 可以选择以上显示的任何一个变量名,检验变量,例如,如果输入ADAMS_outputs,则MATLAB将显示在ADAMS中定义的输出变量:

ADAMS_outputs = Rotateangle 注意:ADAMS导出的文件必须置于MATLAB工作目录下,即ADAMS与MATLAB共用同一个工作目录,否则上述过程不能进行。与此同时,还要把ADAMS/win32文件夹下的“adams_plant.mexw32”及ADAMS/Controls/win32/文件夹下的“plant.lib”放在ADMAS与MATLAB的共用工作目录下。这两个文件是adams_sub模块的核心。ADAMS提供一个S函数,用于ADAMS和simulink联合仿真的调度和通信,如果simulink找不到它,联合仿真就不能进行。2)ADAMS模块的导入

在MATLAB命令窗口中输入“adams_sys”命令,即可导入ADAMS模块,如图22所示。

图22 adams_sys模块

3)仿真参数的设置

点击图22中的adams_sys模块,即可进入adams_sub模块,如图23所示。

图23 adams_sub模块 点击图23中的MSC.Software模块,弹出如图24所示的对话框,在对话框中设置如下参数:

图24 仿真参数的设置

将联合仿真的通信间隔Communication Interval选项设置为0.001,该选项定义了ADAMS与MATLAB/Simulink交换数据的通信间隔,调整该参数将控制联合仿真的速度,并影响计算的速度。

将simulation mode选项设置为continuous,即连续仿真模式。其余参数保持默认,单击OK按钮,保存参数设置。3)联合仿真分析

在MATLAB/Simulink中建立如下控制框图(图25),设置仿真时间为5s。

图25 联合仿真控制框图

点击start命令,开始进行联合仿真,几秒钟后,将弹出一个DOS窗口,显示ADAMS在联合仿真分析中的各种数据。联合仿真结束后,仿真结果既可以在MATLAB/Simulink中查看,也可以在ADAMS后处理器中查看。图26和图27分别为Simulink模型中示波器输出的摆杆摆角随时间变换曲线和输入力矩随时间变化曲线。

图26 摆杆摆角随时间变化曲线 图27 输入力矩随时间变化曲线

一、实验结果

上一篇:争章标准下一篇:《北方工业大学学报》杂志社联系方式 编辑部投稿邮箱