当前位置:文档之家› 信号与系统实验报告

信号与系统实验报告

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

实验三常见信号的MATLAB表示及运算

一、实验目的

1.熟悉常见信号的意义、特性及波形

2.学会使用MATLAB表示信号的方法并绘制信号波形

3.掌握使用 MATLAB 进行信号基本运算的指令

4.熟悉用 MATLAB 实现卷积积分的方法

二、实验原理

根据 MATLAB 的数值计算功能和符号运算功能,在 MA TLAB 一种是用向量来表示,另一种则是用符号运算的方法。在采用适当的中,信号有两种表示方法,

MA TLAB 语句表示出

信号后,就可以利用MA TLAB 中的绘图命令绘制出直观的信号波形了。

1.连续时间信号

从严格意义上讲,MATLAB 并不能处理连续信号。在MATLAB 中,是用连续信号在等时间

间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连

续信号。在 MATLAB 中连续信号可用向量或符号运算功能来表示。

⑴ 向量表示法

对于连续时间信号 f (t) ,可以用两个行向量 f 和 t 来表示,其中向量 t 是用形如t t1 : p : t2的命令定义的时间范围向量,其中,t1为信号起始时间,t2为终止时间,p为时间间隔。向量 f 为连续信号 f (t ) 在向量t所定义的时间点上的样值。

⑵ 符号运算表示法

如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘

图命令 ezplot() 等函数来绘出信号的波形。

⑶常见信号的MATLAB表示

单位阶跃信号

1t0

单位阶跃信号的定义为: u(t )

t0

方法一:调用 Heaviside(t) 函数

首先定义函数Heaviside(t) 的 m 函数文件 ,该文件名应与函数名同名即Heaviside.m。

%定义函数文件 ,函数名为 Heaviside, 输入变量为 x,输出变量为 y

function y= Heaviside(t)

y=(t>0);% 定义函数体,即函数所执行指令

%此处定义t>0 时 y=1,t<=0 时 y=0,注意与实际的阶跃信号定义的区别。

方法二:数值计算法

在 MATLAB 中,有一个专门用于表示单位阶跃信号的函数,即stepfun( )函数,它是用数值计算法表示的单位阶跃函数u(t) 。其调用格式为:

stepfun(t,t0)

其中, t 是以向量形式表示的变量,t0 表示信号发生突变的时刻,在 t0 以前,函数值小于零,t0 以后函数值大于零。有趣的是它同时还可以表示单位阶跃序列u( k) ,这只要将自变量以及取样间隔设定为整数即可。

符号函数

符号函数的定义为:sgn(t )1t0 1t0

在 MA TLAB 中有专门用于表示符号函数的函数sign() ,由于单位阶跃信号(t) 和符号函数

两者之间存在以下关系:(t )11

22

sgn(t ) ,因此,利用这个函数就可以很容易地生成单

位阶跃信号。

2.离散时间信号

离散时间信号又叫离散时间序列,一般用 f (k) 表示,其中变量k为整数,代表离散的采样

时间点(采样次数)。

在 MATLAB中,离散信号的表示方法与连续信号不同,它无法用符号运算法来表示,

而只能采用数值计算法表示,由于MATLAB中元素的个数是有限的,因此,MATLAB无法表示无限序列;另外,在绘制离散信号时必须使用专门绘制离散数据的命令,即stem()函数,而不能用plot() 函数。

单位序列( k)

1k0

单位序列 (k) )的定义为(k)

k0

单位阶跃序列 u( k)

单位阶跃序列 u(k ) 的定义为u( k)1k0 0k0

3.卷积积分

两个信号的卷积定义为:

y(t) f1(t) f2 (t )f1 ( ) f2 (t) d

MATLAB 中是利用 conv 函数来实现卷积的。

功能:实现两个函数

f 1 (t ) 和 f 2 (t) 的卷积。

格式: g=conv(f1,f2)

说明: f1=f 1(t),f2=f 2(t) 表示两个函数, g=g(t) 表示两个函数的卷积结果。

三、实验内容

1.分别用 MATLAB 的向量表示法和符号运算功能,表示并绘出下列连续时间信号的波形:

⑴ f (t) (2 e 2 t

)u(t)

⑵ f (t) cos( t

) u(t) u(t 4)

(1) t=-1:0.01:10;

2

t1=-1:0.01:-0.01; t2=0:0.01:10;

f1=[zeros(1,length(t1)),ones(1,length(t2))]; f=(2-exp(-2*t)).*f1; plot(t,f)

axis([-1,10,0,2.1])

syms t;

f=sym('(2-exp(-2*t))*heaviside(t)');

ezplot(f,[-1,10]);

(2)

t=-2:0.01:8;

f=0.*(t<0)+cos(pi*t/2).*(t>0&t<4)+0.*(t>4);

plot(t,f)

syms t;

f=sym('cos(pi*t/2)*[heaviside(t)-heaviside(t-4)] '); ezplot(f,[-2,8]);

2.分别用 MATLAB表示并绘出下列离散时间信号的波形:

⑵ f (t )k u( k)u(k8)⑶ f (k )sin( k

)u(k)

4

(2)t=0:8; t1=-10:15;

f=[zeros(1,10),t,zeros(1,7)]; stem(t1,f) axis([-

10,15,0,10]);

(3)t=0:50; t1=-10:50;

f=[zeros(1,10),sin(t*pi/4)]; stem(t1,f) axis([-10,50,-2,2])

3.已知两信号f1(t) u(t 1) u(t) , f2 (t ) u(t) u(t 1),求卷积积分

g(t) f1(t)f2 (t ) ,并与例题比较。

t1=-1:0.01:0;

t2=0:0.01:1;

t3=-1:0.01:1;

f1=ones(size(t1));

f2=ones(size(t2));

