当前位置:文档之家› 北理工乐学上机实验五

北理工乐学上机实验五

北理工乐学上机实验五
北理工乐学上机实验五

实验五:实验报告

1、回答问题。

根据程序1,请回答问题:

1.1 运行上述程序,语句【1】执行后的结果是什么?为什么会打印出这样的数值?将你的运行结果与其他同学对比一下,大家的结果都一样吗?

答:【1】

2009118740

4083680

4072360

8

2009116333

2293672

78

2

因为没有对数组a[5]初始化赋值,因此产生了随机数。不一样。

1.2 运行语句【2】,请输入5个整数,"12 23 34 45 56”,那么在运行语句【3】之后,输出了多少个数,分别抄写在下面,和其他同学对比一下,后五个数字一样吗?

答:【3】1223344556002293672782. 不一样。

1.3 你的数组越界了吗?你怎样知道数组越界了呢?应该如何修改语句【3】

答:越界了。产生随机数,随着i自增,数组a下标超过数组范围。

for(i=0;i<5;i++) printf("%d”,a[i]); //输出5个整数-------【3】

2、将程序2的空缺语句填写完整。

3、将程序3的空缺语句填写完整。

并根据程序3,请回答问题:

3.1 输入字符串的时候,请输入"ABCDEFGHIJK”,这个字符串的长度是多少;

(1)输入m,n的时候,输入"3 5”,输出是什么;sub=E

(2)输入m,n的时候,输入"3 3”,输出是什么;sub=

(3)输入m,n的时候,输入"5 3”,输出是什么;sub=

(4)输入m,n的时候,输入"25 30”,输出是什么;sub=

3.2,如果在输入字符串之后,需要打印字符串的长度,应该添加哪一个语句。

答:printf(”%d\n”,strlen(str));

3.3,如果再必须要求,输入的m,n落在字符串的内部,否则显示输入错误信息,应该如何修改程序。

#include

#include

int main()

{

char str[100], sub[100]; /* 字符数组str用来存放字符串,sub用来存放m和n之间的子串*/ int m, n, k, p;

printf("Enter string:");

gets(str);

printf("Enter m n:");

int l,o=0;

l=strlen(str);

do{

scanf("%d%d", &m, &n);

if(m>0&&n>0&&m

o=1;

else

printf(“输入错误,请重新输入”);}while(o==0);

for ( k=0; k

k+=1;

for ( p=0; k

sub[p]=str[k];

sub[p]='\0'; /* 在串sub的后面加上串结束标记*/ printf ("sub=%s\n", sub);system("pause");

return 0;

}

信号与系统实验报告1

学生实验报告 (理工类) 课程名称:信号与线性系统专业班级:M11通信工程 学生学号:1121413017 学生姓名:王金龙 所属院部:龙蟠学院指导教师:杨娟

20 11 ——20 12 学年第 1 学期 金陵科技学院教务处制 实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求

实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:常用连续信号的表示 实验学时: 2学时 同组学生姓名: 无 实验地点: A207 实验日期: 11.12.6 实验成绩: 批改教师: 杨娟 批改时间: 一、实验目的和要求 熟悉MATLAB 软件;利用MATLAB 软件,绘制出常用的连续时间信号。 二、实验仪器和设备 586以上计算机,装有MATLAB7.0软件 三、实验过程 1. 绘制正弦信号)t Asin t (f 0?ω+=(),其中A=1,πω2=,6/π?=; 2. 绘制指数信号at Ae t (f =),其中A=1,0.4a -=; 3. 绘制矩形脉冲信号,脉冲宽度为2; 4. 绘制三角波脉冲信号,脉冲宽度为4;斜度为0.5; 5. 对上题三角波脉冲信号进行尺度变换,分别得出)2t (f ,)2t 2(f -; 6. 绘制抽样函数Sa (t ),t 取值在-3π到+3π之间; 7. 绘制周期矩形脉冲信号,参数自定; 8. 绘制周期三角脉冲信号,参数自定。 四、实验结果与分析 1.制正弦信号)t Asin t (f 0?ω+=(),其中A=1,πω2=,6/π?= 实验代码: A=1;

信号与系统实验5

信号与系统实验(五) 班级:通信5班姓名:刘贺洋学号:11081515 班级:通信5班姓名:章仕波学号:11081522 1.符号函数的傅里叶变换 (1)下面参考程序和运行结果是信号||2 f- t =的傅里叶变换,分析程序,判 e ) (t 断运行结果正确与否。 syms t; %时间符号 f=exp(-2*abs(t)); %符号函数 F=fourier(exp(-2*abs(t))); subplot(1,2,1); ezplot(f); subplot(1,2,2); ezplot(F); 1(1)图

(2)参考上述程序试画出信号)(32 )(3t u e t f t -=的波形及其幅频特性曲线。 1(2)源程序: syms t ; %时间符号 f=2/3*exp(-3*t)*heaviside(t); %符号函数 F=fourier(f); subplot(1,2,1); ezplot(f); subplot(1,2,2); ezplot(abs(F)); 1(2)图: 2.符号函数的傅里叶变换

(1)下面参考程序是求信号211)(ωω+=j F 的逆傅里叶变换,分析程 序,比较运行结果。 源程序2(1) syms t w; F=1/(1+w^2); f=ifourier(F,t); subplot(1,2,1); ezplot(F); subplot(1,2,2); ezplot(f); 2(1)图: (2)求信号ωωωsin 2)(=j F 的逆傅里叶变换,并用程序验证。

源程序2(2) syms t w; F=2*sin(w)/w; f=ifourier(F,t); subplot(1,2,1); ezplot(F); subplot(1,2,2); ezplot(f); 图2(2):

编译原理实验指导

编译原理实验指导 实验安排: 上机实践按小组完成实验任务。每小组三人,分别完成TEST语言的词法分析、语法分析、语义分析和中间代码生成三个题目,语法分析部分可任意选择一种语法分析方法。先各自调试运行,然后每小组将程序连接在一起调试,构成一个相对完整的编译器。 实验报告: 上机结束后提交实验报告,报告内容: 1.小组成员; 2.个人完成的任务; 3.分析及设计的过程; 4.程序的连接; 5.设计中遇到的问题及解决方案; 6.总结。

实验一词法分析 一、实验目的 通过设计编制调试TEST语言的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。 二、实验预习提示 1.词法分析器的功能和输出格式 词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示 成以下的二元式(单词种别码,单词符号的属性值)。 2.TEST语言的词法规则 |ID|ID |NUM →a|b|…|z|A|B|…|Z →1|2|…|9|0 →+|-|*|/|=|(|)|{|}|:|,|;|<|>|! →>=|<=|!=|== →/* →*/ 三、实验过程和指导 1.阅读课本有关章节,明确语言的语法,画出状态图和词法分析算法流程图。 2.编制好程序。 3.准备好多组测试数据。 4.程序要求 程序输入/输出示例:

浙江大学 信号与系统实验-基础实验

本科实验报告 课程名称:信号与系统实验 姓名:Wzh 院系:信电学院 专业:信息工程 学号:xxxxxxx 指导教师:周绮敏、史笑兴、李惠忠 2017年6月 1 日 Copyright As one member of Information Science and Electronic Engineering Institute of Zhejiang University, I sincerely hope this will enable you to acquire more time to do whatever you like instead of struggling on useless homework. All the content you can use as you like. I wish you will have a meaningful journey on your college life. ——W z h

实验报告 课程名称:信号与系统实验指导老师:史笑兴、周绮敏、李惠忠成绩:__________________ 实验名称:实验一MATLAB基本实验实验类型:设计型 一、第一次基本实验 1、利用Matlab自带的sinc函数,在时间区间[-4,4]上产生sinc信号,并画出信号图形。 2、利用./运算符,在时间区间[ -4*pi , 4*pi ]上产生Sa信号,并画出信号图形。 具体要求: (1)将图形窗口分为上下两部分,sinc信号画在上图,Sa信号画在下图。 (2)对两个信号分别设置合适的坐标显示范围。 【思考题】sinc函数与Sa函数二者的关系为何?用表达式表示。 【代码】 【运行结果】

2014信号与系统实验五(2)

Matlab拓展实验1:周期方波的傅立叶级数分析 一、周期方波信号的产生 1、周期方波函数:square(t,duty) (1)其中t为时间向量。 (2)duty为占空比,此参数可缺省,缺省时,duty=50。 注:周期方波的占空比为x%,是指一个周期内,高电平持续时间占整个周期时长的x%。但在square函数中,参数duty是一个0~100的数值。例如,若需产生占空比为20%的方波,则应设置duty=20。 2、功能描述:square函数产生一个周期为2π、高低电平分别为±1的周期方波,通过适当的编程可以调整为任意周期,任意幅度,任意中心值。 【例1】在时间范围[?4π,4π]产生周期的2π的周期方波。 clear;clf;clc; step=pi/200; %设置时间步长 t=-4*pi:step:4*pi; %设置时间范围 x1=square(t); %产生占空比为50%的周期方波 duty=20;x2=square(t,duty); %产生占空比为20%的周期方波 subplot(2,1,1);plot(t,x1); axis([-4*pi,4*pi,-1.5,1.5]);title('占空比为0.5的周期方波'); subplot(2,1,2);plot(t,x2); axis([-4*pi,4*pi,-1.5,1.5]);title('占空比为0.2的周期方波'); 上述程序的运行结果如下:

【思考】如将例1程序中的作图部分修改如下(修改部分以红色标出),这种处理方式称之为横坐标对pi归一化,图形结果会有何不同?这时横坐标的数值标注含义有何变化? subplot(2,1,1);plot(t/pi,x1); axis([-4,4,-1.5,1.5]);title('占空比为0.5的周期方波'); subplot(2,1,2);plot(t/pi,x2); axis([-4,4,-1.5,1.5]);title('占空比为0.2的周期方波'); 【实践1】产生周期为1,占空比为30%,高电平为1,低电平为0的周期方波,时间范围为[?2,2],即能观察到4个完整的周期。(时间变量的尺度变换) 二、傅立叶级数分解的计算 1、周期信号傅立叶级数展开的理论分析 周期信号的傅立叶级数有若干种形式(如三角形式、指数形式),这里以指数形式的傅立叶级数为例进行说明。 信号x(t)满足,x t=x(t+T),其中T称为周期(或基波周期,单位s),F=1T称为频率(或基波频率,单位Hz),ω=2πT=2πF称为基波角频率,单位rad s。 (1)指数形式的傅立叶级数:

编译原理实验代码

[实验任务] 完成以下正则文法所描述的Pascal语言子集单词符号的词法分析程序。 <标识符>→字母︱<标识符>字母︱<标识符>数字 <无符号整数>→数字︱<无符号整数>数字 <单字符分界符> →+ ︱-︱* ︱; ︱(︱) <双字符分界符>→<大于>=︱<小于>=︱<小于>>︱<冒号>=︱<斜竖>* <小于>→< <等于>→= <大于>→> <冒号> →: <斜竖> →/ 该语言的保留字:begin end if then else for do while and or not 说明:1 该语言大小写不敏感。 2 字母为a-z A-Z,数字为0-9。 3可以对上述文法进行扩充和改造。 4 ‘/*……*/’为程序的注释部分。 [设计要求] 1、给出各单词符号的类别编码。 2、词法分析程序应能发现输入串中的错误。 3、词法分析作为单独一遍编写,词法分析结果为二元式序列组成的中间文件。 4、设计两个测试用例(尽可能完备),并给出测试结果。 demo.cpp #include #include #include #include "demo.h" char token[20]; int lookup(char *token) { for (int i = 0; i < 11; i++) { if (strcmp(token, KEY_WORDS[i]) == 0) { return i+1; } } return 0; } char getletter(FILE *fp) { return tolower(fgetc(fp)); } void out(FILE *fp, int c, char *value) {

信号与系统实验总结及心得体会

信号与系统实验总结及心得体会 2011211204 刘梦颉2011210960 信号与系统是电子信息类专业的一门重要的专业核心基础课程,该课程核心的基本概念、基本理论和分析方法都非常重要,而且系统性、理论性很强,是将学生从电路分析领域引入信号处理与传输领域的关键性课程,为此开设必要的实验对我们加强理解深入掌握基本理论和分析方法,以及对抽象的概念具体化有极大的好处,而且为后续专业课程的学习提供了理论和大量实验知识储备,对以后的学术科研和创新工作都是十分重要的。下面我将从实验总结、心得体会、意见与建议等三方面作以总结。 一.实验总结 本学期我们一共做了四次实验,分别为:信号的分类与观察、非正弦周期信号的频谱分析、信号的抽样与恢复(PAM)和模拟滤波器实验。 1.信号的分类与观察 主要目的是:观察常用信号的波形特点以及产生方法,学会用示波器对常用波形参数进行测量。主要内容是:利用实验箱中的S8模块分别产生正弦信号、指数信号和指数衰减正弦信号,并用示波器观察输出信号的波形,测量信号的各项参数,根据测量值计算信号的表达式,并且与理论值进行比较。 2.非正弦信号的频谱分析 主要目的是:掌握频谱仪的基本工作原理和正确使用方法,掌握非正弦周期信好的测试方法,理解非正弦周期信号频谱的离散性、谐波性欲收敛性。主要内

容是:通过频谱仪观察占空比为50%的方波脉冲的频谱,和占空比为20%的矩形波的频谱,并用坐标纸画图。 3.信号的抽样与恢复 主要目的是:验证抽样定理,观察了解PAM信号的形成过程。主要内容是:通过矩形脉冲对正弦信号进行抽样,再把它恢复还原过来,最后用还原后的图形与原图形进行对比,分析实验并总结。 4.模拟滤波器实验 主要目的是:了解RC无源和有源滤波器的种类、基本结构及其特性,比较无源和有源滤波器的滤波特性,比较不同阶数的滤波器的滤波效果。主要内容:利用点频法通过测试无源低通、高通、带通和有源带阻,以及有源带通滤波器的幅频特性,通过描点画图形象地把它们的特点表现出来。 通过对信号与实验课程的学习,我掌握了一些基本仪器的使用方法,DDS 信号源、实验箱、示波器、频谱仪等四种实验仪器。初步了解了对信号的测试与分析方法对以前在书本上看到的常见信号有了更加具体的认识,使得书本上的知识不再那么抽象。 DDS信号源,也就是函数发生器,可以产生固定波形,如正弦波、方波或三角波,频率和幅度可以调节。实验箱是很多个信号实验装置的集合,可谓集多种功能于一身,其中包括函数发生器、模拟滤波器、函数信号的产生与测量、信号的抽样与恢复等模块。示波器能把抽象的电信号转换成具体的图像,便于人们研究各种电现象的变化过程。利用示波器能观察各种不同的信号幅度随时间变化的波形曲线,还可以用它测试各种不同的电量,如电压、电流、频率、相位差、

信号与系统-实验报告-实验五

实验五 连续信号与系统的S 域分析 学院 班级 姓名 学号 一、实验目的 1. 熟悉拉普拉斯变换的原理及性质 2. 熟悉常见信号的拉氏变换 3. 了解正/反拉氏变换的MATLAB 实现方法和利用MATLAB 绘制三维曲面图的方法 4. 了解信号的零极点分布对信号拉氏变换曲面图的影响及续信号的拉氏变换与傅氏变换的关系 二、 实验原理 拉普拉斯变换是分析连续时间信号的重要手段。对于当t ∞时信号的幅值不衰减的时间信号,即在f(t)不满足绝对可积的条件时,其傅里叶变换可能不存在,但此时可以用拉氏变换法来分析它们。连续时间信号f(t)的单边拉普拉斯变换F(s)的定义为: 拉氏反变换的定义为: 显然,上式中F(s)是复变量s 的复变函数,为了便于理解和分析F(s)随s 的变化规律,我们将F(s)写成模及相位的形式:()()()j s F s F s e ?=。其中,|F(s)|为复信号F(s)的模,而()s ?为F(s)的相位。由于复变量s=σ+jω,如果以σ为横坐标(实轴),jω为纵坐标(虚轴),这样,复变量s 就成为一个复平面,我们称之为s 平面。从三维几何空间的角度来看,|()|F s 和()s ?分别对应着复平面上的两个曲面,如果绘出它们的三维曲面图,就可以直观地分析连续信号的拉氏变换F(s)随复变量s 的变化情况,在MATLAB 语言中有专门对信号进行正反拉氏变换的函数,并且利用 MATLAB 的三维绘图功能很容易画出漂亮的三维曲面图。 ①在MATLAB 中实现拉氏变换的函数为: F=laplace( f ) 对f(t)进行拉氏变换,其结果为F(s) F=laplace (f,v) 对f(t)进行拉氏变换,其结果为F(v) F=laplace ( f,u,v) 对f(u)进行拉氏变换,其结果为F(v) ②拉氏反变换 f=ilaplace ( F ) 对F(s)进行拉氏反变换,其结果为f(t) f=ilaplace(F,u) 对F(w)进行拉氏反变换,其结果为f(u) f=ilaplace(F,v,u ) 对F(v)进行拉氏反变换,其结果为f(u) 注意: 在调用函数laplace( )及ilaplace( )之前,要用syms 命令对所有需要用到的变量(如t,u,v,w )等进行说明,即要将这些变量说明成符号变量。对laplace( )中的f 及ilaplace( )中的F 也要用符号定义符sym 将其说明为符号表达式。具体方法参见第一部分第四章第三节。 例①:求出连续时间信号 ()sin()()f t t t ε=的拉氏变换式,并画出图形 求函数拉氏变换程序如下: syms t s %定义符号变量 ft=sym('sin(t)*Heaviside(t)'); %定义时间函数f(t)的表达式

北京理工大学信号与系统实验实验报告

实验1 信号的时域描述与运算 一、实验目的 1. 掌握信号的MATLAB表示及其可视化方法。 2. 掌握信号基本时域运算的MA TLAB实现方法。 3. 利用MA TLAB分析常用信号,加深对信号时域特性的理解。 二、实验原理与方法 1. 连续时间信号的MATLAB表示 连续时间信号指的是在连续时间范围内有定义的信号,即除了若干个不连续点外,在任何时刻信号都有定义。在MATLAB中连续时间信号可以用两种方法来表示,即向量表示法和符号对象表示法。 从严格意义上来说,MATLAB并不能处理连续时间信号,在MATLAB中连续时间信号是用等时间间隔采样后的采样值来近似表示的,当采样间隔足够小时,这些采样值就可以很好地近似表示出连续时间信号,这种表示方法称为向量表示法。表示一个连续时间信号需要使用两个向量,其中一个向量用于表示信号的时间范围,另一个向量表示连续时间信号在该时间范围内的采样值。例如一个正弦信号可以表示如下: >> t=0:0.01:10; >> x=sin(t); 利用plot(t,x)命令可以绘制上述信号的时域波形,如图1所示。 如果连续时间信号可以用表达式来描述,则还可以采用符号表达式來表示信号。例如对于上述正弦信号,可以用符号对象表示如下: >> x=sin(t); >> ezplot(X); 利用ezplot(x)命令可以绘制上述信号的时域波形 Time(seconds) 图1 利用向量表示连续时间信号

t 图 2 利用符号对象表示连续时间信号 sin(t) 2.连续时间信号的时域运算 对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。 1)相加和相乘 信号相加和相乘指两信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“*”来计算,此时要求表示两信号的向量时间范围和采样间隔相同。采用符号对象表示的两个信号,可以直接根据符号对象的运算规则运算。 2)微分和积分 对于向量表示法表示的连续时间信号,可以通过数值计算的方法计算信号的微分和积分。这里微分使用差分来近似求取的,由时间向量[N t t t ,,,21?]和采样值向量[N x x x ,,,21?]表示的连续时间信号,其微分可以通过下式求得 1,,2,1,|)('1-?=?-≈ +=N k t x x t x k k t t k 其中t ?表示采样间隔。MA TLAB 中用diff 函数来计算差分 k k x x -+1。 连续时间信号的定积分可以由MATLAB 的qud 函数实现,调用格式为 quad ('function_name',a,b) 其中,function_name 为被积函数名,a 、b 为积分区间。

实验1-3 《编译原理》词法分析程序设计方案

实验1-3 《编译原理》S语言词法分析程序设计方案 一、实验目的 了解词法分析程序的两种设计方法之一:根据状态转换图直接编程的方式; 二、实验内容 1.根据状态转换图直接编程 编写一个词法分析程序,它从左到右逐个字符的对源程序进行扫描,产生一个个的单词的二元式,形成二元式(记号)流文件输出。在此,词法分析程序作为单独的一遍,如下图所示。 具体任务有: (1)组织源程序的输入 (2)拼出单词并查找其类别编号,形成二元式输出,得到单词流文件 (3)删除注释、空格和无用符号 (4)发现并定位词法错误,需要输出错误的位置在源程序中的第几行。将错误信息输出到屏幕上。 (5)对于普通标识符和常量,分别建立标识符表和常量表(使用线性表存储),当遇到一个标识符或常量时,查找标识符表或常量表,若存在,则返回位置,否则返回0并且填写符号表或常量表。 标识符表结构:变量名,类型(整型、实型、字符型),分配的数据区地址 注:词法分析阶段只填写变量名,其它部分在语法分析、语义分析、代码生成等阶段逐步填入。 常量表结构:常量名,常量值 三、实验要求 1.能对任何S语言源程序进行分析 在运行词法分析程序时,应该用问答形式输入要被分析的S源语言程序的文件名,然后对该程序完成词法分析任务。 2.能检查并处理某些词法分析错误 词法分析程序能给出的错误信息包括:总的出错个数,每个错误所在的行号,错误的编号及错误信息。 本实验要求处理以下两种错误(编号分别为1,2): 1:非法字符:单词表中不存在的字符处理为非法字符,处理方式是删除该字符,给出错误信息,“某某字符非法”。 2:源程序文件结束而注释未结束。注释格式为:/* …… */ 四、保留字和特殊符号表

信号与系统实验实验报告

信号与系统实验实验报 告 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

实验五连续系统分析一、实验目的 深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。掌握利用MATLAB分析连续系统的时域响应、频响特性和零极点的基本方法。 二、实验原理 MATLAB提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。 三、实验内容 1.已知描述连续系统的微分方程为,输入,初始状态 ,计算该系统的响应,并与理论结果比较,列出系统响应分析的步骤。 实验代码: a=[1 10]; b=[2]; [A B C D]=tf2ss(b,a); sys=ss(A,B,C,D); t=0: :5; xt=t>0; sta=[1]; y=lsim(sys,xt,t,sta); subplot(3,1,1); plot(t,y); xlabel('t'); title('系统完全响应 y(t)'); subplot(3,1,2); plot(t,y,'-b'); hold on yt=4/5*exp(-10*t)+1/5; plot(t,yt,' : r'); legend('数值计算','理论计算'); hold off xlabel('t'); subplot(3, 1 ,3); k=y'-yt; plot(t,k); k(1) title('误差');

实验结果: 结果分析: 理论值 y(t)=0. 8*exp(-10t)*u(t)+ 程序运行出的结果与理论预期结果相差较大误差随时间增大而变小,初始值相差最大,而后两曲线基本吻合,表明该算法的系统响应在终值附近有很高的契合度,而在初值附近有较大的误差。 2.已知连续时间系统的系统函数为,求输入分别为,, 时,系统地输出,并与理论结果比较。 a=[1,3,2,0]; b=[4,1]; sys=tf(b,a); t=0: :5; x1=t>0; x2=(sin(t)).*(t>0); x3=(exp(-t)).*(t>0); y1=lsim(sys,x1,t); y2=lsim(sys,x2,t); y3=lsim(sys,x3,t); subplot(3,1,1); plot(t,y1); xlabel('t'); title('X(t)=u(t)'); subplot(3,1,2); plot(t,y2); xlabel('t'); title('X(t)=sint*u(t)'); subplot(3, 1 ,3); plot(t,y3); xlabel('t'); title('X(t)=exp(-t)u(t)'); 实验结果: 结果分析: a=[1,3,2,0]; b=[4,1]; sys=tf(b,a); t=0: :5; x1=t>0; x2=(sin(t)).*(t>0); x3=(exp(-t)).*(t>0); y1=lsim(sys,x1,t); y2=lsim(sys,x2,t); y3=lsim(sys,x3,t); subplot(3,1,1); plot(t,y1,'-b');

北京理工大学信号与系统实验报告2 LTI系统的时域分析

实验2 LTI 系统的时域分析 (基础型实验) 一. 实验目的 1. 掌握利用MATLAB 对系统进行时域分析的方法。 2. 掌握连续时间系统零状态响应、冲击响应和阶跃响应的求解方法。 3. 掌握求解离散时间系统响应、单位抽样响应的方法。 4. 加深对卷积积分和卷积和的理解。掌握利用计算机进行卷积积分和卷积和计算的方法。 二. 实验原理与方法 1. 连续时间系统时域分析的MATLAB 实现 1) 连续时间系统的MA TLAB 表示 LTI 连续系统通常可以由系统微分方程描述,设描述系统的微分方程为: (N)(N 1)(M)(M 1)1010(t)(t)...(t)b (t)b (t)...b (t)N N M M a y a y a y x x x ----++=++ 则在MATLAB 中可以建立系统模型如下: 1010[b ,b ,...,b ];a [a ,a ,...,a ];sys tf(b,a); M M N N b --=== 其中,tf 是用于创建系统模型的函数,向量a 和b 的元素是以微分方程求导的降幂次序来排列的,如果有缺项,应用0补齐,例如由微分方程 2''(t)y'(t)3y(t)x(t)y ++= 描述的系统可以表示为: >> b=[1]; >> a=[2 1 3]; >> sys=tf(b,a); 而微分方程由 ''(t)y'(t)y(t)x''(t)x(t)y ++=- 描述的系统则要表示成 >> b=[1 0 -1]; >> a=[1 1 1]; >> sys=tf(b,a); 2) 连续时间系统的零状态响应 零状态响应指系统的初始状态为零,仅由初始信号所引起的响应。MATLAB 提供了一个用于求解零状态响应的函数lism ,其调用格式如下: lism (sys,x,t )绘出输入信号及响应的波形,x 和t 表示输入信号数值向量及其时间向量。 y= lism (sys,x,t )这种调用格式不绘出波形,而是返回响应的数值向量。 3) 连续时间系统的冲激响应与阶跃响应

