文档库 最新最全的文档下载
当前位置:文档库 › 《递归下降分析法》实验报告

《递归下降分析法》实验报告

《递归下降分析法》实验报告
《递归下降分析法》实验报告

《编译原理》课程实验报告实验名称:递归下降分析法

姓名: LZ

学号: 110

地点:机房

教师:老师

院系:计通

专业:计算机

时间:

一.实验目的

(1) 掌握递归下降语法分析的基本原理和方法。

(2) 掌握自上而下语法分析的要求与特点。

(3)掌握相应数据结构的设计方法。

二.实验内容

#include<>

char scaner(char*input,int* p);

void S(char*input,int* p);

void T(char*input,int* p);

void T1(char*input,int* p);

void error();

int sym=0;

int main()

{

int p=0;

char input[200]={0};

printf("提示:单词只能由 ( ) a ^ , 组成,且单词必须以$#结尾\n"); printf("请输入你要识别的单词\n");

scanf("%[^#]s",input);

printf("the word you input is : %s\n",input);

sym=scaner(input,&p);

S(input,&p);

if(sym=='$')

printf("sucess\n");

else

printf("fail");

do

{

; }while(1);

return 0;

}

char scaner(char*input,int *p)

{

char temp=input[*p];

(*p)++;

return temp;

}

void S(char*input,int* p)

{

if(sym=='a'||sym=='^')

sym=scaner(input,p);

else if(sym=='(')

{

sym=scaner(input,p);

T(input,p);

if(sym==')')

sym=scaner(input,p); else

error();

}

return ;

}

void T(char*input,int* p)

{

S(input,p);

T1(input,p);

return ;

}

void T1(char*input,int* p) {

if(sym==','){

sym=scaner(input,p); S(input,p);

T1(input,p);}

else if(sym!=')')

error(); }

void error()

{

printf("error!"); return ;

}

三.实验步骤

四.总结与回顾

通过该实验的操作,我了解了语法分析器的内部工作原理,并掌握自上而下语法分析的要求与特点。了解了每个函数的功能是识别由该终结符所表示的语法成分,通过在实验中运用一定的编程技巧,掌握对表达式进行处理的一种方法;在实验最后的调试中让我对该实验有了更全面的知识掌握,从中进步了不少。

【实验报告】SPSS相关分析实验报告

SPSS相关分析实验报告 篇一:spss对数据进行相关性分析实验报告 实验一 一.实验目的 掌握用spss软件对数据进行相关性分析,熟悉其操作过程,并能分析其结果。 二.实验原理 相关性分析是考察两个变量之间线性关系的一种统计分析方法。更精确地说,当一个变量发生变化时,另一个变量如何变化,此时就需要通过计算相关系数来做深入的定量考察。P值是针对原假设H0:假设两变量无线性相关而言的。一般假设检验的显著性水平为0.05,你只需要拿p值和0.05进行比较:如果p值小于0.05,就拒绝原假设H0,说明两变量有线性相关的关系,他们无线性相关的可能性小于0.05;如果大于0.05,则一般认为无线性相关关系,至于相关的程度则要看相关系数R值,r越大,说明越相关。越小,则相关程度越低。而偏相关分析是指当两个变量同时与第三个变量相关时,将第三个变量的影响剔除,只分析另外两个变量之间相关程度的过程,其检验过程与相关分析相似。三、实验内容 掌握使用spss软件对数据进行相关性分析,从变量之间的相关关系,寻求与人均食品支出密切相关的因素。 (1)检验人均食品支出与粮价和人均收入之间的相关关系。 a.打开spss软件,输入“回归人均食品支出”数据。

b.在spssd的菜单栏中选择点击,弹出一个对话窗口。 C.在对话窗口中点击ok,系统输出结果,如下表。 从表中可以看出,人均食品支出与人均收入之间的相关系数为0.921,t检验的显著性概率为0.0000.01,拒绝零假设,表明两个变量之间显著相关。人均食品支出与粮食平均单价之间的相关系数为0.730,t检验的显著性概率为 0.0000.01,拒绝零假设,表明两个变量之间也显著相关。 (2)研究人均食品支出与人均收入之间的偏相关关系。 读入数据后: A.点击系统弹出一个对话窗口。 B.点击OK,系统输出结果,如下表。 从表中可以看出,人均食品支出与人均收入的偏相关系数为0.8665,显著性概率p=0.0000.01,说明在剔除了粮食单价的影响后,人均食品支出与人均收入依然有显著性关系,并且0.86650.921,说明它们之间的显著性关系稍有减弱。通过相关关系与偏相关关系的比较可以得知:在粮价的影响下,人均收入对人均食品支出的影响更大。 三、实验总结 1、熟悉了用spss软件对数据进行相关性分析,熟悉其操作过程。 2、通过spss软件输出的数据结果并能够分析其相互之间的关系,并且解决实际问题。 3、充分理解了相关性分析的应用原理。

火车重排问题