g=conv(f1,f2);

subplot(3,1,1),plot(t1,f1);

subplot(3,1,2),plot(t2,f2);

subplot(3,1,3),plot(t3,g);

与例题相比较, g(t)的定义域不同,最大值对应的横坐标也不同。

4.已知f1(k)1,1,1,2 , f2 (k ) 1,2,3,4,5,求两序列的卷积和。N=4;

M=5;

L=N+M-1;

f1=[1,1,1,2];

f2=[1,2,3,4,5];

g=conv(f1,f2);

kf1=0:N-1;

kf2=0:M-1;

kg=0:L-1;

subplot(1,3,1),stem(kf1,f1,'*k');xlabel('k');

ylabel('f1(k)');grid on

subplot(1,3,2),stem(kf2,f2,'*k');xlabel('k');

ylabel('f2(k)');grid on

subplot(1,3,3);stem(kg,g,'*k');xlabel('k');

ylabel('g(k)');grid on

实验心得:第一次接触 Mutlab 这个绘图软件,觉得挺新奇的,同时,由于之前不太学信号与系统遇到一些不懂的问题,结合这些图对信号与系统有更好的了

解。

实验四连续时间信号的频域分析

一、实验目的

1.熟悉傅里叶变换的性质

2.熟悉常见信号的傅里叶变换

3.了解傅里叶变换的MATLAB实现方法

二、实验原理

从已知信号 f (t) 求出相应的频谱函数 F ( j ) 的数学表示为: F ( j ) f (t )e j t dt 傅里叶反变换的定义为: f (t )1 F ( j )e j t d

2

在 MA TLAB中实现傅里叶变换的方法有两种,一种是利用MATLAB中的Symbolic Math

Toolbox 提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变

换的数值计算实现法。

1.直接调用专用函数法

①在 MATLAB中实现傅里叶变换的函数为:

F=fourier( f )对f(t)进行傅里叶变换,其结果为F(w)

F=fourier(f,v)对f(t)进行傅里叶变换,其结果为F(v)

F=fourier( f,u,v )对f(u)进行傅里叶变换,其结果为F(v)

②傅里叶反变换

f=ifourier( F )对F(w)进行傅里叶反变换,其结果为f(x)

f=ifourier(F,U)对 F(w) 进行傅里叶反变换,其结果为f(u)

f=ifourier( F,v,u )对F(v)进行傅里叶反变换,其结果为f(u)

注意:

(1)在调用函数 fourier( ) 及 ifourier( ) 之前,要用 syms 命令对所有需要用到的变量(如 t,u,v,w )等进行说明,即要将这些变量说明成符号变量。对 fourier( ) 中的 f 及 ifourier( )中的 F 也要用符号定义符 sym 将其说明为符号表达式。

( 2)采用 fourier( ) 及 fourier( ) 得到的返回函数,仍然为符号表达式。在对其作图时要用

ezplot( ) 函数,而不能用 plot() 函数。

(3) fourier( ) 及 fourier( ) 函数的应用有很多局限性,如果在返回函数中含有δ( ω)等函数,则 ezplot( ) 函数也无法作出图来。另外,在用fourier( ) 函数对某些信号进行变换时,其返回

函数如果包含一些不能直接表达的式子,则此时当然也就无法作图了。这是 fourier( ) 函数的一个局限。另一个局限是在很多场合,尽管原时间信号f(t)是连续的,但却不能表示成符号

表达式,此时只能应用下面介绍的数值计算法来进行傅氏变换了,当然,大多数情况下,用数值计算法所求的频谱函数只是一种近似值。

2、傅里叶变换的数值计算实现法

严格说来,如果不使用symbolic 工具箱,是不能分析连续时间信号的。采用数值计算

方法实现连续时间信号的傅里叶变换,实质上只是借助于MATLAB的强大数值计算功能,

特别是其强大的矩阵运算能力而进行的一种近似计算。傅里叶变换的数值计算实现法的原理如下:

对于连续时间信号f(t) ,其傅里叶变换为:

F ( j) f (t )e j t dt limf (n )e j n

0 n

其中τ为取样间隔,如果f(t) 是时限信号,或者当|t|大于某个给定值时,f(t) 的值已经衰减得很厉害,可以近似地看成是时限信号,则上式中的n 取值就是有限的,假定为N,有:

N1

F ( j ) f (n )e j n

n 0

若对频率变量ω进行取样,得:

N1

k n

F (k ) F ( j k )j

f (n )e

n0

0 k M

通常取:k0 k2k ,其中0是要取的频率范围,或信号的频带宽度。采用MATLAB M M

实现上式时,其要点是要生成f(t) 的 N 个样本值f (n )的向量,以及向量e j k n,两向量的内积(即两矩阵的乘积),结果即完成上式的傅里叶变换的数值计算。

注意:时间取样间隔τ的确定,其依据是τ必须小于奈奎斯特( Nyquist )取样间隔。如果f(t) 不是严格的带限信号,则可以根据实际计算的精度要求来确定一个适当的频率0 为信号的带宽。

三、实验内容

1.编程实现求下列信号的幅度频谱

(1) 求出

f1(t )u(2t 1) u(2t 1)

1

2 的门函的频谱函数 F ( j ω),请将它与上面门宽为

数 f (t ) u(t 1) u(t1)的频谱进行比较,观察两者的特点,说明两者的关系。

(2)

1| t || t |1三角脉冲 f 2 (t )0| t |1

(3)单边指数信号 f3 (t ) e t(t)

(4)高斯信号

f3(t) e t2

(1)syms t w

Gt=sym('Heaviside(2*t+1)-Heaviside(2*t-1)'); Fw=fourier(Gt,t,w);

FFw=maple('convert',Fw,'piecewise');

FFP=abs(FFw);

ezplot(FFP,[-10*pi 10*pi]);grid;