编译原理实验题目及报告要求

编译原理上机实验试题 一、实验目的 通过本实验使学生进一步熟悉和掌握程序设计语言的词法分析程序的设计原理及相关的设计技术, 如何针对确定的有限状态自动机进行编程序;熟悉和 掌握程序设计语言的语法分析程序的设计原理、熟悉 和掌握算符优先分析方法。 二、实验要求 本实验要求:①要求能熟练使用程序设计语言编程;②在上机之前要有详细的设计报告(预习报告); ③要编写出完成相应任务的程序并在计算机上准确 地运行;④实验结束后要写出上机实验报告。 三、实验题目 针对下面文法G(S): S→v = E E→E+E│E-E│E*E│E/E│(E)│v │i 其中,v为标识符,i为整型或实型数。要求完成 ①使用自动机技术实现一个词法分析程序; ②使用算符优先分析方法实现其语法分析程序,在 语法分析过程中同时完成常量表达式的计算。

1、题目(见“编译原理---实验题目.doc,“实验题目”中的第一项) 2、目的与要求(见“编译原理---实验题目.doc”) 3、设计原理: (1)单词分类:标识符,保留字,常数,运算符,分隔符等等 (2)单词类型编码 (3)自动机 4、程序流程框图 5、函数原型(参数,返回值) 6、关键代码(可打印,只打印关键代码) 7、调试: (1)调试过程中遇到的错误,如何改进的; (2)需要准备测试用例(至少3个,包含输入和输出)——(可打印) 8、思考: (1)你编写的程序有哪些要求是没有完成的,你觉得该采用什么方法去完成; (2)或者是你觉得程序有哪些地方可以进一步完善,简述你的完善方案。