实验报告 实验课名称:数据结构实验二 实验名称:火车重排问题 班级:20130612 学号:13姓名:李寅龙时间:2014-5-18 一、问题描述 ①问题描述 一列货运列车共有n节车厢,每节车厢将停放在不同的车站。假定n个车站的编号分别为1~n,即货运列车按照第n站至第1站的次序经过这些车站。为了便于从列车上卸掉相应的车厢,车厢的编号应与车站的编号相同,这样,在每个车站只要卸掉最后一节车厢。所以,给定任意次序的车厢,必须重新排列它们。 车厢的重排工作可以通过转轨站完成。在转轨站中有一个入轨、一个出轨和k个缓冲轨,缓冲轨位于入轨和出轨之间。假定缓冲轨按先进先出的方式运作,设计算法解决火车车厢重排问题。 ②基本要求 ●设计存储结构表示n个车厢、k个缓冲轨以及入轨和出轨; ●设计并实现车厢重排算法; ●分析算法的时间性能。 二、数据结构设计 创建队列结构和相关操作函数 typedef struct { int *base; int front; int rear; }SqQueue; int InitQueue(SqQueue &Q){ Q.base=(int *)malloc(MAXSIZE*sizeof(int)); if(!Q.base) exit(-2); Q.front=Q.rear=0; return 1;} int DestroyQueue(SqQueue &Q){//销毁队列 free(Q.base); return 1;} int QueueEmpty(SqQueue Q){//判断队空 return (Q.front-Q.rear)%100==0 ? 1: 0;} int Getfront(SqQueue Q ,int &front){//读取队头元素 if(QueueEmpty(Q)) exit(0); front=Q.base[Q.front];

SPSS相关分析报告实验报告材料

本科教学实验报告 (实验)课程名称:数据分析技术系列实验

实验报告 学生姓名: 一、实验室名称: 二、实验项目名称:相关分析 三、实验原理 相关关系是不完全确定的随机关系。在相关关系的情况下,当一个或几个相互联系的变量取一定值得时候,与之相应的另一变量的值虽然不确定,但它仍然按照某种规律在一定的范围内变化。 按照数据度量的尺度不同,相关分析的方法也不同,连续变量之间的相关性常用Pearson简单相关系数测定;定序变量的相关系数常用Spearman秩相关系数和Kendall 秩相关系数测定;定类变量的相关分析要使用列连表分析法。 四、实验目的 理解相关分析的基本原理,掌握在SPSS软件中相关分析的主要参数设置及其含义,掌握SPSS软件分析结果的含义及其分析。 五、实验内容及步骤 实验内容:以雇员表为例,共有474条数据,运用相关分析方法对变量间的相关关系进行分析。

1)分析性别与工资之间是否存在相关关系。 2)分析教育程度与工资之间是否存在相关关系。 实验要求:掌握相关分析方法的计算思路及其在SPSS环境下的操作方法,掌握输出结果的解释。 1. 分析性别与工资之间是否存在相关关系。 分析:性别属于定类变量,是离散值,因使用卡方检验。 Step1.操作为Analyze \ Descriptive Statistics \ Crosstabs Step2.将性别(Gender)和收入(Current Salary)分别移入Rows列表框和Columns 列表框。

Step3.单击Statistics按钮,在弹出的子对话框中选中默认的Chi-square,进行卡方检验。退回到主对话框,单击ok。

数字信号处理实验报告

一、实验名称:基本信号的产生 二、实验目的:I 利用MATLAB 产生连续信号并作图 II 利用MATLAB 产生离散序列并作图 III 利用MATLAB 进行噪声处理 三、 实验内容: I 利用MATLAB 产生下列连续信号并作图 ①X(t)=-2u(t-1),-1=0); plot(t,x); 图形如右: ② X(t)=-(e^-0.1t)*sin(2/3*t),0

