实验六)

实验六)
实验六)

实验报告

课程名称:高频电子电路实验题目:检波电路实验

班级学号:1803030123

姓名: 蔡域虎

成绩:

沈阳理工大学

2020年 6 月16 日

实验内容:

1.掌握用包络检波器实现AM 波解调的方法。了解滤波电容数值对AM 波解调影响;

2.理解包络检波器只能解调m ≤100%的AM 波,而不能解调m> 100%的AM 波以及DSB 波的概念;

3.掌握用MC1496模拟乘法器组成的同步检波器来实现AM 波和DSB 波解调的方法:

4.理解同步检波器能解调各种AM 波以及DSB 波的概念。

实验目的:

1.用示波器观察包络检波器解调AM 波、DSB 波时的性能:

2.用示波器观察同步检波器解调AM 波、DSB 波时的性能:

3.用示波器观察普通调幅波(AM)解调中的对角切割失真和底部切割失真的现象。

实验仪器、设备:

集成乘法器调幅·混频与同步解调(A6);中放AGC 与二极管检波模块A5;示波器;高频信号源;低频信号源

简单原理:

解调过程是调制的反过程,即把低频信号从高频载波上搬移下来的过程。解调过程在收信端,实现解调的装置叫解调器。

一.普通调幅波的解调

振幅调制的解调被称为检波,其作用是从调幅波中不失真地检出调制信号。由于普通调幅波的包络反映了调制信号的变化规律,因此常用非相干解调方法。非相干解调有两种方式,即小信号平方律检波和大信号包络检波。我们只介绍大信号包络检波器。 1.大信号检波基本工作原理

大信号检波电路与小信号检波电路基本相同。由于大信号检波输入信号电压幅值一般在500mV 以上,检波器的静态偏置就变得无关紧要了。下面以图6-1所示的简化电路为例进行分析。

图6-1大信号检波电路

大信号检波和二极管整流的过程相同。图6-2表明了大信号检波的工作原理。输入信号()

i u t 为正并超过C

和L

R 上的()

o u t 时,二极管导通,信号通过二极管向C

充电,此时()

o u t 随

图6-2 大信号检波原理

2.检波失真

检波输出可能产生三种失真:第一种是由于检波二极管伏安特性弯曲引起的失真;第二种是由于滤波电容放电慢引起的失真,它叫对角线失真(又叫对角线切割失真);第三种是由于输出耦合 电容上所充的直流电压引起的失真,这种失真叫割底失真(又叫底部切割失真)。其中第一种失真主要存在于小信号检波器中,并且是小信号检波器中不可避免的失真,对于大信号检波器这种失真影响不大,主要是后两种失真,下面分别进行讨论。 (1)对角线失真

参见图6-1所示的电路,在正常情况下,滤波电容

C

对高频每一周充放电一次,每次充

到接近包络线的电压,使检波输出基本能跟上包络线的变化。它的放电规律是按指数曲线进行,时间常数为

L R C

。假设

L R C

很大,则放电很慢,可能在随后的若干高频周期内,包络线电压

虽已下降,而

C

上的电压还大于包络线电压,这就使二极管反向截止,失去检波作用,直到

包络线电压再次升到超过电容上的电压时,才恢复其检波功能。在二极管截止期间,检波输出波形是

C

的放电波形,呈倾斜的对角线形状,如图6-3所示,故叫对角线失真,也叫放电失

真。非常明显,放电愈慢或包络线下降愈快,则愈易发生这种失真。

6-3 对角线失真原理图

(2)割底失真

一般在接收机中,检波器输出耦合到下级的电容很大(5-10

F

),图6-4中的

1

C

为耦合电容。

图6-4

对检波器输出的直流而言,1

C上充有一个直流电压o U。如果输入信号()

i

u t的调制度很深,以致在一部分时间内其幅值比1

C上电压o U还小,则在此期间内,二极管将处于反向截止状态,产生失真。此时电容上电压等于o

U,故表现为输出波形中的底部被切去,如图6-5所示。

图6-5 割底失真波形图

振幅解调实验电路

一、二极管包络检波

二极管包络检波器是包络检波器中最简单、最常用的一种电路。它适合于解调信号电平较大(俗称大信号,通常要求峰-峰值为1.5V以上)的AM波。它具有电路简单,检波线性好,易于实现等优点。本实验电路主要包括二极管、RC低通滤波器和低频放大部分,实验电路如图6-8所示。