1、题目(见“编译原理---实验题目.doc,“实验题目”中的第二项) 2、目的与要求(见“编译原理---实验题目.doc”) 3、设计原理:构造出算法优先关系表 4、程序流程框图 5、函数原型(参数,返回值) 6、关键代码(可打印,只打印关键代码) 7、调试: (1)调试过程中遇到的错误,如何改进的; (2)需要准备测试用例(至少3个,包含输入和输出)——(可打印) 8、思考: (1)你编写的程序有哪些要求是没有完成的,你觉得该采用什么方法去完成; (2)或者是你觉得程序有哪些地方可以进一步完善,简述你的完善方案。

信号与系统实验报告

实验三 常见信号的MATLAB 表示及运算 一、实验目的 1.熟悉常见信号的意义、特性及波形 2.学会使用MATLAB 表示信号的方法并绘制信号波形 3. 掌握使用MATLAB 进行信号基本运算的指令 4. 熟悉用MATLAB 实现卷积积分的方法 二、实验原理 根据MATLAB 的数值计算功能和符号运算功能,在MA TLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。在采用适当的MA TLAB 语句表示出信号后,就可以利用MA TLAB 中的绘图命令绘制出直观的信号波形了。 1.连续时间信号 从严格意义上讲,MATLAB 并不能处理连续信号。在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB 中连续信号可用向量或符号运算功能来表示。 ⑴ 向量表示法 对于连续时间信号()f t ,可以用两个行向量f 和t 来表示,其中向量t 是用形如12::t t p t =的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。向量f 为连续信号()f t 在向量t 所定义的时间点上的样值。 ⑵ 符号运算表示法 如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot()等函数来绘出信号的波形。 ⑶ 常见信号的MATLAB 表示 单位阶跃信号 单位阶跃信号的定义为:10()0 t u t t >?=? 0); %定义函数体,即函数所执行指令