-1.5-1 -0.5 0.5 1 1.5 2 II 利用MATLAB 产生下列离散序列并作图 ① X(t)=1,-5<=t<=5 else 0,-15<=t<=15 MATLAB 程序如下: k= -15: 15; x=[zeros(1,10),ones(1,11),zeros(1,10)]; stem(k,x) 图形如下: ② X(t)=0.9^k*(cos(0.25*pi*k)+sin(0.25*pi*p),-20

《数字信号处理》实验报告

数字信号处理》 实验报告 年级:2011 级班级:信通 4 班姓名:朱明贵学号: 111100443 老师:李娟 福州大学 2013 年11 月

实验一快速傅里叶变换(FFT)及其应用 一、实验目的 1. 在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB^的有关函数。 2. 熟悉应用FFT对典型信号进行频谱分析的方法。 3. 了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。 4. 熟悉应用FFT实现两个序列的线性卷积和相关的方法。 二、实验类型 演示型 三、实验仪器 装有MATLA爵言的计算机 四、实验原理 在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以 使用离散Fouier变换(DFT)。这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为: JV-1 $生 反变换为: 如-器冃吋 科— 有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等 距采样,因此可以用于序列的谱分析。 FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。它 是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。常用的FFT 是以2为基数的,其长度A - o它的效率高,程序简单,使用非常方便,当要变换的 序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。 (一)在运用DFT进行频谱分析的过程中可能的产生三种误差 1 .混叠 序列的频谱是被采样信号频谱的周期延拓,当采样速率不满足Nyquist定理时,就会 发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。避免混叠现象的 唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须

信号处理实验报告、

第一题 如何用计算机模拟一个随机事件,并估计随机事件发生的概率以计算圆周率π。 解: (一)蒙特卡洛方法可用于近似计算圆周率:让计算机每次随机生成两个0到1之间的数,看以这两个实数为横纵坐标的点是否在单位圆内。生成一系列随机点,统计单位圆内的点数与总点数,(圆面积和外切正方形面积之比为π:4),当随机点取得越多时,其结果越接近于圆周率。 代码: N=100000000; x=rand(N,1); y=rand(N,1); count=0; for i=1:N if (x(i)^2+y(i)^2<=1) count=count+1; end end PI=vpa(4*count/N,10) PI = 3.1420384

蒙特卡洛法实验结果与试验次数相关,试验次数增加,结果更接近理论值 (二)18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d的平行线,将一根长度为l (l

火车调度问题PROJECT

Project1 火车车厢重排调度 年级:2014级 学院:电子与信息工程学院 班级:智能科学与技术、自动化姓名:王金顶 14350046 姓名:王帆 14350045 姓名:张宇航 14350069

【题目要求】 1.问题: 一列火车要将n节车厢分别送往n个车站,车站按照n,n-1,…,1的编号次序经过车站。假设车厢的编号就是其目的地车站的编号。 2.要求: 给定一个任意的车厢排列次序。重新排列车厢,使其按照从1到n的次序排列。规定重排调度时车厢只能从入轨到缓冲铁轨,或者从缓冲铁轨到出轨。【数据结构与算法】 本程序将栈的空间设为25(可以通过全局常量maxstack直接修改),栈的最大数量设为100(可以直接修改)。可以处理任意少于100个任意次序车厢的火车重排调度问题。 流程图如图1:

图1 总流程图【测试数据、结果及分析】 实验1:顺序输入 车厢节数:10 车厢顺序:1 2 3 4 5 6 7 8 9 10 测试结果如图2。

图2 实验1测试结果 测试序列重排成功,使用0个栈,返回值正常,实验程序运行良好。 实验2:倒序输入 车厢节数:10 车厢顺序:10 9 8 7 6 5 4 3 2 1 测试结果如图3。 图3实验2测试结果 测试序列重排成功,使用1个栈,实验程序运行良好。 实验3:乱序输入

车厢节数:10 车厢顺序:3 2 4 5 7 8 9 6 1 10 测试结果如图4。 图4实验3测试结果 测试序列重排成功,使用7个栈,实验程序运行良好。 实验4:乱序输入 车厢节数:25 车厢顺序:25 2 6 4 5 3 7 23 9 19 11 12 16 14 15 13 17 18 10 22 21 20 8 24 1 测试结果如图5。

数字信号处理期末综合实验报告

数字信号处理综合实验报告 实验题目:基于Matlab的语音信号去噪及仿真 专业名称: 学号: 姓名: 日期: 报告内容: 一、实验原理 1、去噪的原理 1.1 采样定理 在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式: 理想低通信道的最高大码元传输速率=2W*log2 N (其中W是理想低通信道的带宽,N是电平强度)为什么把采样频率设为8kHz?在数字通信中,根据采样定理, 最小采样频率为语音信号最高频率的

2倍 频带为F的连续信号f(t)可用一系列离散的采样值f(t1),f(t1±Δt),f(t1±2Δt),...来表示,只要这些采样点的时间间隔Δt≤1/2F,便可根据各采样值完全恢复原来的信号f(t)。这是时域采样定理的一种表述方式。 时域采样定理的另一种表述方式是:当时间信号函数f(t)的最高频率分量为fM时,f(t)的值可由一系列采样间隔小于或等于1/2fM的采样值来确定,即采样点的重复频率f≥2fM。图为模拟信号和采样样本的示意图。 时域采样定理是采样误差理论、随机变量采样理论和多变量采样理论的基础。对于时间上受限制的连续信号f(t)(即当│t│>T时,f(t)=0,这里T=T2-T1是信号的持续时间),若其频谱为F(ω),则可在频域上用一系列离散的采样值 (1-1) 采样值来表示,只要这些采样点的频率间隔 (1-2) 。 1.2 采样频率 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算

哈尔滨工程大学 语音信号处理实验报告

实 验 报 告 实验课程名称: 语音信号处理实验 姓名: 班级: 20120811 学号: 指导教师 张磊 实验教室 21B#293 实验时间 2015年4月12日 实验成绩 实验序号 实验名称 实验过程 实验结果 实验成绩 实验一 语音信号的端点检测 实验二 语音信号的特征提取 实验三 语音信号的基频提取

实验一 语音信号的端点检测 一、实验目的 1、掌握短时能量的求解方法 2、掌握短时平均过零率的求解方法 3、掌握利用短时平均过零率和短时能量等特征,对输入的语音信号进行端点检测。 二、实验设备 HP 计算机、Matlab 软件 三、实验原理 1、短时能量 语音信号的短时能量分析给出了反应这些幅度变化的一个合适的描述方法。对于信号)}({n x ,短时能量的定义如下: ∑ ∑∞ -∞ =∞ -∞ =*=-= -= m m n n h n x m n h m x m n w m x E )()()()()]()([222 2、短时平均过零率 短时平均过零率是指每帧内信号通过零值的次数。对于连续语音信号,可以 考察其时域波形通过时间轴的情况。对于离散信号,实质上就是信号采样点符号变化的次数。过零率在一定程度上可以反映出频率的信息。短时平均过零率的公式为: ∑∑-+=∞ -∞=--= ---=1)] 1(sgn[)](sgn[2 1 ) ()]1(sgn[)](sgn[21N n n m w w m n m x m x m n w m x m x Z 其中,sgn[.]是符号函数,即 ? ? ?<-≥=0)(10)(1 )](sgn[n x n x n x

火车车厢重排问题,队列,c语言

计算机科学与工程学院 《算法与数据结构》试验报告[一] 专业班级10级计算机工程02 试验地点计算机大楼计工教研室学生学号1005080222 指导教师蔡琼 学生姓名肖宇博试验时间2012-4-21 试验项目算法与数据结构 试验类别基础性()设计性()综合性(√)其它()试 验目的及要求(1)掌握队列的特点及其存储方法;(2)掌握队列的常见算法和程序实现。 成 绩评定表 类别评分标准分值得分合计 上机表现积极出勤、遵守纪律 主动完成设计任务 30分 程序与报告程序代码规范、功能正确 报告详实完整、体现收获 70分 备注: 评阅教师: 日期:年月日

出 轨 入 轨 581 H 1 H 3 H 2 963 742 出 轨 入 轨 58 H 1 H 3 H 2 96 7 4321 出 轨 入 轨 5 H 1 H 3 H 2 96 87 54321 出 轨 入 轨 H 1 H 3 H 2 987654321 (a) 将369、247依次入缓冲轨 (b) 将1移至出轨,234移至 出轨 (c) 将8入缓冲轨,5移至出轨 (d) 将6789移至出轨 试 验 内 容 一、实验目的和要求 1、实验目的: (1)掌握队列的特点及其存储方法; (2)掌握队列的常见算法和程序实现。 2、实验内容: 火车车厢重排问题。 转轨站示意图如下: 火车车厢重排算法伪代码如下: 出 轨 入 轨 581742963 987654321 H 1 H 3 H 2

1. 分别对k个队列初始化; 2. 初始化下一个要输出的车厢编号nowOut = 1; 3. 依次取入轨中的每一个车厢的编号; 3.1 如果入轨中的车厢编号等于nowOut,则 3.1.1 输出该车厢; 3.1.2 nowOut++; 3.2 否则,考察每一个缓冲轨队列 for (j=1; j<=k; j++) 3.2.1 取队列j 的队头元素c; 3.2.2 如果c=nowOut,则 3.2.2.1 将队列j 的队头元素出队并输出; 3.2.2.2 nowOut++; 3.3 如果入轨和缓冲轨的队头元素没有编号为nowOut的车厢,则 3.3.1 求小于入轨中第一个车厢编号的最大队尾元素所在队列编号j; 3.3.2 如果j 存在,则把入轨中的第一个车厢移至缓冲轨j; 3.3.2 如果j 不存在,但有多于一个空缓冲轨,则把入轨中的第一个车厢移至一个 空缓冲轨;否则车厢无法重排,算法结束; 3、实验要求: 使用顺序存储队列的方式完成该实验。 二、设计分析 根据实验要求,采用队列来完成本次实验。 实验中定义了三个队列,一个用来存储输入的车厢号,另两个用来存储缓存出队顺序及序号。 三、源程序代码 #include #include #define Max 20 typedef struct { int data[Max]; int front,rear; }squeue; void initqueue(squeue *&q) { q=(squeue *)malloc(sizeof(squeue)); q->front=q->rear=0; }

数字信号处理实验报告

语音信号的数字滤波 一、实验目的: 1、掌握使用FFT进行信号谱分析的方法 2、设计数字滤波器对指定的语音信号进行滤波处理 二、实验内容 设计数字滤波器滤除语音信号中的干扰(4 学时) 1、使用Matlab的fft函数对语音信号进行频谱分析,找出干扰信号的频谱; 2、设计数字滤波器滤除语音信号中的干扰分量,并进行播放对比。 三、实验原理 通过观察原语音信号的频谱,幅值特别大的地方即为噪声频谱分量,根据对称性,发现有四个频率的正弦波干扰,将它们分别滤掉即可。采用梳状滤波器,经过计算可知,梳状滤波器h[n]={1,A,1}的频响|H(w)|=|A+2cos(w)|,由需要滤掉的频率分量的频响w,即可得到A,进而得到滤波器的系统函数h[n]。而由于是在离散频域内进行滤波,所以令w=(2k*pi/N)即可。 对原信号和四次滤波后的信号分别进行FFT变换,可以得到它们的幅度相应。最后,将四次滤波后的声音信号输出。 四、matlab代码 clc;clear;close all; [audio_data,fs]=wavread('SunshineSquare.wav'); %读取未处理声音 sound(audio_data,fs); N = length(audio_data); K = 0:2/N:2*(N-1)/N; %K为频率采样点

%sound(audio_data,fs); %进行一次FFT变换 FFT_audio_data=fft(audio_data); mag_FFT_audio_data = abs(FFT_audio_data); %画图 figure(1) %原信号时域 subplot(2,1,1);plot(audio_data);grid; title('未滤波时原信号时域');xlabel('以1/fs为单位的时间');ylabel('采样值'); %FFT幅度相位 subplot(2,1,2);plot(K,mag_FFT_audio_data);grid; title('原信号幅度');xlabel('以pi为单位的频率');ylabel('幅度'); %构造h[n]={1,A,1}的梳状滤波器,计算A=2cosW,妻子W为要滤掉的频率%由原信号频谱可知要分四次滤波,滤掉频响中幅度大的频率分量 %第一次滤波 a = [1,0,0,0];%y[n]的系数 [temp,k]=max(FFT_audio_data); A1=-2*cos(2*pi*k/N); h1=[1,A1,1]; audio_data_h1 = filter(h1,a,audio_data); FFT_audio_data_h1=fft(audio_data_h1);

spss相关分析实验报告

实验五相关分析实验报关费 一、实验目的: 学习利用spss对数据进行相关分析(积差相关、肯德尔等级相关)、偏相关分析。利用交叉表进行相关分析。 二、实验内容: 某班学生成绩表1如实验图表所示。 1.对该班物理成绩与数学成绩之间进行积差相关分析和肯德尔等级相关 分析。 2.在控制物理成绩不变的条件下,做数学成绩与英语成绩的相关分析(这 种情况下的相关分析称为偏相关分析)。 3.对该班物理成绩与数学成绩制作交叉表及进行其中的相关分析。 三、实验步骤: 1.选择分析→相关→双变量,弹出窗口,在对话框的变量列表中选变量 “数学成绩”、“物理成绩”,在相关系数列进行选择,本次实验选择 皮尔逊相关(积差相关)和肯德尔等级相关。单击选项,对描述统计 量进行选择,选择标准差和均值。单击确定,得出输出结果,对结果 进行分析解释。 2.选择分析→相关→偏相关,弹出窗口,在对话框的变量列表选变量“数 学成绩”、“英语成绩”,在控制列表选择要控制的变量“物理成绩” 以在控制物理成绩的影响下对变量数学成绩与英语成绩进行偏相关分 析;在“显著性检验”框中选双侧检验,单击确定,得出输出结果, 对结果进行分析解释。 3.选择分析→描述统计→交叉表,弹出窗口,对交叉表的行和列进行选 择,行选择为数学成绩,列选择为物理成绩。然后对统计量进行设置, 选择相关性,点击继续→确定,得出输出结果,对结果进行分析解释。 四、实验结果与分析:

表1

五、实验结果及其分析:

分析一:由实验结果可观察出,数学成绩与物理成绩的积差相关系数r=,肯德尔等级相关系数r=可知该班物理成绩和数学成绩之间存在显著相关。

工程信号处理实验报告

( 2011-2012 学年 第二学期) 重庆理工大学研究生课程论文 课程论文题目: 《工程信号处理实验报告》 课程名称 工程信号处理实验 课程类别 □学位课 非学位课 任课教师 谢明 所在学院 汽车学院 学科专业 机械设计及理念 姓名 李文中 学 号 50110802313 提交日期 2012年4月12日

工程信号处理实验报告 姓名:李文中学号:50110802313 实验报告一 实验名称:数据信号采集及采样参数选定 1实验目的 1.1了解信号采集系统的组成,初步掌握信号采集系统的使用。 1.2加深对采样定理的理解,掌握采样参数的选择方法 1.3了解信号采集在工程信号处理中的实际应用,及注意事项。 2 实验原理 2.1 模数转换及其控制 对模拟信号进行采集,就是将模拟信号转换为数字信号,即模/数(A/D)转换,然后送入计算机或专用设备进行处理。模数转换包括三个步骤:(1)采样,(2)量化,(3)编码。采样,是对已知的模拟信号按一定的间隔抽出一个样本数据。若间隔为一定时间 T,则称这种采样为等时间间隔采样。除特别注明外,一般都采用等时间间隔采样;量化,是一种用有限字长的数字量逼近模拟量的过程。编码,是将已经量化的数字量变为二进制数码,因为数字处理器只能接受有限长的二进制数。模拟信号经过这三步转换后,变成了时间上离散、幅值上量化的数字信号。A/D转换器是完成这三个步骤的主要器件。 在信号采集系统中,A/D 转换器与计算机联合使用完成模数转换。用计算机的时钟或用软件产生等间隔采样脉冲控制 A/D 转换器采样。A/D 转换器通过内部电路进行量化与编码,输出有限长的二进制代码。信号采集系统中,通常由以 A/D转换器为核心的接口电路及控制软件,进行信号采集控制。 *注这部分是由本实验所用的信号采集器自动完成的,以上也是实验器材-信号采集器的部分工作原理。以后实验中就不再赘述。 2.2 信号采集的参数选择

信号处理实验报告

数字信号处理 第四次实验报告 一、 实验目的 1.了解离散系统的零极点与系统因果性能和稳定性的关系 2.观察离散系统零极点对系统冲激响应的影响 3.熟悉MATLAB 中进行离散系统零极点分析的常用子函数 4.加深对离散系统的频率响应特性基本概念的理解 5.了解离散系统的零极点与频响特性之间的关系 6.熟悉MATLAB 中进行离散系统分析频响特性的常用子函数,掌握离散系统幅频响应和相频响应的求解方法。 二、实验过程 9.2已知离散时间系统函数分别为 ) 7.05.0)(7.05.0(3 .0)(1j z j z z z H ++-+-= )1)(1(3 .0)() 8.06.0)(8.06.0(3 .0)(32j z j z z z H j z j z z z H ++-+-= ++-+-= 求这些系统的零极点分布图以及系统的冲击响应,并判断系统因果稳定性。 %---------第一式-----------------------------------------------------------------------------% z1=[0.3,0]';p1=[-0.5+0.7j,-0.5-0.7j]';k=1; %z1零点向量矩阵,p1极点向量矩阵,k 系统增益系数---------------------------% [bl,al]=zp2tf(z1,p1,k); %将零极点增益函数转换为系统传递函数 subplot(3,2,1),zplane(bl,al); %zplane 显示离散系统的零极点分布图 ylabel('极点在单位圆内'); subplot(3,2,2),impz(bl,al,20); %impz 绘制系统的冲激响应图 %---------第二式-----------------------------------------------------------------------------% z2=[0,3,0]';p2=[-0.6+0.8j,-0.6-0.8j]'; %z2零点向量矩阵,p2极点向量矩阵---------------------------------------------------% [b2,a2]=zp2tf(z2,p2,k); %将零极点增益函数转换为系统传递函数 subplot(3,2,3),zplane(b2,a2); %zplane 显示离散系统的零极点分布图 ylabel('极点在单位圆上'); subplot(3,2,4),impz(b2,a2,20); %impz 绘制系统的冲激响应图 %---------第三式-----------------------------------------------------------------------------%

迷宫问题 火车车厢重排问题 实验报告

实验报告 实验名称:数据结构实验二 实验名称:栈和队列 时间: 班级:000 学号:000 姓名:神刀公子 一、问题描述 (1)迷宫问题 ①问题描述 这是心理学中的一个经典问题。心理学家把一只老鼠从一个无顶盖的大盒子的入口处放入,让老鼠自行找到出口出来。迷宫中设置很多障碍阻止老鼠前行,迷宫唯一的出口处放有一块奶酪,吸引老鼠找到出口。 简而言之,迷宫问题是解决从布置了许多障碍的通道中寻找出路的问题。本题设置的迷宫如图1所示。 入口 出口 图1 迷宫示意图 迷宫四周设为墙;无填充处,为可通处。设每个点有四个可通方向,分别为东、南、西、北。左上角为入口。右下角为出口。迷宫有一个入口,一个出口。设计程序求解迷宫的一条通路。 ②基本要求 ●设计迷宫的存储结构。 ●设计通路的存储结构。 ●设计求解通路的算法。 ●设计迷宫显示和通路的显示方式。 ●输入:迷宫、入口及出口可在程序中设定,也可从键盘输入。 ●输出:迷宫、入口、出口及通路路径。 ③思考 ●若每个点有8个试探方向(东、东南、南、西南、西、西北、北、东北), 如何修改程序? ●如何求得所有通路? ●如何求得最短通路? (2)火车车厢重排问题 ①问题描述 一列货运列车共有n节车厢,每节车厢将停放在不同的车站。假定n个车站的编号分别为1~n,即货运列车按照第n站至第1站的次序经过这些车站。为

了便于从列车上卸掉相应的车厢,车厢的编号应与车站的编号相同,这样,在每个车站只要卸掉最后一节车厢。所以,给定任意次序的车厢,必须重新排列它们。 车厢的重排工作可以通过转轨站完成。在转轨站中有一个入轨、一个出轨和k个缓冲轨,缓冲轨位于入轨和出轨之间。假定缓冲轨按先进先出的方式运作,设计算法解决火车车厢重排问题。 ②基本要求 ●设计存储结构表示n个车厢、k个缓冲轨以及入轨和出轨; ●设计并实现车厢重排算法; ●分析算法的时间性能。 ③思考 ●如果缓冲轨按后进先出的方式工作,即用栈表示缓冲轨,应如何解决火 车车厢重排问题? 二、数据结构设计 迷宫问题和火车重排问题可以通过栈与队列实现的。迷宫的进出和车厢的出入轨和缓冲轨主要是对栈与队列的判断和操作。 int empty( STLink top[],int n) /*判断是否为空*/ { return (top[n]==NULL); } int push(STLink top[],int A,int m) /*入栈*/ { STLink p; if(!(p=(STLink)malloc(LEN))) return 0; else { p->data=A; p->link=top[m]; top[m]=p; return 1; } } int pop(STLink top[],int m) /*出栈*/ { int A; STLink p;

数字信号处理综合设计实验报告

数字信号处理实验八 调制解调系统的实现 一、实验目的: (1)深刻理解滤波器的设计指标及根据指标进行数字滤波器设计的过程(2)了解滤波器在通信系统中的应用 二、实验步骤: 1.通过SYSTEMVIEW软件设计与仿真工具,设计一个FIR数字带通滤波器,预先给定截止频率和在截止频率上的幅度值,通过软件设计完后,确认滤波器的阶数和系统函数,画出该滤波器的频率响应曲线,进行技术指标的验证。 建立一个两载波幅度调制与解调的通信系统,将该滤波器作为两个载波分别解调的关键部件,验证其带通的频率特性的有效性。系统框图如下: 规划整个系统,确定系统的采样频率、观测时间、细化并设计整个系统,仿真调整并不断改进达到正确调制、正确滤波、正确解调的目的。(参考文件

zhan3.svu) (1)检查滤波器的波特图,看是否达到预定要求; (2)检查幅度调制的波形以及相加后的信号的波形与频谱是否正常; (3)检查解调后的的基带信号是否正常,分析波形变形的原因和解决措施;(4)实验中必须体现带通滤波器的物理意义和在实际中的应用价值。 2.熟悉matlab中的仿真系统; 3.将1.中设计的SYSTEMVIEW(如zhan3.svu)系统移植到matlab中的仿真环境中,使其达到相同的效果; 4.或者不用仿真环境,编写程序实现该系统,并验证调制解调前后的信号是否一致。 实验总共提供三个单元的时间(6节课)给学生,由学生自行学习和自行设计与移植 三、系统设计 本系统是基于matlab的simulink仿真软件设计的基带信号调制与解调的系统,利用matlab自带的数字信号仿真模块构成其原理框图并通过设置载波、带通滤波器以及低通滤波器等把基带信号经过载波调制后再经乘法器、带通滤波器和低通滤波器等电路系统能解调出基带信号。 1、实验原理框图

数字信号处理实验报告(同名22433)

《数字信号处理》 实验报告 课程名称:《数字信号处理》 学院:信息科学与工程学院 专业班级:通信1502班 学生姓名:侯子强 学号:0905140322 指导教师:李宏 2017年5月28日

实验一 离散时间信号和系统响应 一. 实验目的 1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解 2. 掌握时域离散系统的时域特性 3. 利用卷积方法观察分析系统的时域特性 4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析 二、实验原理 1. 采样是连续信号数字化处理的第一个关键环节。对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。 对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: ?()()()a a x t x t p t = 式中()p t 为周期冲激脉冲,$()a x t 为()a x t 的理想采样。 ()a x t 的傅里叶变换为μ ()a X j Ω: 上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。也即采样信 号的频谱μ()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成 的。因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号 计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即 ()() n P t t nT δ∞ =-∞ = -∑μ1()()*() 21 ()n a a a s X j X j P j X j jn T π∞ =-∞ Ω=ΩΩ= Ω-Ω∑μ()()|j a T X j X e ωω=ΩΩ=

2012级算法与数据结构实验指导书18

《算法与数据结构》实验指导书 实验课程类别:课程内实验 实验课程性质:必修 适用专业、年级:2012级计算机大类 开课院、系:计算机科学与工程学院 学时:18 编写依据:《算法与数据结构》实验教学大纲 修订时间:2014年2月 《算法与数据结构》课程实验指导书(以下简称:指导书)是针对计算机学院所开设的对应课程的上机实验而编写的教学文件,供学生上机实验时使用。 上机的工作环境要求:Windows 2000或以上操作系统、VC++ 6.0或者其它高级程序设计语言。 学生应按指导教师的要求独立完成实验,并按要求撰写实验报告。 每一个实验,编程上机调试并且提交电子文档实验报告,以学号姓名作为文件名上传。报告内容至少包含如下内容: 1、学生基本情况:专业班级、学号、姓名 2、实验题目、实验内容 3、设计分析 4、源程序代码 5、测试用例(尽量覆盖所有分支) 6、实验总结 一.实验内容与学时分配 序次实验 题目 实验 类型 基本技能训练 学 时 一线性结构综合应用基础性(1)掌握线性结构的常用操作; (2)能够应用线性结构解决比较简单的问题。 10 二非线性结构综合应 用 设计性 (1)掌握树形、图形结构的插入、删除、查找等算法; (2)能够应用二叉树解决比较简单的问题。 4 三查找技术综合应用设计性(1)熟练掌握查找的常用算法; (2)设计和应用查找算法解决简单的实际问题。 2 四排序技术综合应用基础性(1)熟练掌握常用的排序方法,并掌握用高级语言实 现排序算法的方法; (2)深刻理解排序的定义和各种排序方法的特点,并 能加以灵活应用; (3)了解各种方法的排序过程及其依据的原则,并掌 握各种排序方法的时间复杂度的分析方法。 2 二.实验说明

数字信号处理实验报告 (实验四)

实验四 离散时间信号的DTFT 一、实验目的 1. 运用MA TLAB 计算离散时间系统的频率响应。 2. 运用MA TLAB 验证离散时间傅立叶变换的性质。 二、实验原理 (一)、计算离散时间系统的DTFT 已知一个离散时间系统∑∑==-= -N k k N k k k n x b k n y a 00)()(,可以用MA TLAB 函数frequz 非常方便地在给定的L 个离散频率点l ωω=处进行计算。由于)(ωj e H 是ω的连续函数,需要 尽可能大地选取L 的值(因为严格说,在MA TLAB 中不使用symbolic 工具箱是不能分析模拟信号的,但是当采样时间间隔充分小的时候,可产生平滑的图形),以使得命令plot 产生的图形和真实离散时间傅立叶变换的图形尽可能一致。在MA TLAB 中,freqz 计算出序列{M b b b ,,,10 }和{N a a a ,,,10 }的L 点离散傅立叶变换,然后对其离散傅立叶变换值相除 得到L l e H l j ,,2,1),( =ω。为了更加方便快速地运算,应将L 的值选为2的幂,如256或 者512。 例3.1 运用MA TLAB 画出以下系统的频率响应。 y(n)-0.6y(n-1)=2x(n)+x(n-1) 程序: clf; w=-4*pi:8*pi/511:4*pi; num=[2 1];den=[1 -0.6]; h=freqz(num,den,w); subplot(2,1,1) plot(w/pi,real(h));grid title(‘H(e^{j\omega}的实部’)) xlabel(‘\omega/ \pi ’); ylabel(‘振幅’); subplot(2,1,1) plot(w/pi,imag(h));grid title(‘H(e^{j\omega}的虚部’)) xlabel(‘\omega/ \pi ’); ylabel(‘振幅’); (二)、离散时间傅立叶变换DTFT 的性质。 1.时移与频移 设 )]([)(n x FT e X j =ω, 那么

《语音信号处理》实验报告

盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 中南大学 信息科学与工程学院 语音信号处理 实验报告 指导老师:覃爱娜 学生班级:信息0704 学生名称:阮光武 学生学好:0903070430 提交日期:2010年6月18日

实验一 语音波形文件的分析和读取 一、实验的任务、性质与目的 本实验是选修《语音信号处理》课的电子信息类专业学生的基础实验。通过实验: (1)掌握语音信号的基本特性理论:随机性,时变特性,短时平稳性,相关性等; (2)掌握语音信号的录入方式和*.WAV音波文件的存储结构; (3)使学生初步掌握语音信号处理的一般实验方法。 二、实验原理和步骤: WAV文件格式简介 WAV文件是多媒体中使用了声波文件的格式之一,它是以RIFF格式为标准。每个WAV文件的头四个字节就是“RIFF”。WAV文件由文件头和数据体两大部分组成,其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。常见的WAV声音文件有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。采样率是指声音信号在“模拟→数字”转换过程中,单位时间内采样的次数;采样值是指每一次采样周期内声音模拟信号的积分值。对于单声道声音文件,采样数据为8位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。WAV文件数据块包含以脉冲编码调制(PCM)格式表示的样本。在单声道WAV文件中,道0代表左声道,声道1代表右声道;在多声道WAV文件中,样本是交替出现的。WAV文件的格式见表1。

迷宫问题 火车车厢重排问题 实验报告材料

实验报告

了便于从列车上卸掉相应的车厢,车厢的编号应与车站的编号相同,这样,在每个车站只要卸掉最后一节车厢。所以,给定任意次序的车厢,必须重新排列它们。 车厢的重排工作可以通过转轨站完成。在转轨站中有一个入轨、一个出轨和k个缓冲轨,缓冲轨位于入轨和出轨之间。假定缓冲轨按先进先出的方式运作,设计算法解决火车车厢重排问题。 ②基本要求 ●设计存储结构表示n个车厢、k个缓冲轨以及入轨和出轨; ●设计并实现车厢重排算法; ●分析算法的时间性能。 ③思考 ●如果缓冲轨按后进先出的方式工作,即用栈表示缓冲轨,应如何解决火 车车厢重排问题? 二、数据结构设计 迷宫问题和火车重排问题可以通过栈与队列实现的。迷宫的进出和车厢的出入轨和缓冲轨主要是对栈与队列的判断和操作。 int empty( STLink top[],int n) /*判断是否为空*/ { return (top[n]==NULL); } int push(STLink top[],int A,int m) /*入栈*/ { STLink p; if(!(p=(STLink)malloc(LEN))) return 0; else { p->data=A; p->link=top[m]; top[m]=p; return 1; } } int pop(STLink top[],int m) /*出栈*/ { int A; STLink p;

p=top[m]; A=p->data; top[m]=top[m]->link; free(p); return A; } struct Node{ /定义队列 int data; Node* next; }; 三、算法设计 1.迷宫问题: 进入格子后,需要判断此时格子位置周围障碍物的位置,对其进行压栈,判断,然后看是否满足条件,满足就进栈,不满足就弹出,然后输出不能通过建立迷宫: typedef struct LStack { Element elem; struct LStack *next; }*PLStack; int InitStack(PLStack &S) { S=NULL; return 1; } int StackEmpty(PLStack S) { if(S==NULL) return 1; else return 0; } int Push(PLStack &S, Element e) { PLStack p; p=(PLStack)malloc(sizeof(LStack)); p->elem=e; p->next=S; S=p; return 1; }

相关文档
相关文档 最新文档