axis([-10*pi 10*pi 0 2.2])

F1(j ω)最大值与 f (t ) u(t 1) u(t 1)的频谱比较, f1 (t ) u(2t 1) u(2t1) 的频谱函数

是其的 1/2。

(2)

syms t w;

Gt=sym('(1+t)*(Heaviside(t+1)-Heaviside(t))+(1-t)*(Heaviside(t)-Heaviside(t-1))

');

Fw=fourier(Gt,t,w);

FFw=maple('convert',Fw,'piecewise');

FFP=abs(FFw);

ezplot(FFP,[-10*pi 10*pi]);grid;

axis([-10*pi 10*pi 0 2.2])

(3)

syms t w

Gt=sym('exp(-t)*Heaviside(t)');

Fw=fourier(Gt,t,w);

FFw=maple('convert',Fw,'piecewise'); FFP=abs(FFw);

ezplot(FFP,[-10*pi 10*pi]);grid;

axis([-10*pi 10*pi -1 2])

(4)

syms t w

Gt=sym('exp(-t^2)');

Fw=fourier(Gt,t,w);

FFw=maple('convert',Fw,'piecewise'); ezplot(FFw,[-30 30]);grid;

axis([-30 30 -1 2])

2.利用 ifourier( )函数求下列频谱函数的傅氏反变换

(1) F ( j )

2( j)2 5 j8 j

2

(2) F ( j )

)2 6 j5 16( j

(1)

syms t w

Fw=sym('-i*2*w/(16+w^2)');

ft=ifourier(Fw,w,t);

ft

运行结果:

ft =

-exp(4*t)*heaviside(-t)+exp(-4*t)*heaviside(t)

(2)

syms t w

Fw=sym('((i*w)^2+5*i*w-8)/((i*w)^2+6*i*w+5)'); ft=ifourier(Fw,w,t);

ft

运行结果:

ft =

dirac(t)+(-3*exp(-t)+2*exp(-5*t))*heaviside(t)

实验心得 matlab 不但具有数值计算能力,还能建模仿真,能帮助我们理解不同时间信号的

频域分析。

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

一、实验目的

1.学习由系统函数确定系统频率特性的方法。

2.学习和掌握连续时间系统的频率特性及其幅度特性、相位特性的物理意义。

3.通过本实验了解低通、高通、带通、全通滤波器的性能及特点。

二、实验原理及方法

频域分析法与时域分析法的不同之处主要在于信号分解的单元函数不同。在频域分析法中,信号分解成一系列不同幅度、不同频率的等幅正弦函数,通过求取对每一单元激励产生的响应,并将响应叠加,再转换到时域以得到系统的总响应。所以说,频域分析法是一种变域分析法。它把时域中求解响应的问题通过Fourier 级数或 Fourier 变换转换成频域中的问题;在频域中求解后再转换回时域从而得到最终结果。在实际应用中,多使用另一种变域分析法:复频域分析法,即Laplace 变换分析法。

所谓频率特性,也称频率响应特性,是指系统在正弦信号激励下稳态响应随频率变化的

情况,包括幅度随频率的响应和相位随频率的响应两个方面。利用系统函数也可以确定系统频率特性,公式如下:

H j H s s j| H ( j ) | e j H ( )

幅度响应用 H j表示,相位响应用H (

) 表示。

本实验所研究的系统函数H(s) 是有理函数形式,也就是说,分子、分母分别是m、n 阶多项式。

m

s i

b

i

H s i 0

n

s i

a i

i 0

要计算频率特性,可以写出

m

b i

j

H j

H S

i

s j

n

a i

j

i

i i

为了计算出 H j

H ( ) 的值,可以利用复数三角形式的一个重要特性:

cos

j sin n

cosn

j sin n

而 j

cosj sin

,则 j n

n

cos

n

j sin

n

2 2

2 2

利用这些公式可以化简高次幂,

因此分子和分母的复数多项式就可以转化为分别对实部

与虚部的实数运算,算出分子、分母的实部、虚部值后,最后就可以计算出幅度 H j

相位

H ( )的值了。

三、实验内容

a)H (s)

m

[0,1] ,绘制一组曲线

m=0.1,0.3,0.5,0.7,0.9 ;

, m 取值区间

1 ( m m

2 )s

b) 绘制下列系统的幅频响应对数曲线和相频响应曲线,分析其频率特性。

s

(1)

H s

1

s

s

(2)

H s

1 s 2

s (3)

s 1

H s

1

s

a) % design2.m

figure

alpha=[0.1,0.3,0.5,0.7,0.9];

colorn=['r' 'g' 'b' 'y' 'k']; % r g b y m c k (红,绿,蓝,黄,品红,青,黑)

for n=1:5

b=[0 alpha(n)]; % 分子系数向量

a=[alpha(n)-alpha(n)^2 1];

% 分母系数向量

printsys(b,a,'s') [Hz,w]=freqs(b,a); w=w./pi;

magh=abs(Hz);

zerosIndx=find(magh==0); magh(zerosIndx)=1; magh=20*log10(magh); magh(zerosIndx)=-inf; angh=angle(Hz);

angh=unwrap(angh)*180/pi;

subplot(1,2,1)

plot(w,magh,colorn(n));

hold on

subplot(1,2,2)

plot(w,angh,colorn(n));

hold on

end

subplot(1,2,1)

hold off

xlabel(' 特征角频率 (\times\pi rad/sample)')

title(' 幅频特性曲线|H(w)| (dB)');

subplot(1,2,2)

hold off

xlabel(' 特征角频率(\times\pi rad/sample)') title(' 相频特性曲线\theta(w) (degrees)');

b)

(1) % design1.m

b=[1,0]; % 分子系数向量

a=[1,1]; % 分母系数向量