15秋北航《信号与系统》在线作业二100分答案

北航《信号与系统》在线作业二 一、单选题(共10 道试题,共30 分。) 1. 信号〔ε(t)-ε(t-2)〕的拉氏变换的收敛域为________。 A. Re[s]>0 B. Re[s]>2 C. 全S平面 D. 不存在 -----------------选择:C 2. 信号的时宽与信号的频宽之间呈________。 A. 正比关系 B. 反比关系 C. 平方关系 D. 没有关系 -----------------选择:B 3. If f1(t) ←→F1(jω),f2(t) ←→F2(jω) Then________。 A. [a f1(t) + b f2(t) ] ←→ [a F1(jω) *b F2(jω) ] B. [a f1(t) + b f2(t) ] ←→ [a F1(jω) - b F2(jω) ] C. [a f1(t) + b f2(t) ] ←→ [a F1(jω) + b F2(jω) ] D. [a f1(t) + b f2(t) ] ←→ [a F1(jω) /b F2(jω) ] -----------------选择:D 4. 某信号的频谱是周期的离散谱,则对应的时域信号为________。 A. 连续的周期信号 B. 连续的非周期信号 C. 离散的非周期信号 D. 离散的周期信号 -----------------选择:D 5. 信号在时域拥有的总能量,________其频谱在频域内能量的总和。 A. 大于 B. 等于 C. 小于 D. 不等于 -----------------选择:B 6. 理想低通滤波器是________。 A. 因果系统 B. 物理可实现系统 C. 非因果系统 D. 响应不超前于激励发生的系统 -----------------选择:C 7. 连续周期信号的傅氏变换是________。 A. 连续的 B. 周期性的 C. 离散的 D. 与单周期的相同 -----------------选择:C