图中,5D1为检波管,5C2、5R2、5C3构成低通滤波器,5R3、5W3为二极管检波直流负载,5W3用来调节直流负载大小。图中5Q1、5Q2对检波后的音频进行放大,5W5用来调整5Q1的工作点,也可用于改变检波的交流负载。放大后音频信号由5P9输出,调节5W4可调整输出幅度。图中,利用二极管的单向导电性使得电路的充放电时间常数不同(实际上,相差很大)来实现检波,所以RC时间常数的选择很重要。RC时间常数过大,则会产生对角切割失真(又称惰性失真)。RC常数太小,高频分量会滤不干净。综合考虑要求满足下式:

a a

m m

RC

2

1-

<<

Ω

其中:a

m 为调幅系数,Ω为调制信号角频率。

当检波器的直流负载电阻R 与交流音频负载电阻

Ω

R 不相等,而且调幅度

a

m 又相当大时会产

生底边切割失真(又称负峰切割失真),为了保证不产生底边切割失真应满足

R

R m a Ω<

二极管包络检波电路

二、同步检波

同步检波又称相干检波。它利用与已调幅波的载波同步(同频、同相)的一个恢复载波与已调幅波相乘,再用低通滤波器滤除高频分量,从而解调出调制信号。本实验采用MC1496集成电路来组成解调器,如图6-9所示。该电路图利用一片1496集成块构成两个实验电路,即幅度解调电

路和混频电路,混频电路在前面实验

3已作介绍,本节介绍解调电路。图中,恢复载波加到输入端6P4上,再经过电容6C6加在⑻、⑽脚之间。已调幅波加到输入端6P5上,再经过电容6C7加在⑴、⑷脚之间。

相乘后的信号由(6)脚输出,再经过由6C9、6C10、6R26组成的P 型低通滤波器滤除高频分量后,在解调输出端(6TP6)提取出调制信号。

需要指出的是,在图6-9中对1496采用了单电源(+12V )供电,因而⒁脚需接地,且其它脚亦应偏置相应的正电位,恰如图中所示。

6E3

10uF 6R22

2K

6R172K

6R21

4706C60.1u

6R201k

6R191k 6R181k

SIG+1

SIG-4

2

3

CAR+8CAR-1014

OUT+6OUT-12BIAS

5

VEE

GADJ

GADJ 6U2

MC1496

6R16510

6C80.1u

6R2310K

6R253.3k

6C104700P

+12V

6R261K

1

6TP6

6C94700p

6R243.3k

6C7

0.1u GND

载波输入(本振)

调幅输入(射频)

同步解调输出

6P4

6P5

6C160.01u

6R2751K

6R282k

6C14

0.01u

6C11

1000P

6L233uH

6C12220P

6C13220P

6P7

6L31MH

6C15

0.1U P12P12

B

1C

3E

2

6Q29018

混频输出

MC1496 组成的解调器实验电

实验步骤及数据 :

1. 实验准备

(1)在实验系统工作区拖放集成乘法器调幅●混频与同步解调及相关测试仪器,搭建实验环境。如图:

2. DSB 波的解调

采用振幅调制实验步骤2.中相同的方法来获得DSB波,并加入到幅度解调电路的调幅输入端,而其它连线均保持不变,观察并记录解调输出波形,并与调制信号作比较。改变调制信号的频率及幅度,观察解调信号有何变化。将调制信号改成三角波和方波,再观察解调输出波形。

DSB波解调波形如下图:

实验6+过程_函数和程序...

实验6过程、函数和程序包 姓名:学号: 专业:班级: 同组人:无实验日期:2013/7/21 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 6.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 注:测试时,文件名请用全名(即包含路径,如:@c:\aa) 给出运行结果:

6.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果

select * from Exam_Table; 给出执行的最后结果: 2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果:

实验报告6答案

实验报告 课程名称:高级语言程序设计 实验六:一维数组和二维数组班级:学生姓名: 学号: 专业: 指导教师: 学期:2009-2010 学年上学期 云南大学信息学院 一、实验目的 1掌握一、二维数组的定义及初始化 2、掌握数组元素的输入、输出及引用方法 3、掌握使用循环对数组元素进行访问 4、掌握一、二维数组的简单应用