printsys(b,a,'s')

[Hz,w]=freqs(b,a);

w=w./pi;

magh=abs(Hz);

zerosIndx=find(magh==0);

magh(zerosIndx)=1;

magh=20*log10(magh);% 以分贝magh(zerosIndx)=-inf;

angh=angle(Hz);

angh=unwrap(angh)*180/pi;% 角度换算figure

subplot(1,2,1)

plot(w,magh);

grid on

xlabel(' 特征角频率 (\times\pi rad/sample)') title(' 幅频特性曲线|H(w)| (dB)');

subplot(1,2,2)

plot(w,angh);

grid on

xlabel(' 特征角频率(\times\pi rad/sample)') title(' 相频特性曲线\theta(w) (degrees)');

(2) % design1.m

b=[0,1,0]; % 分子系数向量

a=[1,3,2]; % 分母系数向量

printsys(b,a,'s')

[Hz,w]=freqs(b,a);

w=w./pi;

magh=abs(Hz);

zerosIndx=find(magh==0);

magh(zerosIndx)=1;

magh=20*log10(magh);% 以分贝magh(zerosIndx)=-inf;

angh=angle(Hz);

angh=unwrap(angh)*180/pi;% 角度换算figure

subplot(1,2,1)

plot(w,magh);

grid on

xlabel(' 特征角频率 (\times\pi rad/sample)') title(' 幅频特性曲线|H(w)| (dB)');

subplot(1,2,2)

plot(w,angh);

grid on

xlabel(' 特征角频率(\times\pi rad/sample)') title(' 相频特性曲线\theta(w) (degrees)');

(3) % design1.m

b=[1,-1];% 分子系数向量

a=[1,1]; % 分母系数向量

printsys(b,a,'s')

[Hz,w]=freqs(b,a);

w=w./pi;

magh=abs(Hz);

zerosIndx=find(magh==0);

magh(zerosIndx)=1;

magh=20*log10(magh);% 以分贝magh(zerosIndx)=-inf;

angh=angle(Hz);

angh=unwrap(angh)*180/pi;% 角度换算figure

subplot(1,2,1)

plot(w,magh);

grid on

xlabel(' 特征角频率 (\times\pi rad/sample)') title(' 幅频特性曲线|H(w)| (dB)');

subplot(1,2,2)

plot(w,angh);

grid on

xlabel(' 特征角频率title(' 相频特性曲线(\times\pi rad/sample)') \theta(w) (degrees)');

操作系统实验报告_实验五

实验五:管道通信 实验内容: 1.阅读以下程序: #include #include #include main() { int filedes[2]; char buffer[80]; if(pipe(filedes)<0) //建立管道,filedes[0]为管道里的读取端,filedes[1]则为管道的写入端 //成功则返回零,否则返回-1,错误原因存于errno中 err_quit(“pipe error”); if(fork()>0){ char s[ ] = “hello!\n”; close(filedes[0]); //关闭filedes[0]文件 write(filedes[1],s,sizeof(s)); //s所指的内存写入到filedes[1]文件内 close(filedes[1]); //关闭filedes[0]文件 }else{ close(filedes[1]); read(filedes[0],buffer,80); //把filedes[0]文件传送80个字节到buffer缓冲区内 printf(“%s”,buffer); close(filedes[0]); } } 编译并运行程序,分析程序执行过程和结果,注释程序主要语句。

2.阅读以下程序: #include #include #include main() { char buffer[80]; int fd; unlink(FIFO); //删除FIFO文件 mkfifo(FIFO,0666); //FIFO是管道名,0666是权限 if(fork()>0){ char s[ ] = “hello!\n”;

信号与系统实验报告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;

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

信号系统实验报告

电子工程系 信号与系统课程实验报告 2011-----2012学年第一学期 专业: 电子信息工程技术班级: 学号 : 姓名: 指导教师: 实常用连续时间信号的实现

一、实验目的 (1)了解连续时间信号的特点; (2)掌握连续时间信号表示的向量法和符号法; (3)熟悉MATLAB Plot函数等的应用。 二、实验原理 1、信号的定义 信号是随时间变化的物理量。信号的本质是时间的函数。 2、信号的描述 1)时域法 时域法是将信号表示成时间的函数f(t)来对信号进行描述的方法。信号的时间特性指的是信号的波形出现的先后,持续时间的长短,随时间变化的快慢和大小,周期的长短等。 2)频域(变换域)法 频域法是通过正交变换,将信号表示成其他变量的函数来对信号进行描述的方法。一般常用的是傅立叶变换。信号的频域特性包括频带的宽窄、频谱的分布等。 信号的频域特性与时域特性之间有着密切的关系。 3、信号的分类 按照特性的不同,信号有着不同的分类方法。 (1)确定性信号:可以用一个确定的时间函数来表示的信号。 随机信号:不可以用一个确定的时间函数来表示,只能用统计特性加以描述的信号。 (2)连续信号:除若干不连续的时间点外,每个时间点在t上都有对应的数值信号。离散信号:只在某些不连续的点上有数值,其他时间点上信号没有定义的信号。 (3)周期信号:存在T,使得等式f(t+T)=f(t)对于任意时间t都成立的信号。非周期信号:不存在使得等式f(t+T)=f(t)对于任意时间t都成立的信号。 绝对的周期信号是不存在的,一般只要在很长时间内慢走周期性就可以了。 (4)能量信号:总能量有限的信号。 功率信号:平均功率有限切非零的信号。 (5)奇信号:满足等式f(t)=--f(--t)的信号。偶信号:满足等式f(t)=f(--t)的信号。 三、涉及的MATLAB函数 1、plot函数 功能:在X轴和Y轴方向都按线性比例绘制二维图形。 调用格式: Plot(x,y):绘出相x对y的函数线性图。 Plot(x1,y1,x2,y2,…..):会出多组x对y的线性曲线图。 2、ezplot函数 功能:绘制符号函数在一定范围内的二维图形。简易绘制函数曲线。 调用格式: Ezplot (fun):在[-2π,2π]区间内绘制函数。 Ezplot (fun,[min,max]):在[min,max]区间内绘函数。 Ezplot (funx,funy):定义同一曲面的函数,默认的区间是[0, 2π]。】 3、sym函数 功能:定义信号为符号的变量。 调用格式:sym(fun):fun为所要定义的表达式。 4、subplot函数

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