北京理工大学信号与系统实验 实验2 LTI系统的时域分析

实验2 LTI 系统的时域分析 一、实验目的 1.掌握利用MATLAB 对系统进行时域分析的方法。 2.掌握连续时间系统零状态响应、冲激响应和阶跃响应的求解方法。 3.掌握求解离散时间系统响应、单位抽样响应的方法。 4.加深对卷积积分和卷积和的理解。掌握利用计算机进行卷积积分和卷积和计算的方法。 二、实验原理 1、连续时间系统时域分析的MATLAB 实现 1) 连续时间系统的MATLAB 表示 设LTI 因果系统的微分方程一般式为: ) ()()()()()()()(0'1)1(1)(0'1)1(1)(t x b t x b t x b t x b t y a t y a t y a t y a m m m m n n n n ++++=++++---- 则在MATLAB 里,可以建立系统模型如下: b =[b M ,b M?1,…,b 0]; a =[a N ,a N?1,…,a 0] sys =tf (b ,a ); 2)连续时间系统的零状态响应 零状态响应指系统的初始状态为0,仅由输入信号所引起的响应。MATLAB 提供了lsim(sys,x,t)表示求解零状态响应。他不绘出波形,而是返回响应二等地数值向量。 3)连续时间系统的冲激响应与阶跃响应。 MATLAB 提供了impulse 函数来求指定时间范围内,由模型sys 描述的连续时间系统的单位冲击响应。 函数step 用于求解单位阶跃响应。 2、离散时间系统时域分析的MATLAB 实现 1)离散时间系统的MATLAB 表示。 LTI 离散系统通常可以由系统差分方程描述;差分方程为: 0101()(1)...()()(1)...() N M a y n a y n a y n M b x n b x n b x n N +-++-=+-++- 则在MATLAB 里,可以建立系统模型如下: b =[b M ,b M?1,…,b 0]; a =[a N ,a N?1,…,a 0] 2)离散时间系统对任意输入的响应。 Matlab 提供了求LTI 离散系统响应的专用函数filter ,该函数用于求取由差分方程所描述的离散时间系统在指定时间范围内对输入序列所产生的响应。其基本调用格式为: y =filter (b ,a ,x ) 3)离散时间系统的单位抽样响应。 Matlab 提供impz 函数来求解指定时间范围内,由向量b 和a 描述的离散时间系统的单位抽样响应。 3、卷积和与卷积积分 1)离散时间序列的卷积和:

编译原理实验:目标代码的生成

5. 目标代码生成 本章实验为实验四,是最后一次实验,其任务是在词法分析、语法分析、语义分析和中间代码生成程序的基础上,将C 源代码翻译为MIPS32指令序列(可以包含伪指令),并在SPIM Simulator上运行。当你完成实验四之后,你就拥有了一个自己独立编写、可以实际运行的编译器。 选择MIPS作为目标体系结构是因为它属于RISC范畴,与x86等体系结构相比形式简单便于我们处理。如果你对于MIPS体系结构或汇编语言不熟悉并不要紧,我们会提供详细的参考资料。 需要注意的是,由于本次实验的代码会与之前实验中你已经写好的代码进行对接,因此保持一个良好的代码风格、系统地设计代码结构和各模块之间的接口对于整个实验来讲相当重要。 5.1 实验内容 5.1.1 实验要求 为了完成实验四,我们建议你首先下载并安装SPIM Simulator用于对生成的目标代码进行检查和调试,SPIM Simulator的官方下载地址为:https://www.doczj.com/doc/f816170647.html,/~larus/spim.html。这是由原Wisconsin-Madison的Jame Larus教授(现在在微软)领导编写的一个功能强大的MIPS32汇编语言的汇编器和模拟器,其最新的图形界面版本QtSPIM由于使用了Qt组件因而可以在各大操作系统平台如Windows、Linux、Mac等上运行,推荐安装。我们会在后面介绍有关SPIM Simulator的使用方法。 你需要做的就是将实验三中得到的中间代码经过与具体体系结构相关的指令选择、寄存器选择以及栈管理之后,转换为MIPS32汇编代码。我们要求你的程序能输出正确的汇编代码。“正确”是指该汇编代码在SPIM Simulator(命令行或Qt版本均可)上运行结果正确。因此,以下几个方面不属于检查范围: 1)寄存器的使用与指派可以不必遵循MIPS32的约定。只要不影响在SPIM Simulator中的 正常运行,你可以随意分配MIPS体系结构中的32个通用寄存器,而不必在意哪些寄存器应该存放参数、哪些存放返回值、哪些由调用者负责保存、哪些由被调用者负责保存,等等。 2)栈的管理(包括栈帧中的内容及存放顺序)也不必遵循MIPS32的约定。你甚至可以使 用栈以外的方式对过程调用间各种数据的传递进行管理,前提是你输出的目标代码(即MIPS32汇编代码)能运行正确。