二、知识要点 1 一、二维数组的定义与赋值(初始化、循环键盘输入) 2、访问数组元素(下标的正确使用) 3、数组的典型应用(复制、求和、统计某种元素个数、求数组中的最大/最小值、 元素的查找与排序) 三、实验预习(要求做实验前完成) 1定义一个有四个元素的float型数组: 2、定义一个具有五个元素的整型数组并将其初始化为{1,2,3,4,5} 3、要用循环从键盘输入整型数组s的元素值(共6个),应该使用语句: 4、交换数组元素d[2]和d[4],使用语句: 5、语句for(k=0;k<3;k++)x[2][k] = 0;将把哪些元素变为0? 四、实验内容(要求提供:① 算法描述或流程图② 源程序) 1已知一个数组有10个元素,值分别是3, 6, 8, 4, 5, 66, 80, 72, 69, 70。 编程,将数组元素逆置后输出。(提示:第一个与最后一个交换位置,第二个与倒数第二个交换位置,...... ) 2、编程序求Fibo nacci数列的前30项,Fib on acci数列的定义为: 1 5=1) fn = * 1 (n =2) Jnj + fnd (n >2) 要求将数列存放在数组中,并按每行5个数的格式输出该数列。 3、输入一个4行4列的二维数组,统计偶数的个数,并输出所有小于5的数。 4、已知一个二维数组:{{14,26,18,17},{24,37,21,8},{19,31,22,16},{7,19,14,26}}, 编 程,输出该二维数组的最小元素的行下标与列下标。 五、实验结果(要求写出运行界面及输出的运行结果) 六、实验小结 1.#define N 10 #include main() {int i, t,a[N]; for(i=0;i

实验六

6.1一维数组 【实验目的】 1.熟练掌握使用一维数组编程的方法。 2.熟练掌握排序算法。 【实验内容】 1调试示例 输入一个正整数n,再输入n个整数,将它们排序后由小到大输出。(error07_1.cpp) 源程序(有错误的程序) #include void main() { int i,j,num,a[num]; int change,t; printf("Enter Number: "); scanf("%d",&num); printf("Enter Data: \n"); for(i=0;i0 && change;i--) { change=0; for(j=0;j<=i;j++) if(a[j]>a[j+1]) { /*调试时设置断点*/ t=a[j]; a[j]=a[j+1]; a[j+1]=t; change=1; } } /*调试时设置断点*/ printf("Sorted data:\n"); for(i=0;i

实验六答案

实验六答案 1、创建一个表示雇员信息的employee类,其中包含数据成员name、empNo和salary,分 别表示雇员的姓名、编号和月薪。再从employee类派生出3个类worker、technician 和salesman,分别代表普通工人、科研人员、销售人员。三个类中分别包含数据成员productNum、workHours和monthlysales,分别代表工人每月生产产品的数量、科研人员每月工作的时数和销售人员每月的销售额。要求在employee类中声明虚成员函数pay,并在各个派生类中覆盖pay函数,用来计算雇员的月薪,并假定: 普通工人的月薪=每月生产的产品数×每件产品的赢利×20% 科研人员的月薪=每月的工作时数×每小时工作的酬金 销售人员的月薪=月销售额×销售额提成。 创建一个通用函数CalculateSalary,用来计算并返回各种不同类型雇员的月薪。函数CalculateSalary的原型如下: float CalculateSalary(employee *emptr) ; 在main函数中分别声明worker类、technician类和salesman类的对象代表各种类型的雇员,并调用函数CalculateSalary计算他们的月薪。 解:程序代码如下: #include using namespace std; class employee { protected: char name[20]; int empNo; float salary; public: employee(char *cp="",int no=1001); employee(employee&); void setname(char *cp); void setempNo(int no); void setsalary(float sa); char*getname(); int getempNo(); float getsalary(); virtual float pay(){ return 0;} }; employee::employee(char *cp,int no) { int i=0; while(*cp) { name[i]=*cp; i++; cp++;

实验六 高层绘图操作答案