实验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(常用信号的分类与观察)

实验一:信号的时域分析 一、实验目的 1.观察常用信号的波形特点及产生方法 2.学会使用示波器对常用波形参数的测量 二、实验仪器 1.信号与系统试验箱一台(型号ZH5004) 2.40MHz双踪示波器一台 3.DDS信号源一台 三、实验原理 对于一个系统特性的研究,其中重要的一个方面是研究它的输入输出关系,即在一特定的输入信号下,系统对应的输出响应信号。因而对信号的研究是对系统研究的出发点,是对系统特性观察的基本手段与方法。在本实验中,将对常用信号和特性进行分析、研究。 信号可以表示为一个或多个变量的函数,在这里仅对一维信号进行研究,自变量为时间。常用信号有:指数信号、正弦信号、指数衰减正弦信号、复指数信号、Sa(t)信号、钟形信号、脉冲信号等。 1、信号:指数信号可表示为f(t)=Ke at。对于不同的a取值,其波形表现为不同的形式,如下图所示: 图1―1 指数信号 2、信号:其表达式为f(t)=Ksin(ωt+θ),其信号的参数:振幅K、角频率ω、与初始相位θ。其波形如下图所示:

图1-2 正弦信号 3、指数衰减正弦信号:其表达式为其波形如下图: 图1-3 指数衰减正弦信号 4、Sa(t)信号:其表达式为:。Sa(t)是一个偶函数,t= ±π,±2π,…,±nπ时,函数值为零。该函数在很多应用场合具有独特的运用。其信号如下图所示:

图1-4 Sa(t)信号 5、钟形信号(高斯函数):其表达式为:其信号如下图所示: 图1-5 钟形信号 6、脉冲信号:其表达式为f(t)=u(t)-u(t-T),其中u(t)为单位阶跃函数。其信号如下图所示: 7、方波信号:信号为周期为T,前T/2期间信号为正电平信号,后T/2期间信号为负电平信号,其信号如下图所示 U(t)

操作系统实验报告

《计算机操作系统》实验报告 教师: 学号: 姓名: 2012年3月6日 计算机学院

实验题目:请求页式存储管理(三) ----------------------------------------------------------------------------- 实验环境:VC6.0++ 实验目的:学生应独立地用高级语言编写几个常用的存储分配算法,并设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的了解。实验内容: (1)编制和调试示例给出的请求页式存储管理程序,并使其投入运行。 (2)增加1~2种已学过的淘汰算法,计算它们的页面访问命中率。试用各种算法的命中率加以比较分析。(增加了FIFO) 操作过程: (1)产生随机数 (2)输入PageSize(页面大小1 /2/4/8 K) (pageno[i]=int(a[i]/1024)+1) (3)菜单选择

(4)OPT/ LRU/FIFO演示(pagesize=1K)

(5) 过程说明(PAGESIZE = 4K ) OPT :最佳置换算法(淘汰的页面是以后永不使用,或许是在最长时间内不再被访问的页面) //在Table 表中如果未找到,记录每个元素需要找的长度 //全部table 中元素找完长度,然后进行比较,找出最大的,进行淘汰 int max=0; int out; for(k=0;kmax){ max = table_time[k]; out = k; } }//找出最长时间,进行替换 table[out]=pageno[i]; page_out++;

北京理工大学信号与系统实验报告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) 连续时间系统的冲激响应与阶跃响应

操作系统实验报告

《操作系统》课程实验报告 专业:软件工程 班级:软件二班 学号: 2220111350 姓名:韩培培 序号: 14

目录: 实验一、进程的创建 实验二、进程控制 实验三、进程的管道通信 实验四、消息通信 实验五、进程调度 实验六、FIFO页面调度 实验七、LRU页面置换算法

实验一进程的创建 一.实验目的:进程的创建 二.实验内容:编写一段程序,使用系统调用 FORK( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“A”子进程分别显示字符“B”和“C”。试观察记录屏幕上的显示结果,并分析原因。 三.实验代码: #include <stdio.h> Main() { int p1,p2; While((p1=fork())==-1); If (p1==0) Putchar(ˊbˊ); else { While((p2=fork())==-1); If(p2==0) Putchar(ˊcˊ); else putchar(ˊaˊ); } } 四.实验运行结果

五.分析原因 程序首先调用Fork()函数创建一个子进程1.当创建进程不成功,循环创建进程,直至进程创建成功。如果Fork()返回值为0,表示当前进程是子进程1,显示字符B。如果Fork()返回值大于0,则表示当前进程是父进程,表示当前的程序代码是父进程所要执行的。父进程调用Fork()创建子进程2。当创建进程不成功时,循环创建进程直至成功。如果Fork()返回值为0,则表示当前进程是子进程2,显示字符C。如果Fork()返回值大于0,则表示当前进程 是父进程,输出字符A。

信号与系统实验报告

实验三 常见信号的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); %定义函数体,即函数所执行指令

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 2014年3 月29 日

一、实验目的 ◆熟悉hit-oslab实验环境; ◆建立对操作系统引导过程的深入认识; ◆掌握操作系统的基本开发过程; ◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 二、实验容 1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。 2. 按照下面的要求改写0.11的引导程序bootsect.s。 3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。 4. 修改build.c,以便可以使用make BootImage命令 5. 改写bootsect.s主要完成如下功能: bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。 6. 改写setup.s主要完成如下功能: bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而setup.s 向屏幕输出一行"Now we are in SETUP"。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。 三、实验环境