四川大学信号与系统第一次实验报告(题目二)

周期信号? ??<<-≤<-=21,5.110,5.0)(t t t t t x ,周期T=2. (1)写出x(t)的复指数形式和三角函数形式傅里叶级数表示; ?????=∴-=-+-===-+-=====? ?????---为奇,为偶,k 20)1(-1])5.1()5.0([21)(x 10])5.1()5.0([21)(x 12 22222221102110000π ππππωππωk k a k dt e t dt e t dt e t T a dt t dt t dt t T a T k k t jk t jk T t jk k T ) k cos(2)(x )(x 1jk t a t e a t n k t n k ππ∑∑+∞=+∞-∞=== , (2)利用“分析公式”或傅里叶级数性质求出谱系数; 由(1)知,?????=为奇,为偶,k 2022πk k a k (3)编程,对x(t)进行频谱分析,具体要求: 程序如下: set(gcf,'color','w') %设置背景颜色为白色 fs=128; %采样频率fs=128Hz tp = 1/fs; %采样时间间隔 N = fs*6*4; %采样点数,总采样时常为4秒 n = -N:N-1; %采样点序列 t = n * tp; %采样点时间序列 x=-0.5*sawtooth(pi*t,0.5); % 产生信号x(t) subplot(311); plot(t,x); %画信号的时域波形

axis([-6,6,-0.5,0.5]); %规定坐标轴的取值范围 xlabel('时间(s)'); %横轴的名称、单位 ylabel('时域'); %纵轴的名称、单位 title('x(t)'); %图的名称 %%%%%%以下对信号进行FFT变换%%%%%% Nf = 512; %做512点的FFT y=fft(x,Nf)/Nf; %进行fft变换——复指数形式谱系数mag=abs(y); %求幅度谱 theta = angle(y)/pi*180; %求相位谱 %%%%%%修正幅度谱(三角函数形式谱系数)%%%%%% delta_1 = [1, 2*ones(1,length(y)-1)]; mag = mag.*delta_1; %修正后的幅度谱 %%%%%%修正相位谱%%%%%% delta_2= (mag>0.01); %判别式,利用逻辑运算实现 % 将幅值为0的频率分量的相位置为0” theta = theta.*delta_2; %修正后的相位谱 f=(0:Nf-1)'*fs/Nf; %进行对应的频率转换 subplot 312 bar(f, mag, 0.1); %画幅度谱 axis([0,5,0,0.5]);xlabel('频率(Hz)');ylabel('幅值'); subplot 313 bar(f, theta, 0.1); %画相位谱 axis([0,20,-200,200]);xlabel('频率(Hz)');ylabel('相位'); %%%%%%以下将主要频谱分量叠加,实现信号的重建%%%%%% i=2; %定义循环变量

北理工信号与系统实验(5)

实验5 连续时间系统的复频域分析 一、实验目的 1.掌握拉普拉斯变换及其反变换的定义,并掌握MATLAB实现方法。 2.学习和掌握连续时间系统函数的定义及复频域分析方法。 3.掌握系统零极点的定义,加深理解系统零极点分布与系统特性的关系。 二、实验原理与方法 1.拉普拉斯变换 连续时间信号x(t)的拉普拉斯变换、反变换定义为 MATLAB中,可以采用符号数学工具箱的laplace函数和ilaplace函数进行拉氏变换和拉氏反变换。 L=laplace(F)符号表达式F的拉氏变换,F中时间变量为t,返回变量为s的结果表达式。 L=laplace(F,t)用t替换结果中的变量t。 F=ilaplace(L)以s为变量的符号表达式L的拉氏反变换,返回时间变量为t的结果表达式。 F=ilaplace(L,x)用x替换结果中的变量t。 2.连续时间系统的系统函数 连续时间系统的系统函数是系统单位冲击响应的拉氏变换 连续时间系统的系统函数还可以由输入和输出信号的拉氏变换之比得到 单位冲击响应h(t)反映了系统的固有性质,而H(s)从复频域反映了系统的固有性质。由上式描述的连续时间系统,其系统系数为s的有理函数

3.连续时间系统的零极点分析 系统的零点指使上式的分子多项式为零的点,极点指使分母多项式为零的点,零点使系统的值为零,极点使系统的值为无穷大。通常将系统函数的零极点绘在s平面上,零点用○表示,极点用×表示,得到零极点分布图。 由零点定义可知,零点和极点分别指上式分子和分母多项式的根,利用MATLAB求多项式的根可以通过roots来实现,该函数调用格式为: r=roots(c) c为多项式的系数向量,返回值r为多项式的根向量。 分别对上式的分子、分母多项式求根即可求得零极点。 此外,在MATLAB中还提供了pzmap函数来求取零极点和绘制系统函数的零极点分布图,该函数的调用格式为: Pzmap(sys) 绘出系统模型sys描述的系统的零极点分布图。 [p,z]=pzmap(sys) 这种调用方法返回极点和零点,而不绘出零极点分布图。其中sys为系统传函模型,由t命令sys=tf(b,a)实现,b、a为传递函数的分子和分母多项式的系数向量。 MATLAB还提供了两个专用函数tf2zp和zp2tf来实现系统传递函数模型和灵机电网增益模型的转换,其调用格式为 [z,p,k]=th2zp(b,a) [b,a]=th2zp(z,p,k) 其中b、a为传递函数的分子和分母多项式的系数向量,返回值z为零点列向量,p为极点列向量,k为系统函数零极点形式的增益。 三、实验内容 1.已知系统的冲激响应h(t)u(t)u(t2) =,试采用复频域的 =--,输入信号x(t)u(t) 方法求解系统的响应,编写MATLAB程序实现。 解:MATLAB程序如下: h=sym('heaviside(t)-heaviside(t-2)'); H=laplace(f) x=sym('heaviside(t)'); X=laplace(x) Y=H*X

相关主题
文本预览
相关文档 最新文档