实验六 高层绘图操作 实验目的: 1. 掌握绘制二维图形的常用函数 2. 掌握绘制三维图形的常用函数 3. 掌握绘制图形的辅助操作 实验内容: 1. 1. 设x x x y cos 2^1sin 35.0????? ? ++=,在π 2~ 0=x 区间取101点,绘制函数曲 线。 x=0:pi/100:2*pi; y=(0.5+3*sin(x)./(1+x..^2)).*cos(x); plot(x,y); 2. 已知2 1x y = ,)2cos(2x y =,213y y y ?=,完成下列操作: (1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2) 以子图形式绘制三条曲线。 (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 (1).在同一坐标系下用不同的颜色和线型绘制三条曲线。 x=0:pi/1000:2*pi; y1=x.^2; y2=cos(2*x); y3=y1.*y2;

plot(x,y1,'r',x,y2,'b-.',x,y3,'k--'); (2). 以子图形式绘制三条曲线。 x=0:pi/10:2*pi; y1=x.^2; subplot(2,2,1);plot(x,y1,'r'); title('y1=x^2'); y2=cos(2*x); subplot(2,2,2);plot(x,y2,'b-.'); title('y2=cos(2*x)'); y3=y1.*y2; subplot(2,2,3);plot(x,y3,'k--'); title('y3=y1.*y2'); (3). 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。x=0:pi/10:2*pi; y1=x.^2; subplot(2,2,1);bar(x,y1,'r'); title('y1=x^2'); subplot(2,2,2);stairs(x,y1,'r'); title('y1=x^2'); subplot(2,2,3);stem(x,y1,'r'); title('y1=x^2'); subplot(2,2,4);fill(x,y1,'r');

实验六答案

实验六函数与编译预处理答案 一、断点的设置和取消、单步执行跟踪进入函数和跳出函数方法 练习 2、调试练习: 要求:模仿示例调试以下程序,直到输出正确结果,源程序名为error6_2.c 程序功能:利用函数调用求“1!+2!+3!+4!+...+10!”的值(参见实验教材72页程序填空题第(1)小题) 源程序(有错误的程序——不是语法错误,而是算法错误或逻辑错误): 改正错误后的源程序: void main() { long s=0,i; long mm(int k); for(i=1;i<=10;i++) s=s+mm(i); printf("1!+2!+3!+...+10!=%ld\n",s); } long mm(int k) { long t=1, j; for(j=1;j<=k;j++) t=t*j; return (t); } 3、综合调试、改错练习: 以下程序有多处错误,请综合运用前面所学过的所有知识和VC++的调试手段,改正程序的各种错误,使其运行出正确的结果。程序的功能是:利用函数调用求任意两个整数的和。 改正错误后的源程序:

main() { int sum(int a,int b); int x,y; scanf("%d,%d",&x,&y); printf("x=%d,y=%d\n",x,y); printf("%d+%d=%d\n",x,y,sum(x,y)); } int sum(int a,int b) { return (a+b); } 二、编程练习 利用VC++编写程序,并调试、运行,直到输出正确结果。编程练习1: 注意: 这里提供了以填空的形式出现源程序参考清单,目的是给同学们一个思路。最好不要将此源程序清单复制到VC++中,否则会出现多处语法错误。同学们可以据此思路来填写有关语句,从而完成程序。在调试程序时,一定要运用前面学过的方法。 下面函数是实现求[1,3000]能被17或23整除的整数的个数。请将程序补充完整,并调试运行,直到输出正确结果。(源文件名为blank6_1.c) 完成填空后的源程序: #include int f(int m, int n) { int i, count=0; for(i=m; i<=n; i++) if(i%17==0||i%23==0) count++; return count; } main() {int m,n; scanf("%d%d",&m,&n); printf("count=%d\n", f(m,n)); }

JAVA实验6答案

广东海洋大学学生实验报告书(学生用表) 实验名称实验六. Java的接口与实现课程名称Java程序设计与开发 技术 课程号16232204 学院(系) 信息学院专业计算机科学与技术班级计科 学生姓名学号实验地点钟海楼 04019 实验日期 2015年 10月26日 一、实验目的 (1)学习掌握Java中类怎样实现接口、接口回调技术; (2)学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE开发工具的PC机。 四、实验内容和步骤 实验1 代码如下: Estimator.java interface CompurerAverage{ public double average(double x[]); } class Gymnastics implements CompurerAverage{ public double average(double x[]){ int count=x.length; double aver=0,temp=0; for(int i=0;i

for(int i=1;i2) aver=aver/(count-2); else aver=0; return aver; } } class School implements CompurerAverage{ public double average(double[] x){ int count=x.length; double sum=0; for(int i=0;i

matlab 实验6 函数及其调用

数学实验练习六:函数 一、1)写一个 MATLAB 函数 piFun01.m 来计算下列级数: f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中 n 为函数的输入,代表上述级数的项数,级数和 f(n) 则是函数的输出。 解:function f=pifun01(n) f=0; for i=1:n f=f+4*(-1)^(i+1)/(2*i-1); end >> piFun01(100000) ans = 3.1416 2)使用 tic 和 toc 指令来测量 piFun01(100000) 的计算时间。如果你不知道如何使用这两个指令,请使用 help tic 及 help toc 来查出它们的用法。我的旧计算机是 Pentium 450MHz,所得的计算时间约为 2 秒。请说明你的计算机规格以及其计算时间。

解:function f=pifun01(n) tic f=0; for i=1:n f=f+4*(-1)^(i+1)/(2*i-1); end f=toc 二、写一个 MATLAB 的递归函数 fibo.m 来计算 Fibonacci 数列, 其定义如下: fibo(n+2) = fibo(n+1)+fibo(n) 此数列的启始条件如下: fibo(1) = 0, fibo(2) = 1. a) fibo(25) 的返回的值是多少? 解:function f=fibo(n) if n==1 f=0; elseif n==2

f=1; else f=fibo(n-1)+fibo(n-2); end >> clear >> fibo(25) ans = 46368 b)使用 tic 和 toc 指令来测量 fibo(25) 的计算时间。我的计 算机是 Pentium 2GHz,所得的计算时间约为 3.35 秒。请说明你的计算机规格以及其计算时间。 解: function f=fibo(n) tic if n==1 f=0; elseif n==2 f=1; else f=fibo(n-1)+fibo(n-2); end

JAVA实验6答案

GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 实验六.Java 的接口与实现 课程名称JaVa 程序设计与开发 课程号16232204 技术 实验地点钟海楼实验日期 2015年 04019 10 月 26 日 、实验目的 (1) 学习掌握Java 中类怎样实现接口、接口回调技术; (2) 学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE 开发工具的PC 机。 四、实验内容和步骤 实验1 代码如下: Estimator.java in terface Compu rerAverage{ p ublic double average(double x[]); } class Gymn astics imp leme nts Compu rerAverage{ p ublic double average(double x[]){ int coun t=x.le ngth; double aver=0,te mp=0; for(i nt i=0;i

aver=aver+x[i]; } if(cou nt>2) aver=aver/(co un t-2); else aver=0; retur n aver; } } class School impi eme nts Compu rerAverage{ p ublic double average(double[] x){ int coun t=x.le ngth; double sum=0; for(i nt i=0;i

实验六:广域网协议配置(2012最新版)

大连理工大学本科实验报告 课程名称:网络综合实验学院(系):软件学院 2012年3月22日

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验六:广域网协议配置 一、实验目的 两台路由器之间的PPP和Frame Relay协议配置 二、实验原理和内容 1、路由器的基本工作原理 2、配置路由器的方法和命令 3、PPP的基本原理及配置 4、Frame Relay协议的基本原理及配置 三、实验环境以及设备 2台路由器、2台Pc机、双绞线若干 四、实验步骤(操作方法及思考题) {警告:路由器高速同异步串口(即S口)连接电缆时,无论插拔操作,必须在路由器电源关闭情况下进行;严禁在路由器开机状态下插拔同/异步串口电缆,否则容易引起设备及端口的损坏。} 1、请在用户视图下使用“reset saved-configuration”命令和“reboot”命令分别 将两台路由器的配置清空,以免以前实验留下的配置对本实验产生影响。2、在确保路由器电源关闭情况下,按照下图联线组建实验环境。配置IP地址, 以及配置PC 202.0.0.2 的缺省网关为202.0.0.1,PC 202.0.1.2 的缺省网关为202.0.1.1。

202.0.0.2/24202.0.1.2/24 AR18-12 AR28-11 3、在两台路由器上都启动 RIP ,目标是使两台PC 机之间能够ping 通。请将为达到此目标而在两台路由器上执行的启动RIP 的命令写到实验报告中。你们的两台PC 机之间ping 通了吗?在缺省情况下,两台路由器的串口之间使用的是哪种广域网协议?(15分) 答: AR18-12: [RA]rip [RA-rip]network all AR28-11: [RB]rip [RB-rip]network 0.0.0.0 缺省情况下,两台路由器之间使用PPP 协议。ping 通截图如下: 4、PPP 协议PAP 验证配置: (1) 配置AR18-12为验证方,AR28-11为被验证方,然后测试两台PC 机 之间是否能够ping 通。请将在两台路由器上执行的配置命令写到实验报告中。(15分) 答:

实验六、用窗函数法设计FIR滤波器分析解析

实验六 用窗函数法设计 FIR 滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为H d (e j ω ),则其对应的单位脉冲响应为: h d (n) = ?-π π ωωωπ d e e H n j j d )(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无 限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理: h(n) = h d (n) w(n) h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω )为: H(e j ω ) = ∑-=-1 )(N n n j e n h ω 如果要求线性相位特性,则h (n )还必须满足: )1()(n N h n h --±= 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB 函数 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

实验六压缩试验

实验六 压缩试验(快速法) 1 试验目的 测定土的湿密度、含水率,计算土样干密度、初始孔隙比,并用此密度、含水率条件下的试样进行压缩试验,根据试验数据绘制孔隙比与压力的关系曲线(即压缩曲线),确定土的压缩系数、压缩模量,评价土体的压缩性。 ⑴掌握以磅秤式(或杠杆式)加压设备测定土压缩系数的方法,并根据试验数据绘制孔隙比与压力的关系曲线(即压缩曲线); ⑵根据求得的压缩系数21-a 评定土的压缩性。 2 试验方法 ⑴密度试验——环刀法; ⑵含水率试验——烘干法; ⑶压缩试验——快速固结试验法。 3 试验原理 土样在外力作用下便产生压缩,其压缩量的大小是与土样上所加的荷重大小以及土样的性质有关。如在相同的荷重作用上,软土的压缩量就大,而坚密的土则压缩量小;又如在同一种土样的条件下,压缩量随着荷重的加大而增加。因此,我们可以在同一种土样上,施加不同的荷重,一般情况下,荷重分级不宜过大。视土的软硬程度及工程情况可取为12.5、25、50、100、200、300、400、600、800 kPa 等。最后一级荷重应大于土层计算压力的100~200kPa 。这样,便可得不同的压缩量,从而可以算出相应荷重时土样的孔隙比。如图6-1可见,当土样在荷重P 1作用下,压缩量为h ?。一般认为土样的压缩主要由于土的压密使孔隙减少产生的。因此,与未加荷前相比,可得:10e e h -=?。 而土样在荷重P 1作用下产生的应变为 h h ?= ε,从图6-1可得: ) 1(100 100 1 00e h h e e e e e h h +?=-+-=? 式中:1e ——在荷重P 1作用下,土样变形稳定时的孔隙比; 0e 、0 h ——分别为原始土样的孔隙比和高度; h ?——在荷重P 1作用下,土样变形稳定时的压缩量。

实验六 函数

实验六 函数 一、实验目的 1.掌握自定义函数的一般结构及定义函数的方法。 2.掌握形参、实参、函数原型等重要概念。 3.掌握函数声明、函数调用的一般方法。 4. 了解函数的嵌套调用以及函数的递归调用的格式。 二、实验预习 1 .理解为什么要在程序中引入函数?函数的引入对程序的整体结构有什么样的影响? 2. 函数的定义格式,理解函数的类型说明符根据什么来确定? 3. 充分理解函数实参和形参的联系和区别,掌握单向值传递的意义。 4. 了解针对不同返回类型的函数返回值的应用,尤其是有无return 语句的区别。 5. 掌握函数调用与函数声明的格式,了解什么情况下需要进行函数声明?什么情况下不需要? 6. 了解函数嵌套调用和递归调用的原理及使用原则。 三、实验内容 (一)阅读并调试下列程序,根据要求给出程序结果。 1.求三角形面积函数。 ⑴ 编程分析 ① 设三角形边长为a 、b 、c ,面积area 的算法是s=(a+b+c)/2, area=))()((c s b s a s s --- ,其中 显然,要计算三角形面积,需要用到三个参数,面积函数的返回值的数据类型应为实型。 ② 尽管main()函数可以出现在程序的任何位置,但为了方便程序阅读,通常将主函数放在程序的开始位置,并在它之前集中进行自定义函数的原型声明。 ⑵ 参考程序 /* 定义和使用求三角形面积函数的程序 */ #include "math.h" #include "stdio.h" float area(float,float,float); /*函数的声明*/ void main() { float a,b,c; printf("请输入三角形的三个边长值:\n") scanf("%f,%f,%f",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a&&a>0.0&&b>0.0&&c>0.0) printf("Area=%-7.2f\n",area(a,b,c)); /* 以下是计算任意三角形面积的函数 */ float area(float a,float b,float c) { float s,area_s; s=(a+b+c)/2.0;

实验六 自定义函数

实验六自定义函数 实验目的:熟悉Matlab自定义函数的定义和调用方法 实验内容: 2. 编写程序,在主程序中提示用户输入一组数字,编写子程序文件 find_div2.m找出能被2整除的数字,find_max_min.m找出输入数字中的最大值和最小值之和,find_averag求出输入数字的平均值,sort_number对数字进行排序,在主程序中调用子程序并且把上述结果输出。例如输入的数字为1,2,3,4,5,要求输出格式为:输入数字中能被2整除的数为:2,4 输入数字中最大值与最小值之和为:5+1=6 输入数字的平均值为:3 输入数字从大到小排序为:5,4 3,2,1 主程序: clear,clc s=input('请输入一组数字:','s'); x=str2num(s); find_div2(x); find_max_min(x); find_averag(x); sort_number(x);

子程序: function find_div2(x) b=length(x); for i=1:b A(i)=x(i); end c=find(rem(A,2)==0); A=A(c); disp(['输入数字中能被2整除的数为:',num2str(A)]) 子程序: function find_max_min(x) a=max(x); b=min(x); c=a+b; disp(['输入数字中最大值与最小值之和为:',num2str(a),'+',num2str(b),'=',num2str(c) 子程序: function find_averag(x) a=mean(x); disp(['输入数字的平均值为: ',num2str(a)]) 子程序: f unction sort_number(x) a=sort(x); b=fliplr(a); disp(['输入数字从大到小排序为:',num2str(b)])

实验6函数习题及答案

实验6 函数 班级:学号: 姓名:日期: 一、实验目的 (1)掌握定义函数的方法; (2)掌握函数实参与形参的对应关系,以及“值传递”的方式; (3)掌握函数的嵌套调用和递归调用的方法; (4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法; (5)学习对多文件的程序编译和运行。 二、实验内容 1.阅读下面程序,写出程序运行结果,并且上机进行验证。 (1)a1.cpp 变量的虚实耦合,实现的是值传递,是单向传递 #include "stdio.h" int swap(int a,int b) { int c,s; c=a; a=b; b=c; s=a+b; return s; } void main() { int a,b,s; a=3;b=4; s=swap(a,b); printf("a=%d b=%d s=%d\n",a,b,s); } (2)a2.cpp

将十进制数26的各位数字相乘 #include "stdio.h" int fun(int num) { int k=1; do { k*=num %10; / num/=10; }while(num); return(k); } void main() { int n=26; printf("%d\n",fun(n)); } (3)a3.cpp 变量的作用域,当在函数内定义了与全局变量同名的局部变量时,全局变量被屏蔽#include "stdio.h" int a=3,b=5,c; void f(int b) { c=a+b; printf("%d %d %d\n",a,b,c); } void main() { int a=8; f(3); printf("%d %d %d\n",a,b,c); } (4)a4.cpp 递归,将十进制11转换为二进制 #include "stdio.h" void dtob(int n) { int i;

实验六

实验六计数器综合应用 一实验目的 1分析集成同步十进制计数器的逻辑功能。 2学会用集成同步十进制计数器来构成其它进制的计数器。 二实验仪器 安装有Multisim10的个人电脑 三实验原理 本实验采用74LSl60同步十进制计数器。图6-1是由74LSl60等构建的同步十进制循环计数器。

图中,74LSl60的A、B、C、D端是计数器输入端;QA、QB、QC、QD端是计数器输出端;ENP与ENT是功能控制端,两端任何一端为低电平,计数器保持状态,只有ENP与ENT都为高电平,才能计数;~LOAD是预置端,低电位为预置数,当~LOAD为低电位,在CLK的作用下QA、QB、QC、QD的数值为A、B、C、D的数值;~CLR为置零端,低电位时清零;当EN当、ENT、~LOAD、~LOAD皆为高电位时,计数器处于循环计数状态。另外,V1是计数器时钟源,U2是带译码器的数码管显示器。 四实验步骤

(一)同步十进制计数器测试 1同步十进制计数器实验电路图如图6-2。 2打开Multisim10工作界面,从TTL元件库中取出74LS160, 从显示器件库中取出带译码器的四脚显示数码管,从仪器库中取出逻辑分析仪等,按图6-2连接好。 3调整V1时钟频率为100Hz,打开工作开关。计数器运转正常后,进行下列测试 图6-2

4打开逻辑分析仪,时钟频率设置Extemal与V1相同,观察数码管数字变化与逻辑分析仪波形变化。画出一个计数周期QA、QB、QC、QD及时钟波形时序图。根据时序图分析计数器计数规律。 计数器计数规律如下: 十进制计数器是在二进制计数器的基础上得出的,用四位二进制数来代表十进制的每一位数。在CP作用下,计数器的状态Q3、Q2、Q1 Q0 按照0000→0001→ … →1001→0000循环,这十个状态称为有效状态。1010、1011、1100、1101、1110、1111六个状态称为无效状态。

实验六 窗函数及其对信号频谱的影响

实验六窗函数 及其对信号频谱 的影响 一. 实验目的 1. 掌握几种典型窗函数的性质、特点,比较几种典型的窗函数对信号频谱的影响。 2. 通过实验认识它们在克服FFT 频谱分析的能量泄漏和栅栏效应误差中的作用,以便在实际工作中能根据具体情况正确选用窗函数 二. 实验原理 1. 信号的截断及能量泄漏效应 数字信号处理的主要数学工具是博里叶变换.应注意到,傅里叶变换是研究整个时间域和频率域的关系。然而,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。 图6.1 信号的周期延拓 周期延拓后的信号与真实信号是不同的,下面我们就从数学的角度来看这种处理带来的误差情况。设有余弦信号x(t)在时域分布为无限长(- ∞,∞),当用矩形窗函数w(t)与其相乘时,得到截断信号xT(t) =x(t)w(t)。根据博里叶变换关系,余弦信号的频谱X(ω)是位于ω。处的δ函数,而矩形窗函数w(t)的谱为sinc(ω)函数,按照频域卷积定理,则截断信号xT(t) 的谱XT(ω) 应为: 将截断信号的谱XT(ω)与原始信号的谱X(ω)相比较可知,它已不是原来的两条谱线,而是两段振荡的连续谱.这表明原来的信号被截断以后,其频谱发生了畸变,原来集中在f0处的能量被分散到两个较宽的频带中去了,这种现象称之为频谱能量泄漏(Leakage)。 信号截断以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截断以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截断,就不可避免地引起混叠,因此信号截断必然导致一些误差,这是信号分析中不容忽视的问题。

C++实验六 函数

实验名称:实验六函数 班级学号姓名 实验地点完成日期成绩 (一)实验目的与要求 1.掌握高级语言中定义和使用函数的方法; 2.掌握通过“值传送”调用函数的方法; 3. 掌握函数的嵌套调用和递归函数的设计方法; 4.进一步练习阅读检查与调试修改高级语言程序的方法。 (二)实验内容 1.调试运行如下二程序,分析调用函数前后程序1中a,b这二个变量的值是否发生改变?为什么?程序2中数组a的二个元素的值是否发生改变?为什么? 程序1(变量作函数实参) int main( ) { int a=3,b=6; printf("a=%d,b=%d¥n",a,b); exchange1(a,b); printf("a=%d,b=%d¥n",a,b); return 0; } void exchange1(int x,int y) { int t; t=x;x=y;y=t; printf("x=%d,y=%d¥n",x,y); } 程序2(数组名作函数实参) int main( ) { void exchange2(int x[2]); static int a[2]={3,6};

printf("a[0]=%d,a[1]=%d¥n",a[0],a[1]); exchange2(a); printf("a[0]=%d,a[1]=%d¥n",a[0],a[1]); return 0; } void exchange2(int x[2]) { int t; t=x[0];x[0]=x[1];x[1]=t; printf("x[0]=%d,x[1]=%d¥n",x[0],x[1]); } 2. 写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。 本程序应当准备以下测试数据:17、2、1。分别输入数据,运行程序并检查结果是否正确。 3. 编写转换函数,将十进制整数n(-2^31<=n<=2^31-1)转换成k(2<=k<=16)进制数。字母请使用大写。(HLOJ 8001) (三)实验具体步骤 1.调试运行如下二程序,分析调用函数前后程序1中a,b这二个变量的值是否发生改变?为什么?程序2中数组a的二个元素的值是否发生改变?为什么? 程序1(变量作函数实参) int main( ) { int a=3,b=6; printf("a=%d,b=%d¥n",a,b); exchange1(a,b); printf("a=%d,b=%d¥n",a,b); return 0; } void exchange1(int x,int y) { int t; t=x;x=y;y=t; printf("x=%d,y=%d¥n",x,y); }

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

相关文档
最新文档