本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。 四、实验步骤 1. 修改bootsect.s中的提示信息及相关代码; 到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。将文档中的98行的mov cx,#24修改为mov cx,#80。同时修改文档中的第246行为图2所示的情形。 图1图2 图3 2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和 ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件; 在\osexp目录下点击MinGW32.bat依此输入下面的命令: cd linux-0.11 cd boot as86 -0 -a -o bootsect.obootsect.s ld86 -0 -s -o bootsectbootsect.o

操作系统实验报告 (5)

实验名称:存储管理 学号班级姓名 1 实验目的: 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的技术特点,掌握请求页式存储管理的页面置换算法。 2 实验预备内容: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: ①50%的指令是顺序执行的; ②50%的指令是均匀分布在前地址部分; ③50%的指令是均匀分布在后地址部分。 具体的实施方法是: ①在 [0,319] 的指令之间随即选取一起点m; ②顺序执行一条指令,即执行地址为m+1的指令; ③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m′; ④顺序执行一条指令,其地址为 m′+ 1; ⑤在后地址[m′+ 2,319]中随机选取一条指令并执行; ⑥重复上述步骤①-⑤,直到执行320次指令。 (2)将指令序列变换为页地址流 设:①页面大小为1k; ②用户内存容量为4页到32页; ③用户虚存容量为32k。 在用户虚存中,按每k存放10条指令排在虚存地址,即320条指令在虚存中的存放方式为: 第0条-第9条指令为第0页(对应虚存地址为[0,9]); 第10条-第19条指令为第一页(对应虚存地址为[10,19]); …… 第310条~第319条指令为第31页(对应虚地址为[310,319])。 按以上方式,用户指令可组成32页。 (3)计算并输出下述各种算法在不同内存容量下的命中率。 ①先进先出的算法(FIFO); ②最近最少使用算法(LRR); ③最佳淘汰算法(OPT)先淘汰最不常用的页地址; ④最少访问页面算法(LFR); ⑤最近最不经常使用算法(NUR)。 其中③和④为选择内容。

信号与系统实验报告

信号与系统实验报告

信号与系统实验报告 姓名: 学号: 软件部分: 表示信号与系统的MATLAB 函数、工具箱 一、实验项目名称:表示信号、系统的MATLAB 函数、工具箱 二、实验目的与任务: 目的:1、加深对常用离散信号的理解; 2、熟悉表示信号的基本MATLAB 函数。 任务:基本MATLAB 函数产生离散信号;基本信号之间的简单运算;判 断信号周期。 三、实验原理: 利用MATLAB 强大的数值处理工具来实现信号的分析和处理,首先就是要学会应用MATLAB 函数来构成信号。 四、实验内容及步骤: 常见的基本信号可以简要归纳如下: 实验内容(一)、 编制程序产生上述5种信号(长度可输入确定),并绘出其图形。 其中5种信号分别为单位抽样序列、单位阶跃序列、正弦序列、指数序列和复正弦序列。 实验内容(二)、 在[0,31]出下列图像 1223[]sin( )cos() 4 4 []cos ( ) 4[]sin()cos() 48 n n x n n x n n n x n πππππ=== 五、项目需用仪器设备名称:计算机、MATLAB 软件。

六、所需主要元器件及耗材:无 七、实验程序及数据 函 数 程序图片 单位冲击函数x=zeros(1,10); x(1)=1; stem(x) 单位阶跃函数x=ones(1,30); plot(x)

正弦序列n=0:30-1; x=sin(2*pi*n/10); stem(x) x=cos(1/4*pi*n).*cos(1/4*pi*n) ; stem(x) 复正弦序列n=0:29; x=exp(j*5*n); stem(x) 指数序列n=0:10; x=2.^n; stem(x)

操作系统实验报告

实验二进程调度 1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有 n 个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过 t 个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言

4 设计思想: (1)程序中进程可用PCB表示,其类型描述如下: struct PCB_type { int pid ;// 进程名 int state ;// 进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 int cpu_time ; //运行需要的CPU寸间(需运行的时间片 个数) } 用PCB来模拟进程; (2)设置两个队 列,将处于“就绪”状态的进程PCB挂在队列readyxx ;将处于“阻塞”状态的进程 PCB挂在队列blockedxx。 队列类型描述如下: struct QueueNode{

struct PCB_type PCB; Struct QueueNode *next; } 并设全程量: struct QueueNode *ready_head=NULL,//ready 队列队首指针 *ready_tail=NULL , //ready 队列队尾指针 *blocked_head=NULL,//blocked 队列队首指 针 *blocked_tail=NULL; //blocked 队列队尾指 针 (3)设计子程序: start_state(); 读入假设的数据,设置系统初始状态,即初始化就绪队列和 阻塞队列 dispath(); 模拟调度,当就绪队列的队首进程运行一个时间片后,放到就绪队列末尾,每次都是队首进程进行调度,一个进程运行结束 就从就绪队列中删除,当到 t 个时间片后,唤醒阻塞队列队首进程。

信号与系统实验报告3 (2)

信号与系统实验 实验三:信号的卷积 (第三次实验)

