第一篇:实验一 时域离散信号与系统分析(实验报告)-2015
《数字信号处理》 实验报告
学院
专业 电子信息工程
班级
姓名
学号
时间
实验一
时域离散信号与系统分析
一、实验目的
1、熟悉连续信号经理想采样后的频谱变化关系,加深对时域采样定理的理解。
2、熟悉时域离散系统的时域特性,利用卷积方法观察分析系统的时域特性。
3、学会离散信号及系统响应的频域分析。
4、学会时域离散信号的MATLAB编程和绘图。
5、学会利用MATLAB进行时域离散系统的频率特性分析。
二、实验内容
1、序列的产生(用Matlab编程实现下列序列(数组),并用stem语句绘出杆图。(要求标注横轴、纵轴和标题)
(1).单位脉冲序列x(n)=δ(n)
(2).矩形序列x(n)=RN(n),N=10 201321111053 陈闽焜10.90.80.70.60.50.40.30.20.10-30-20-100n102030RN(n)10.90.80.70.60.50.40.30.20.10-50510***11053 陈闽焜
图1.1 单位脉冲序列 图1.2 矩形序列
nδ(n)
(3).x(n)=e(0.8+3j)n ; n取0-15。
***6420 图1.3 复指数序列的 模 图1.4 复指数序列的 相角 (4).x(n)=3cos(0.25πn+0.3π)+2sin(0.125πn+0.2π)n取0-15。 201321111053 陈闽焜43210-1-2-3-4-502468n10121416-202468n10121416y(n) 05n1015 图1.4 复合正弦实数序列 (5).把 2x *** 陈闽焜10-1-2-3-***820 图1.6 y(n)序列杆图 (7)、编一个用户自定义matlab函数,名为stepshf(n0,n1,n2)实现单位阶跃序列u[n-n1]。其中位移点数n1在起点n0和终点n2之间任意可选。自选3个入口参数产生杆图。 201321111053 陈闽焜10.90.80.70.60.50.40.30.20.***1820 M文件子程序如上所列。图1.7 自定义stepshf函数效果举例 2、采样信号及其频谱分析 (1)绘出时间信号x(t)=cos(50πt)sin(πt),时间范围t取0到2秒。 201321111053 陈闽焜10.80.60.40.2x(t)0-0.2-0.4-0.6-0.8-100.20.40.60.811.2t/second1.41.61.82 图2.1 连续信号x(t)的波形图及频谱图 (2)对于连续信号x(t)=500exp(-200nT)sin(50πnT)u(n),n=0,1,2,…,49; 分别求在T=0.5ms和T=1ms以及T=2ms三种情况下的x(t)的序列图和频谱X的幅频响应.观察是否有频谱混叠现象。 150100500-500510******53 陈闽焜25002000***00510***04550 图2.2-a 以T=0.5ms采样的序列及幅频谱图 150100500-500510******53 陈闽焜***00510***04550 图2.2-b 以T=1ms采样的序列及幅频谱图 150100500-500510******53 陈闽焜60040020000510***04550 图2.2-c 以T=2ms采样的序列及幅频谱图 3、系统的单位脉冲响应 求以下差分方程所描述的系统的单位脉冲响应h(n), 长度 0—49共50点 y(n)+0.2 y(n-1)+0.6y(n-2)=2x(n)-3x(n-1) 8642x 10-3201321111053 陈闽焜 Amplitude0-2-4-6-8051015202530n(samples)354045 图3.1 离散系统单位脉冲响应h(n) 4、计算离散线性卷积 序列x=[1,-1, 2, 3]与 201321111053 陈闽焜***053 陈闽焜403020010-10-2-10-3-4-2000.511.522.533.500.511.522.533.5 图5.1 系统幅频特性 图5.2系统相频特性 三、回答思考题内容 (1)、在分析理想采样序列时,当选择不同采样频率获取数据,其DFT的数字频率是否一样?它们的值所对应的模拟频率是否相同?为什么? (2)、对于由两个子系统级联或并联的系统,该如何用MATLAB分析其幅频特性和相频特性? 实验二离散时间信号分析 一、实验目的1.掌握各种常用的序列,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。 3.掌握序列的相加、相乘、移位、反褶等基本运算及计算机实现与作用。 4.掌握线性卷积软件实现的方法。 5.掌握计算机的使用方法和常用系统软件及应用软件的使用。 6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列{x(n)}来表示,其中x(n)代表序列的第n个数字,n代表时间的序列,n的取值范围为n的整数,n取其它值x(n)没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号xa(t)进行等间隔采样,采样间隔为T,得到{xa(nT)}一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)(n)、单位阶跃序列u(n)、矩形序列RN(n)、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 y(n) mx(m)h(nm)x(n)h(n) 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将x(n)和h(n)的变量n换成m,变成x(m)和h(m),再将h(m)以纵轴为对称轴反褶成h(m)。 (2)移位:将h(m)移位n,得h(nm)。当n为正数时,右移n位;当n为负数时,左移n位。 (3)相乘:将h(nm)和x(m)的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得y(n)。 5.matlab命令 1、单位采样序列:可用MATLAB中的zeros函数实现; X=[1 zeros(1,n-1)] 2、单位阶跃序列:这一序列可用MATLAB中的zeros函数实现; X=ones(1,N) 3、实指数序列; n=0:N-1; x=a.^n; 4、正弦波: t=0:0.01*pi:2*pi x=sin(2*pi*t); plot(t,x); xlabel(‘时间t’); ylabel(‘幅值y’); 5、移位 用MATLAB编写一个移位函数sigshift() function [y,m]=sigshift(x,n,k) %implements y(m+k)=x(n) m=n+k; y=x; 把上面的矩形序列右移3位 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0&(n-4)<=0]; k=3; [y,n]=sigshift(x,n,k); stem(n,y); xlabel('n');ylabel('x(n)'); title('step sequence'); grid6、翻褶 用MATLAB编写一个翻褶函数sigfold() function [y,n]=sigfold(x,m,k) y=fliplr(x); n=-fliplr(n); 用MATLAB编写一个程序把上面的矩形序列翻褶 三、主要实验仪器及材料 微型计算机、Matlab6.5教学版、TC编程环境。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生。 利用MATLAB编程产生和绘制下列有限长序列: (1)单位脉冲序列(n) (2)单位阶跃序列u(n) (3)矩形序列R8(n) (4)正弦型序列x(n)Asin((5)任意序列 5n3) x(n)(n)2(n1)3(n2)4(n3)5(n4) h(n)(n)2(n1)(n2)2(n3) 3.序列的运算 利用MATLAB编程完成上述两序列的移位、反褶等运算,并绘制运算后序列的波形。 4.卷积运算 利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列x(n)h(n),并绘制卷积后序列的波形。 5.上机调试并打印或记录实验结果。 6.完成实验报告。 五、实验报告要求 1.简述实验原理及目的。 2.列出计算卷积的公式,画出程序框图,并列出实验程序清单(可略)(包括必要的程序说明)。 3.记录调试运行情况及所遇问题的解决方法。 4.给出实验结果,并对结果作出分析。 实验七 离散时间信号和系统 §7.1离散时间正弦信号 目的学习创建和分析离散时间正弦信号。 相关知识 离散时间正弦和余弦信号能够用复指数信号表示,即 1jn(eejn)21jnjnsinn()(ee)2jcosn() 基本题 1.考虑下面离散时间信号:xM[n]sin2Mn,假设NN=12。对于M=4,5,7 和10,在0n2N1区间上画出xM[n]。用stem创建这些图,并在图的各坐标轴上给出适当标注。每一个信号的基波周期是什么?由任意的整数M和N值,一般如何来确定信号的基波周期?务必考虑MN的情况。 §7.2离散时间信号时间变量的变换 目的主要研究离散时间信号的延时与反褶运算。 基本题 1.定义一个MATLAB向量nx是在3n7上的时间变量,而MATLAB向量x是信号x[n]在这些样本上的值,x[n]给出如下: 2,n01,n2x[n]1,n 33,n40,其余n 请正确定义x[n],用stem(nx,x)画出该离散时间序列。 2.定义MATLAB向量y1~y4,来表示下列离散时间信号: y1[n]x[n2] y2[n]x[n1] y3[n]x[n] y4[n]x[n1] 为此,应该定义y1~y4,关键是要正确定义标号向量ny1~ny4。首先应判断当变换到yi[n]时,一个给定的x[n]样本的变量时如何改变的。标号向量不必要跨于和nx相同的一组变量值,但至少都是11个样本长,并包含了与有关信号全部非零样本的变量值。 §7.3离散时间系统的性质 目的懂得如何来证明一个系统满足或不满足某一给定性质。 相关知识 本课程研究的离散时间系统通常是用几个性质来表征的,如线性、时不变、稳定性、因果性及可逆性等。 基本题 1.系统y[n]sin2x[n]不是线性的。利用信号x1[n][n]和x2[n]2[n]来证明该系统是如何违反线性性质的。 2.系统y[n]x[n]x[n1]不是因果的。利用信号x[n]u[n]证明它。定义MATLAB向量x和y分别代表5n9上的输入和6n9上的输出。 中等题 3.系统y[n]logx[n]不是稳定的。 §7.4实现一阶差分方程 目的学习求解自递归差分方程。 相关知识 离散时间系统往往用线性常系数差分方程来实现。两种最简单的差分方程是一阶移动平均y[n]x[n]bx[n1]和一阶自递归y[n]ay[n1]x[n],能用这些简单系统对许多实际系统进行建模或近似。例如,一阶自递归可以用于银行帐户建模,x[n]是第n次的存款或取款,这时y[n]就是第n次的结余,而a1r就是利率为r的复利。 深入题 1.写出一个函数y=diffeqn(a,x,yn1),该函数计算y[n]ay[n1]x[n]所描述的因果系统的输出y[n]。输入向量x包含0nN1内的x[n],yn1提供y[-1]的值。输出向量y包含0nN1内的y[n]。M文件的第一行应该读出function y=diffeqn(a,x,yn1) 提示:从y[-1]计算y[0]是自递归的第一步。在M文件中利用for循环从n0开始依次计算到较大n值的y[n]。 2.假设a1,y[1]0,而且仅关心0n30内的输出。利用这个函数计算x1[n][n]和x2[n]u[n]时的响应,用stem画出每个响应。 造纸机械状态信号采集与系统分析 实验报告 实验名称:造纸机械状态信号采集与系统分析 学生姓名: 班 级: 学 号: 实验时间:2015 年 1月 15日 地 点:逸夫楼 7B429 指导老师:张 辉 1 《造纸机械状态检测与故障诊断》 教 学 实 验 纲 要 第一部分 实验简介 一、实验名称 造纸机械状态信号采集与系统分析 二、实验目的 1、课程情况: 制浆造纸装备状态监测与故障监测学是现代化造纸机械运行和管理必不可少的新的技术理论,是制浆造纸装备与控制专业本科(专科)、轻化工程高职本科必修的一门专业基础课,也是制浆造纸工艺本科、其它专业的选修课。 2、实验目的、意义 (1)(综合)设计型实验教学方案,使学生一方面变被动为主动,将课堂上理论性较强的、甚至抽象的内容通过主动设计实验方案并在实验的具体的演示表达出 来,可以深化理解、巩固课堂内容; (2)另一方面可以在实验中了解“制浆造纸装备状态监测与故障监测”的一些基本应用原理和方法,培养和提高学生分析问题和解决问题的能力及科研能力。 三、实验内容 ㈠CRAS信号与振动分析系统原理与应用实验(4学时) 1、了解CRAS(随机信号与振动分析系统)实验系统单元组成和其组装方法、条件要求; 2、掌握CRAS软件分析系统的基本使用方法; 3、周期信号的生成方法,非周期信号(随机信号)的生成方法与采集; (1)正弦信号发生器(QL仪器自带200Hz);掌握方法及记录信号特征如:峰值、峰峰值、有效值等。 (2)实时数据采集和显示。掌握方法及记录信号特征如:峰值、峰峰值、有效值等。 4、二通道信号非周期信号(随机信号)的基本分析(用力锤法电荷输入,用ICP传感器电压输入两种情形组合。ICP又可在模拟转子上以不同转速和模轴承上不同转速实验分析) (1)波形回放;(2)频谱分析;(3)相关分析;(4)概率分析;(5)系统分析。 ㈡ 造纸机械典型状态信号采集与分析处理综合实验(12学时) 四、实验主要器材及说明 实验用主要器材——最简单的、完备的振动等信号测试系统(一)实验主要器材 1、信号源部分 ⑴ 0.5力锤及传感器,一套,北京702所; ⑵ CA-YD-107加速度计二只,扬无二厂。 2、AD数据采集卡 ⑴ QLl08R数据采集箱一台,信号线四根,电源线一根; ⑵ QL-02lA--路电荷,电压放大器一台。 3、CRSA软件包分析系统 (1)ADCRAS数据采集软件; (2)SSCRAS信号与系统分析软件;(3)MACRAS机械模态分析软件; 4、ZT-3型转子振动模拟试验台 5、轴承模拟试验台 6、微型计算机(PC) 7、打印机(通用)(二)实验主要器材说明 1、5200系列测力锤(瞬态激振信号源)主要由锤体、测力计、锤头、输出线(信号线)组成。① 原理 激振是用测力锤敲击被测物件实现。 响应传递函数:H(f)=A(t)/F(f) H(f)取决于测力锤强度及脉冲脉宽、被测物件内在结构特征(响应输出)。② 结构 图1 测力锤结构示意图 图2 不同锤头敲击的不同波形 图3 测试方框图 2、5100系列传感器(单向压力式)①主要结构 石英晶体片 1、导电片 2、传力板 3、外壳 4、插芯 5、插座6为圆环形。 图4 5100传感器结构原理图 ②工作原理 a、石英晶体片特征为当受均匀外力时,其表面产生与外力成正比的电荷; b、测力锤敲击而受均匀外力在力传感器的环形承压面上时,石英晶体片表面产生与外力成正比的电荷由导电片接收,传到插芯,通过连接导线连到电荷放大器,输出成比例的电压信号。 c、为了使外力均匀作用在传感器的环形承压面上,传感器的上下接触面精密加工、抛光后,使之平坦、刚硬。 3、CA-YD-107/美国产IMI加速度计(传感器)原理: ①压阻式加速度传感器实质是一个力传感器:F=ma ②利用硅的压阻效应 固体材料在应力作用下发生形变时,其电阻率发生变化,这种效应称压阻效应。 特点:灵敏度高、简单、低功耗、响应速度快、可靠性好、精度高、便宜。IMI加速度计(传感器):ICP--6080A11 4、OL-108R数据采集箱 A、功能: ⑴QL-108R是集A/D转换、信号输入为一体的数据采集接口装置。⑵进行二路无相差并行采样,最高采样频率51.2KHz。 ⑶QL-108R可以程控放大,对输入信号进行X1、X4、X8、X16倍放大。 ⑷QL-108R自带信号发生器,可以产生一个200Hz、峰峰值4V的标准正弦波以供测 试。B、使用: ⑴后面板上25芯计算机插口与计算机打印口连接; ⑵在后面板上拨动开关(采集OR打印); ⑶用标准电缆将QL-108R后面板上25芯计算机插口与打印机插口连接 ⑷运行CRAS系统 ①采集分析 计算机开机——按下QL-108R前面板上电源开关,处于开机状态 面板上拨动开关至采集——进入CRAS系统子目录,运行具体子程序——采集分析数据。 ②数据报告打印 在后面板上拨动开关至打印——选择数据或图形——打印——打印先后 在后面板上拨动开关至采集方可继续运行程序。 5、QL-021A二路电荷\电压放大路 A、功能: . ⑴是一种多功能接口箱,集电荷输入、电压输入、电压放大转速整形为一体并有去直 流分量的功能。自带简易信号发生器。 ⑵电荷输入:将压电式加速度传感器的微弱电荷信号转成电压信号。电荷级由高输入阻抗运放外接反馈电阻、电容完成电荷/电压转换。 ⑶电压输入:将不同物理量经传感器后形成的电压信号进输入(如振动测量中的速度传感器或位移传感器的电压输出)。 ⑷电压放大:两路完全独立、无相位差,增益可变的放大器组成。 ⑸转速整形电路:由面板BNC插座输出TTL电平脉冲。 ⑹信号发生器: B、结构使用: . ⑴面板 ①电荷输入端 Qin——如压电式加速度传感器的微弱电荷信号用此端。插拔时应断电。 ②电压输入端、Vin——如电压信号输入进行放大时间用此端。插拔时应断电。 ③电荷、电压选择——Q/V键。 ④电压输出Vout 无论电荷或电压经放大后均由此端口输出。⑤放大增益——一组琴键开关表示 ×0.1、× 1、× 10、×100(一次只能按下来个键)。 ⑥37芯接口与计算机相连,电源插口,信号发生器,三芯插座连传感器。⑵使用 电荷联线的正确联接、Q/V开关的正确位置、Vout到后板连线。插拔时应断。 6、ZT-3型转子振动模拟试验台 本实验台是由东南大学测试仪器厂设计制造的。ZT-3型是由产品代号(ZT)+跨数组成。 试验台长1200mm,宽108mm,高145mm,质量约45kg。 转轴直径均为Ф9.5mm,有两种长度规格:320mm轴3根、500mm油膜振荡专用轴 5 1根;最大挠曲不超过0.03mm;沿轴的轴向任何部位均可选作试验中的支承点。 共配有六只转子,分为两种规格:Ф76×25mm和Ф76×19mm,质量分别为800g和600g,可根据实验需要选用。 配有刚性联轴节和半挠性联轴节供选用。 ⑴技术参数 电源:220VAC,50Hz 输出励磁电压:220VDC 输出励磁电流:90mA 输出电枢电压:0~240VDC 电枢电流:0~1A 调速范围:0~10000rpm(满负荷时)⑵使用方法 接线:接线时断开电源,按调速器面板所标接线,面板右边两对接线柱,上面一对接电枢,下面一对接电机励磁绕组,并分别以红色、橙色导线区分。 开机:开机后,看转子转动方向是否正确,由转子向电机方向看,顺时针方向为正确,若反时针转,可将电枢(或励磁)的两根线对调。 注意:每次启动前都要把调压器左旋到零位,即保证电枢电流从零开始往上调,以避免启动电流过大烧断保险丝。面板左边有两个3A保险丝,左边一个为电枢电路保险,右边一个为电源保险。 升速:接通电源开关,电源指示灯亮,微动调压器,电流表即有指示,负载较小时,转子即会转动。升速时必须平滑地转动调压器旋钮,开始升得较慢,调压器转到某一位置后升速较快,这时必须注意要更平稳、缓慢地转动调压器,以保证瞬时电流不致过大。 降速时,同样要注意平缓,在高速状态停机,应通过平稳降速过程再切断电源,否则电机承受冲击较大。 实验室如无转速表,可参照转子的I=f(n)或u=f(n)曲线(见图10),由电流或电压值算得对应的转速。图10曲线是在三跨负载时测得的。 7、轴承模拟试验台 本实验台是由西安交通大学设计制造的,适用于:22210Ck\w33、61910、22317CAlw33三种型号的滚动轴承模拟故障实验。可以测试不同转速(0~3000 实验台的结构 本试验台由:驱动电机、传动轴、支撑箱体、轴承座、顶尖、加载电机构成。结构紧凑、操作方便。 五、实验步骤与方法 1、检查仪器单元; 2、连接仪器,安装硬件、软件; 3、依次通电启动调试; 4、采集信号,记录存盘; 首先进入AdCras数据采集及处理系统,点击“作业”按纽,随即显示作业路径,将其存在D:xxxxx中,选择“二通道”。 然后对参数进行设置,点击“参数设置”,采样频率设为256Hz;通道标记为Ch01、Ch02;块数选为2;触发参数设置为自由运行;,电压范围为+5000mV(程控放大1倍),工程单位为Ch1:m/s/s、Ch2:m/s/s;校正因子Chl、Ch2均为1。 然后点击“数据采集”按纽,同时敲击测力锤进行采样,采样过程中Blocks显示为2,共分4页显示,采样结束后系统自动停止采样,同时要停止敲击测力锤。采样结束存盘后,关闭AdCras数据采集及处理系统,同时进入SsCras信号与系统分析系统,将在AdCras数据采集及处理系统中采集到的信号调出,并进行处理。 将处理结果记录、存盘。 5、回放、分析信号,记录图形(各种分析图),标定特征数据; 六、实验现象、问题、结果与描述; (一)、实验图分析及图的实例运用 图 1 波形图 波形图:波幅随时间变化的频率 波形图的实例运用:造纸机轴承监测诊断、转子系统振动监测、压榨辊振动时域波形图、鱼雷、军舰等。 图 2 频谱图 频谱图:幅值随时间变化的频率 频谱图的实例运用:压榨部纠偏辊振动频谱、侧轴 向振动频谱、压光热辊振动频谱、中心压榨辊振动 频谱、烘缸操作侧振动频谱、齿轮啮合频谱、齿轮 磨损频谱等。 图 3 自相关图 自相关函数:指用以描述信号自身的相似程度 自相关函数列表 自相关图的实例运用:造纸机轴承监测与诊断、压 榨部纠偏辊振动频谱、侧轴向振动频谱、压光热辊 振动频谱、中心压榨辊振动频谱、烘缸操作侧振动 频谱、齿轮啮合频谱、鱼雷、军舰。 图 4 互相关图 互相关函数:指用以描述两个信号之间的相似程度或相关性 互相关函数列表 互相关图的实例运用:鱼雷、军舰、造纸机轴承监 测与诊断、压榨部纠偏辊振动频谱、侧轴向振动频 谱、压光热辊振动频谱、中心压榨辊振动频谱、烘 缸操作侧振动频谱、齿轮啮合频谱等。 图 5 波谱图 (二)、实验现象、实验问题描述 1、实验现象:传感器接触桌面,敲击桌面采集信号时,电脑屏幕随之显示出波形图,敲击力度不同波形图不同。实际工程中的振动通常都是随机的,非确定性的信号,振动量的 瞬时值不能用确定的数学表达式描述,波形没有确定的形状。 2、实验问题:采集信号的时候电脑屏幕上有可能看不到图像。原因有可能是: ①传感器与桌面没有接触或接触不良时候,电脑屏幕不会显示波形图,必须保证传 感器与桌面完全接触,才能采集到信号。②传感器接触良好的情况下,波形图看不到或者不明显的时候,是因为纵坐标范围太大,应适当调节Y +和Y-使范围符合直到出现清晰的波形图。 七、小结(收获与体会与建议)这个学期我们学习了造纸机械状态监诊学这门课程,它是一门综合应用相关课程的知识和内容来解决科研、生产、国防建设乃至人类生活所面临的测试问题的课程。涉及到监诊方法的分类和选择,传感器的选择、标定、安装及信号获取,信号调理、变换、信号分析和特征识别、诊断等。通过造纸机械状态监诊学实验,我学到了好多课本上学不到的知识体系,第一次把理论和实践进行了结合,深刻地理解了实践的重要性和必要性。培养了我们创新思维能力,综合运用所学科学理论、分析和解决问题方法和技术手段分析并解决制浆造纸工程实际问题的能力。通过实验的学习,使我们获得了造纸工程师的基本训练,将我们培养成“有创意、能创新、善创业”、有较强实验操作能力的工程技术人才。同时也提高了我对制浆造纸装备与 控制专业的专业素养。下面请允许我从以下几个方面谈谈我的一些收获和体会。“现代造纸机械状态监测与故障监测”是现代化造纸机运行和管理必不可少的新技术理论,是制浆造纸 11 装备与控制专业本科必修、制浆造纸工艺本科专业选修的一门专业基础课。因此,相应的实验课是一门专业基础实验课。它将课堂上理论性较强的、甚至抽象的内容通 过实验课具体的演示表达出来,使学生一方面可以深化理解、巩固课堂内容,另一方面可以 在实验中了解“制浆造纸装备状态监测与故障监测”的一些基本应用原理和方法。 网 络 程 序 设 实验报告 实验名称:Winsock编程接口实验 实验类型: 验 证 型 计 一、实验目的 掌握Winsock的启动和初始化; 掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 实验内容: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip www.xiexiebang.com对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC地址。 根据实验内容编写程序: 1、对相关域名进行解析,利用gethostbyname()完成解析,用到的结构体为: struct hostent{ char FAR* h_name;char FAR* FAR* h_aliases;short h_addrtype;short h_length;char FAR* FAR* h_addr_list;} 得到的IP地址列表由h_addr_list存储; 2、利用GetAdaptersInfo()函数获得本地主机的相关信息,通过IP_ADAPTER_INFO结构体返回所需信息。 IP_ADAPTER_INFO的定义如下: typedef struct _IP_ADAPTER_INFO { struct _IP_ADAPTER_INFO* Next; DWORD ComboIndex; char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4]; char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4]; UINT AddressLength; BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH]; DWORD Index; UINT Type; UINT DhcpEnabled; PIP_ADDR_STRING CurrentIpAddress; IP_ADDR_STRING IpAddressList; IP_ADDR_STRING GatewayList; IP_ADDR_STRING DhcpServer; BOOL HaveWins; IP_ADDR_STRING PrimaryWinsServer; IP_ADDR_STRING SecondaryWinsServer; time_t LeaseObtained; time_t LeaseExpires; } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO; 三、实验过程(包含实验结果) 1、分析题目,编写程序; 2、将编写的程序进行编译、运行,输入题目给定的内容,完成题目要求; 结果如下: 第1题: 第2题: 四、讨论与分析 思考题: 1、Winsock初始化的作用:只有调用了WSAStartup()进行初始化之后,应用程 序才能调用其他Windows Sockets API函数,实现网络通信; 2、函数原型为: DWORD GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo,//接受数据的缓冲区 PULONG pOutBufLen // 数据的长度大小); 3、域名解析时出现域名对应多个IP,原因:该域名存在于多个服务器。 五、实验者自评 通过本次实验,我掌握了Winsock的启动和初始化以及gethostname(),gethostbyname(),GetAdaptersInfo()等函数查询的使用,加深了以前对课本知识的认识程度。 六、附录:关键代码(给出适当注释,可读性高) 第1题代码: ////////////////////////////////////////////////// // GetAllIps.cpp文件 //#include “../common/InitSock.h” #include using namespace std; #pragma comment(lib, “WS2_32”)// 链接到WS2_32.lib //CInitSock initSock;// 初始化Winsock库 void main(){ char szMessage[256];// 取得本地主机名称 // 初始化 WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2), &wsaData)!= 0){ exit(0);} // 通过主机名得到地址信息 printf(“ Get IP::”);gets(szMessage); // 获取主机信息 hostent *pHost = ::gethostbyname(szMessage); // 打印出所有IP地址 in_addr addr;for(int i = 0;;i++){ char *p = pHost->h_addr_list[i]; if(p == NULL) break; memcpy(&addr.S_un.S_addr, p, pHost->h_length); char *szIp = ::inet_ntoa(addr); printf(“ 服务器 %s IP地址:%s n ”,szMessage, szIp); printf(“服务器名字: %s n”,pHost->h_name);} /////////////////////////// ::WSACleanup(); } 第2题代码: // 获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC地址 #include void main(){ // 定义变量 IP_ADAPTER_INFO *pAdapterInfo;ULONG ulOutBufLen;DWORD dwRetVal;PIP_ADAPTER_INFO pAdapter; pAdapterInfo =(IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));ulOutBufLen = sizeof(IP_ADAPTER_INFO);// 第一次获取适配器信息,得到ulOutBufLen的实际大小 if(GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)!= ERROR_SUCCESS){ free(pAdapterInfo); pAdapterInfo =(IP_ADAPTER_INFO *)malloc(ulOutBufLen);} // 第二次获取适配器信息,获得了pAdapterInfo信息 if(dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)!= ERROR_SUCCESS){ cout<<“GetAdapterInfo Error!”< // 打印MAC地址信息、子网掩码以及网关 pAdapter = pAdapterInfo;while(pAdapter){ cout<<“MAC Address: ”; for(int i=0;i AddressLength;i++) { if(i ==(pAdapter->AddressLength-1)) { cout< } else { cout< } } cout< cout<<“IP 地址:”< IpAddressList.IpAddress.String< cout<<“子网掩码 :”< IpAddressList.IpMask.String< cout<<“网关 :”< IpAddressList.IpAddress.String< cout<<“****************************************”< pAdapter = pAdapter->Next;} // 释放资源 if(pAdapterInfo){ free(pAdapterInfo);} cout< }第二篇:实验二离散时间信号分析
第三篇:实验七离散时间信号和系统
第四篇:造纸机械监测教学实验造纸机械状态信号采集与系统分析实验报告
第五篇:实验一 实验报告