【实验目的】 1. 理解卷积的物理意义; 2. 掌握运用计算机进行卷积运算的原理和方法; 3. 熟悉卷积运算函数conv的应用; 【实验内容】 给定如下因果线性时不变系统: y[n]+0.71y[n-1]-0.46y[n-2]-0.62y[n-3=0.9x[n]-0.45x[n-1]+0.35x[n-2]+0.002x[n-3] (1)不用impz函数,使用filter命令,求出以上系统的单位冲激响应h[n]的前20个样本; 代码如下: clear all; N=[0:19]; num=[0.9 -0.45 0.35 0.002]; den=[1 0.71 -0.46 -0.62]; h=filter(num,den,N); stem(N,h); xlabel('ê±??Dòo?'); ylabel('??·ù'); title('μ¥??3??¤?ìó|'); grid; 图像如下:

(2)得到h[n]后,给定x[n],计算卷积输出y[n];并用滤波器h[n]对输入x[n]滤波,求得y1[n]; 代码如下: clear all; N=[0:19]; num=[0.9 -0.45 0.35 0.002]; den=[1 0.71 -0.46 -0.62]; h=filter(num,den,N); x=[1 -2 3 -4 3 2 1]; y=conv(h,x); n=0:25; subplot(2,1,1); stem(n,y); xlabel('时间序号n');ylabel('振幅'); title('用卷积得到的输出');grid; x1=[x zeros(1,19)]; y1=filter(h,1,x1); subplot(2,1,2); stem(n,y1);

操作系统实验报告_实验四

实验四:进程管理(二) 实验内容: 1.编写一个程序,打印进程的如下信息:进程标识符,父进程标识符,真实用户ID,有效用户ID,真实用户组ID,有效用户组ID。并分析真实用户ID和有效用户ID的区别。 源代码及结果: 真实用户ID和有效用户ID的区别: 真实用户ID:这个ID就是我们登陆unix系统时的身份ID。 有效用户ID:定义了操作者的权限。有效用户ID是进程的属性,决定了该进程对文件的访问权限。 2.阅读如下程序,编译并运行,分析进程执行过程的时间消耗(总共消耗的时间和CPU 消耗的时间),并解释执行结果。再编写一个计算密集型的程序替代grep,比较两次时间的花销。注释程序主要语句。 /* process using time */ #include #include #include #include #include void time_print(char *,clock_t);

int main(void){ //取得进程运行相关的时间 clock_t start,end; struct tms t_start,t_end; start = times(&t_start); system(“grep the /usr/doc/*/* > /dev/null 2> /dev/null”); /*command >/dev/null的作用是将是command命令的标准输出丢弃,而标准错误输出还是在屏幕上。一般来讲标准输出和标准错误输出都是屏幕,因此错误信息还是会在屏幕上输出。>/dev/null 2> /dev/null 标准输出与标准错误输出都会被丢弃*/ // 0 1 2 标准输入标准输出错误输出 // > 将信息放到该文件null中 end=times(&t_end); time_print(“elapsed”,end-start); puts(“parent times”); time_print(“\tuser CP U”,t_end.tms_utime); time_print(“\tsys CPU”,t_end.tms_stime); puts(“child times”); time_print(“\tuser CPU”,t_end.tms_cutime); time_print(“\tsys CPU”,t_end.tms_cstime); exit(EXIT_SUCCESS); } void time_print(char *str, clock_t time) { long tps = sysconf(_SC_CLK_TCK); /*函数sysconf()的作用为将时钟滴答数转化为秒数,_SC_CLK_TCK 为定义每秒钟

中科大信号与系统 实验报告2

信号与系统实验报告 一、实验目的 1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法 2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法 3. 熟悉应用MATLAB实现求解系统响应的方法 二、实验原理 1.连续时间系统求解各种响应 impulse( ) 函数 函数impulse( )将绘制出由向量a和b所表示的连续系统在指定时间范围内的单位冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。 以默认方式绘出由向量a和b所定义的连续系统的冲激响应的时域波形。 绘出由向量a和b所定义的连续系统在0 ~ t0时间范围内冲激响应的时域波形。 绘出由向量a和b所定义的连续系统在t1 ~ t2时间范围内,并且以时间间隔p均匀取样的冲激响应的时域波形。 只求出由向量a和b所定义的连续系统在t1 ~ t2时间范围内,并且以时间间隔p均匀取样的冲激响应的数值解,但不绘出其相应波形。 step( ) 函数 函数step( )将绘制出由向量a和b所表示的连续系统的阶跃响应,在指定的时间范围内的波形图,并且求出数值解。和impulse( )函数一样,step( )也有如下四种调用格式: step( b,a) step(b,a,t0) step(b,a,t1:p:t2) y=step(b,a,t1:p:t2) 上述调用格式的功能和impulse( )函数完全相同,所不同只是所绘制(求解)的是系统的阶跃响应g(t),而不是冲激响应h(t)。 lsim( )函数 根据系统有无初始状态,lsim( )函数有如下两种调用格式: ①系统无初态时,调用lsim( )函数可求出系统的零状态响应,其格式如下:

信号与系统实验报告

信号与系统实验 指导老师: 实验时间: 2015年6月 学校:海南大学 学院:信息科学技术学院 专业班级: 姓名: 学号:

《信号与系统实验》 实验一基本信号在MATLAB中的表示和运算 一、实验目的 1.学会用MATLAB表示常用连续信号的方法; 2.学会用MATLAB进行信号基本运算的方法; 二、实验原理 1.连续信号的MATLAB表示 MATLAB提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。 表示连续时间信号有两种方法,一是数值法,二是符号法。数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。 例1-1指数信号 如f (t) = Ae at,调用格式为ft=A*exp (a*t) 程序: A=1;a=-0.4; t=0:0.01:10; ft=A*exp(a*t); plot(t,ft); grid on; 波形图:

例1-2 正弦信号 调用格式为ft=A*sin(w*t+phi) 程序: A=1;w=2*pi;phi=pi/6; t=0:0.01:8; ft=A*sin(w*t+phi); plot(t,ft); grid on; 波形图: 例1-3 抽样信号 定义为Sa(t) = sin c(t /π ) 程序: t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on; axis([-10,10,-0.5,1.2]); title('抽样信号') 波形图:

操作系统实验报告-实验四

操作系统实验报告-实验四

实验四:进程管理(二) 实验内容: 1.编写一个程序,打印进程的如下信息:进程标识符,父进程标识符,真实用户ID,有效用户ID,真实用户组ID,有效用户组ID。并分析真实用户ID和有效用户ID的区别。 源代码及结果: 真实用户ID和有效用户ID的区别: 真实用户ID:这个ID就是我们登陆unix 系统时的身份ID。 有效用户ID:定义了操作者的权限。有效用户ID是进程的属性,决定了该进程对文件的访问权限。 2.阅读如下程序,编译并运行,分析进程执行过程的时间消耗(总共消耗的时间和CPU

消耗的时间),并解释执行结果。再编写一个计算密集型的程序替代grep,比较两次时间的花销。注释程序主要语句。 /* process using time */ #include #include #include #include #include void time_print(char *,clock_t); int main(void){ //取得进程运行相关的时间 clock_t start,end; struct tms t_start,t_end; start = times(&t_start); system(“grep the /usr/doc/*/* > /dev/null 2> /dev/null”); /*command >/dev/null的作用是将是command命令的标准输出丢弃,而标准错误输出还是在屏幕上。一般来讲标准输出和标准

信号与系统实验报告(常用信号的分类与观察)

实验一:信号得时域分析 一、实验目得 1.观察常用信号得波形特点及产生方法 2.学会使用示波器对常用波形参数得测量 二、实验仪器 1.信号与系统试验箱一台(型号ZH5004) 2.40MHz双踪示波器一台 3.DDS信号源一台 三、实验原理 对于一个系统特性得研究,其中重要得一个方面就是研究它得输入输出关系,即在一特定得输入信号下,系统对应得输出响应信号.因而对信号得研究就是对系统研究得出发点,就是对系统特性观察得基本手段与方法.在本实验中,将对常用信号与特性进行分析、研究。 信号可以表示为一个或多个变量得函数,在这里仅对一维信号进行研究,自变量为时间。常用信号有:指数信号、正弦信号、指数衰减正弦信号、复指数信号、Sa(t)信号、钟形信号、脉冲信号等。 1、信号:指数信号可表示为f(t)=Ke at。对于不同得a取值,其波形表现为不同得形式,如下图所示: 图1―1 指数信号 2、信号:其表达式为f(t)=Ksin(ωt+θ),其信号得参数:振幅K、角频率ω、与初始相位θ。其波形如下图所示:

图1-2 正弦信号 3、指数衰减正弦信号:其表达式为其波形如下图: 图1-3指数衰减正弦信号 4、Sa(t)信号:其表达式为:。Sa(t)就是一个偶函数,t= ±π,±2π,…,±nπ时,函数值为零。该函数在很多应用场合具有独特得运用。其信号如下图所示: 图1-4 Sa(t)信号 5、钟形信号(高斯函数):其表达式为:其信号如下图所示:

图1-5 钟形信号 6、脉冲信号:其表达式为f(t)=u(t)-u(t—T),其中u(t)为单位阶跃函数。其信号如下图所示: f(t) ? ……??…… 0 t 图1-6脉冲信号 7、方波信号:信号为周期为T,前T/2期间信号为正电平信号,后T/2期间信号为负电平信号,其信号如下图所示 U(t) ………… ?0?t 图1-7方波信号 四、实验内容及主要步骤 下列实验中信号产生器得工作模式为11 1、指数信号观察 通过信号选择键1,设置A组输出为指数信号(此时信号输出指示灯为000000)。用示波器测量“信号A组”得输出信号。 输出波形为:

信号系统实验报告123(1)

实验一连续时间信号的时域基本运算 一、实验目的 (1)掌握连续时间信号时域运算的基本方法; (2)掌握相关函数的调用格式及作用; (3)掌握连续信号的基本运算。 二、实验原理 信号的基本运算包括信号的相加(减)和相乘(除).信号的时域变换包括信号的平移、翻转、倒相以及尺度变换。 (1)加减: f(t)=f1(t)±f2(t)(2)乘: f(t)=f1(t)×f2(t) (3)延时或平移:f(t)→(t-t0) t0>0时右移;t0<0时左移 (4)翻转: f(t)→f(-t) (5)尺度变换:f(t)→ f(at) |a|>1时尺度缩小;|a|<1时尺度放大;a<0时,尺度翻转。 (6)标量乘法:f(t)→af(t) (7)倒相: f(t)→-f(t) (8)微分: f(t)→df(t)/dt (9)积分: f(t)→∫t -∞f(t)d(t) 三、涉及的MATLAB函数及其运算 1、stepfun函数 功能:产生一个阶跃信号。 调用格式: Stepfun(t,t 0)其中,t是时间区间,在该区间内阶跃信号一定会产生;t 是信号 发生从0到1跳跃的时刻。 2、diff函数 调用格式: diff (f) : 求函数f对预设独立变数的一次微分值。 diff (f, ’t’) : 求函数f对独立变数t的一次微分值。 3、int函数 调用格式: Int(f): 函数f对预设独立变数的积分值。 Int(f,’t’): 函数f对独立变数t的积分值。 4、heaviside函数 Heaviside(t):产生没有移位的阶跃信号。 Heaviside(t-k):产生向右平移K单位的阶跃信号。 四、实验内容与方法1、验证性实验 (1)移位 实现连续信号的移位,即f(t-t0),或者f(t+t0);常数t0>0。 MATLAB程序 clear all t=0:0.0001:2 y=sin(2*pi*(t)); y1=sin(2*pi*(t-0.2)); plot(t,y,'-',t,y1,'--'); ylabel('f(t)');xlabel('t');title('信号的移位') 运行结果:

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