昆工数字信号实验报告

昆工数字信号实验报告
昆工数字信号实验报告

昆明理工大学信自学院学生上机实验报告

(2014 —2015 学年第一学期)

课程名称:数字信号处理及DSP 开课实验室:234 2014 年 12 月22 日

一、实验目的

1、观察常用离散时间信号的图形,掌握离散时间信号的基本序列运算。

2、理解离散时间系统的时域特性,加深对离散系统的差分方程的理解。

3、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定

理的理解。

二、实验内容

1、在给出的区间上产生并画出下面序列:

(1)错误!未找到引用源。

(2)错误!未找到引用源。

2、设x(n)={1,-2,4,6,-5,8,10},产生并画出下列的样本:

(1)错误!未找到引用源。

(2)错误!未找到引用源。

3、给出一个简单数字微分器:错误!未找到引用源。,它计算输入序列的

后向一阶差分,对下面三角脉冲序列实现上述微分器并求出结果。

三、实验方法、步骤

1.实验内容1的程序及运行结果如下图所示:

% 题1.1

n1=[0:20];x21 = n1.*(stepseq(0,0,20)-stepseq(10,0,20)); % 列出x21

序列

x22 = 10*exp(-0.3*(n1-10)).*(stepseq(10,0,20)-stepseq(20,0,20));%

列出x22序列

x2 = x21+x22; % x2序列是x21和x22之和

title('1.11实验的序列图');

xlabel('n');ylabel('x(n)');

% 题1.2

x=[-10:9];

n2=[5,4,3,2,1];N=length(n2);

y=n2(mod(x,N)+1); % 确定位置向量各点对应的x值

subplot(2,1,2),stem(x,y) %得出的图形见图

xlabel('n'),ylabel('xtilde(n)');

set(gcf,'color','w') % 置图形背景色为白

title('1.12实验的序列图');

2.实验内容2的程序及运行结果如下图所示:

%题2.1

xn=[1,-2,4,6,-5,8,10];

n1=[-4:2];

[y1,ny1]=seqshift(xn,n1,-5);

[y2,ny2]=seqshift(xn,n1,-4);

[y3,ny3]=seqadd(5*y1,ny1,4*y2,ny2);

[y4,ny4]=seqadd(y3,ny3,3*xn,n1);

xlabel('n'),ylabel('x1(n)');

set(gcf,'color','w') % 置图形背景色为白

title('1.21实验的序列图');

%题2.2

n2=[-10:10];

x1=[zeros(1,6),xn,zeros(1,8)];

[y5,ny5]=seqshift(xn,n2,-2);

x2=[zeros(1,4),y5,zeros(1,10)];

x3=2*exp(0.5*n2).*(x1)+cos(0.1*pi*n2).*(x2);

subplot(2,1,2),stem(n2,x3)

xlabel('n'),ylabel('x2(n)');

set(gcf,'color','w') % 置图形背景色为白

title('1.22实验的序列图');

3.实验内容3的程序及运行结果如下图所示:

clear all; close all; clc;

n=-5:30;b=[1,-1];a=[1];

y1=n.*(stepseq(0,-5,30)-stepseq(10,-5,30));%计算

y1=n[u(n)-u(n-10)]

y2=(20-n).*[stepseq(10,-5,30)-stepseq(20,-5,30)];%计算y2=

(20-n)[u(n-10)-u(n-20)]

[y3,n2]=seqadd(y1,n,y2,n);%序列求和y3=y1+y2

subplot(2,1,1);stem(n2,y3);%画两行一列图,放在第一行一列

xlabel('n');ylabel('x_2(n)');%行列坐标标注

h=filter(b,a,y3);%计算y(n)=x(n)-x(n-1)

subplot(2,1,2);stem(n,h);%画两行一列图,放在第二行一列

xlabel('n');ylabel('h(n)');%行列坐标标注

set(gcf,'color','w');%设置白色背景色

四、实验结果分析及心得

1、序列连续模拟信号与离散序列的关系?

答:离散序列是对连续模拟信号的采样,当采样频率满足乃奎斯特条件,那么离散信号可以恢复连续信号的所有信息,反之则会有信息泄露。对模拟信号的离散处理是使得信号可以进入计算机系统处理的前提。

昆明理工大学信自学院学生上机实验报告

(2014 —2015 学年第一学期)

课程名称:数字信号处理及DSP 开课实验室: 234 2014 年 12 月 22 日

一、实验目的

1、验证乃奎斯特采样定理,加深对时域取样后信号频谱变化的认识。

2、理解线性卷积,掌握线性卷积的求解方法。

3、理解循环卷积,掌握循环卷积的求解方法并对照线性卷积比较二者异

同。

二、实验内容

1、考虑模拟信号错误!未找到引用源。,在错误!未找到引用源。,0.05

和0.1s间隔采样得到x(n)。

(1)对每个Ts画出x(n)。

(2)采用sinc内插(用错误!未找到引用源。t=0.001)从样本x(n)重建模拟信号错误!未找到引用源。,并从图中求出在ya(t)中的

频率(不管末端效果)。

2、求序列错误!未找到引用源。,错误!未找到引用源。的线性卷积,

并画出结果序列。

3、求序列错误!未找到引用源。(0错误!未找到引用源。n错误!未

找到引用源。)和错误!未找到引用源。的线性卷积和6点、10点以及

12点循环卷积,画出线图并总结出线性卷积和循环卷积的关系。

三、实验步骤

1、实验内容1(1)的程序运行结果如下图所示:

clear all; close all; clc;

t=0:0.001:1;xa=cos(20*pi*t);%

Ts=0.01;N1=round(1/Ts);n1=0:N1;x1=cos(20*pi*n1*Ts);% 对xa进行

100点采样

subplot(3,1,1);plot(t,xa,n1*Ts,x1,'o');%把采样后的x1和xa画在三行

一列的第一行

ylabel('x_1(n)');title('Sampling of x_a(t) using Ts=0.01');%标注坐标及

表头

Ts=0.05;N2=round(1/Ts);n2=0:N2;x2=cos(20*pi*n2*Ts);% 对xa进行

20点采样

subplot(3,1,2);plot(t,xa,n2*Ts,x2,'o');%把采样后的x1和xa画在三行

一列的第二行

ylabel('x_2(n)');title('Sampling of x_a(t) using Ts=0.05');%标注坐标及

表头

Ts=0.1;N3=round(1/Ts);n3=0:N3;x3=cos(20*pi*n3*Ts);% 对xa进行

10点采样

subplot(3,1,3);plot(t,xa,n3*Ts,x3,'o');%把采样后的x1和xa画在三行

一列的第三行

ylabel('x_3(n)');title('Sampling of x_a(t) using Ts=0.1');%标注坐标及

表头

set(gcf,'color','w');%设置背景色为白色

2、实验内容1(2)的程序运行结果如下图所示:

clear all; close all; clc;

t=0:0.001:1;xa=cos(20*pi*t);%计算xa=cos(20*pi*t),t变量取0-1步长

为0.001

Ts=0.01;N1=round(1/Ts);n1=0:N1;x1=cos(20*pi*n1*Ts);%对xa进行

间隔为0.01s的采样

Ts=0.01;Fs=1/Ts;%设置采样间隔为0.01s

xa1=x1*sinc(Fs*(ones(length(n1),1)*t-(n1*Ts)'*ones(1,length(t))));%

对x1用sinc进行内插

subplot(3,1,1);plot(t,xa1);axis([0,1,-1.1,1.1]);%绘制经内插后恢复的

图形

ylabel('x_a(t)');title('Reconstruction of x_a(t) when Ts=0.01');%行列及其表头标注

Ts=0.05;Fs=1/Ts;%设置采样间隔为0.05s

Ts=0.05;N2=round(1/Ts);n2=0:N2;x2=cos(20*pi*n2*Ts);%对xa进行间隔为0.05s的采样

xa2=x2*sinc(Fs*(ones(length(n2),1)*t-(n2*Ts)'*ones(1,length(t))));%对x2用sinc进行内插

subplot(3,1,2);plot(t,xa2);axis([0,1,-1.1,1.1]);%绘制经内插后恢复的图形

ylabel('x_a(t)');title('Reconstruction of x_a(t) when Ts=0.05');%行列及其表头标注

Ts=0.1;Fs=1/Ts;%设置采样间隔为0.1s

Ts=0.1;N3=round(1/Ts);n3=0:N3;x3=cos(20*pi*n3*Ts);%对xa进行间隔为0.1s的采样

xa3=x3*sinc(Fs*(ones(length(n3),1)*t-(n3*Ts)'*ones(1,length(t))));%对x3用sinc进行内插

subplot(3,1,3);plot(t,xa3);axis([0,1,-1.1,1.1]);%绘制经内插后恢复的图形

ylabel('x_a(t)');title('Reconstruction of x_a(t) when Ts=0.1');%行列及其表头标注

set(gcf,'color','w');%设置背景色为白色

3、实验内容2的程序运行结果如下图所示:

clear all; close all; clc;

nx=0:9;x1=0.8.^nx;%x1=0.8^n

ny=0:2;x2=[1 0 1];%计算x2=δ(n)+δ(n-2)

[g,ng]=convwthn(x1,nx,x2,ny);%x1与x2做线性卷积

subplot(2,2,1);%在第二行第一列绘图

stem(nx,x1,'.');grid;axis([-0.5 9.5 -0.2 1.2]); %stem-Plot discrete

sequence data

xlabel('n');ylabel('x1(n)');title('序列x1(n)'); %绘制表头

subplot(2,2,2); %在第二行第二列绘图

stem(ny,x2,'.');grid;axis([-0.5 3.5 -0.2 1.2]); %绘制yn序列

xlabel('n');ylabel('x2(n)');title('序列x2(n)'); %绘制表头

subplot(2,1,2); %在第二行第一列绘图

stem(ng,g,'.'); %绘制ng序列

grid;axis([-1 12 -0.5 2]);

xlabel('n');ylabel('g(n)');title('线性卷积序列g(n)'); %绘制表头

set(gcf,'color','w'); %设置白色背景

4、实验内容3的程序运行结果如下图所示:

clear all; close all; clc;

nx=0:4;x=[1 2 3 4 5];

ny=0:5;y=[-1 3 0 -2 -2 1];

[nt1,t1]=SeqCirConv(nx,x,ny,y,6);%对x和y进行6点的线性卷积[nt2,t2]=SeqCirConv(nx,x,ny,y,10);%对x和y进行10点的线性卷积[nt3,t3]=SeqCirConv(nx,x,ny,y,12);%对x和y进行12点的线性卷积

subplot(2,3,1);%第一行第一列绘制x(n)序列图形

stem(nx,x,'.');grid;axis([-1 5 -0.2 5.2]);%绘制图形

xlabel('n');ylabel('x(n)');title('序列x(n)');%绘制表头和行列注释subplot(2,3,2);%第一行第二列绘制y(n)序列图形

stem(ny,y,'.');grid;axis([-1 8 -2.2 3.2]);%绘制图形

xlabel('n');ylabel('y(n)');title('序列y(n)');%绘制表头和行列注释subplot(2,3,3);%第一行第三列绘制x(n)、y(n)六点循环卷积序列图形stem(nt1,t1,'.');grid;axis([-1 8 -15.2 10]);%绘制图形

xlabel('n');ylabel('t5(n)');title('6点循环卷积');%绘制表头和行列注释subplot(2,3,4);%第二行第一列绘制x(n)、y(n)10点循环卷积序列图形

stem(nt2,t2,'.');grid;axis([-1 10 -15.2 10]);%绘制图形

xlabel('n');ylabel('t9(n)');title('10点循环卷积');%绘制表头和行列注释subplot(2,3,5);%第二行第二列绘制x(n)、y(n)12点循环卷积序列图形

stem(nt3,t3,'.');grid;axis([-1 13 -15.2 10]);%绘制图形

xlabel('n');ylabel('t12(n)');title('12点循环卷积');%绘制表头和行列注释

subplot(2,3,6);%第二行第三列绘制x(n)、y(n)线性卷积序列图形[g,ng]=convwthn(x,nx,y,ny);%x(n)、y(n)做线性卷积

stem(ng,g,'.');grid;axis([-1 13 -15.2 10]);

xlabel('n');ylabel('g(n)');title('线性卷积序列g(n)');%绘制表头和行列注释

set(gcf,'color','w');%绘制背景图为白色

四、实验思考

1、在分析理想采样的试验中,当采样频率不同时,得到的采样序列有

何差异?它们在傅里叶变换域中表现出怎样的特点?

答:当采样频率低于奈奎斯特采样频率,通过内插函数将不能恢复原始

信号。只有大于等于奈奎斯特采样频率信号才可以被恢复出来。在傅里

叶变换频域中将有部分频率会泄露掉,从而不能很好的反应信号的频率

特性。

昆明理工大学信自学院学生上机实验报告

(2014 —2015 学年第一学期)

课程名称:数字信号处理及DSP 开课实验室: 234 2014 年 12 月 23 日

1、进一步加深DFT算法原理和基本性质的理解

2、学习FFT对连续信号和时域离散信号进行频谱分析的方法,了解

可能出现的分析误差及其原因,以便在实际中正确应用DFT。

二、实验内容

1、考虑长度为5的有限序列,设采样周期为0.5s。

x(0)=1,x(2)=5,x(3)=1,x(4)=1。要求用FFT来计算其频谱。

2、用FFT函数对错误!未找到引用源。进行频谱分析,其中

f1=20KHz,f2=21KHz.以采样频率Fs=80KHz对其进行采样,要求:

(1)写出x(n)=错误!未找到引用源。的表达式并求其DTFT:

(2)取信号长度为32点,并作出32、2048点DFT,画出幅频曲

线:

(3)取信号长度512点,并作出512、2048点DFT,画出幅频特

性曲线。

三、实验步骤

1、复习DFT的定义、性质和用DFT做频谱分析的有关内容。

2、复习FFT算法原理与编程思想,并对照DFT-FFT运算流程图和程

序框图,读懂FFT程序。

3、实验内容1的程序及运行结果:

clear all; close all; clc;

x=[1,3,5,3,1];nx=0:4;T=0.5; % 给定原始数据

N=length(x);D=2*pi/(N*T); %求出序列长度及频率分辨率

k=floor((-(N-1)/2):((N-1)/2)); % 求对称于零频率的FFT位置

向量

X=fftshift(fft(x,N)); % 求对称于零频率的FFT序列

subplot(2,1,1),plot(k*D,abs(X),'o:') % 画幅频特性图

title('幅频特性图');

subplot(2,1,2),plot(k*D,angle(X),'o:') % 画相频特性图

title('相频特性图');

set(gcf,'color','w');

4、实验内容2的程序运行结果如下图所示:

clear all;close all;clc;

Fs=80;%抽样频率KHz

SignalNum = 512;%信号点数512点

n=0:3000;

x = cos(2*20*pi*n/Fs)+2*cos(2*21*pi*n/Fs);%Fs=80KHz,对其

采样

x1=x(1:SignalNum);%采样512点

X1=fft(x1,2048);%对x1进行2048点的DFT变换

subplot(2,1,1),plot(0:SignalNum-1,x1);%绘制时域波形图

xlabel('n');ylabel('x(n)');title('时域波形');grid;%标注表头,添加网

subplot(2,1,2),plot(abs(X1));%绘制幅频特性图

xlabel('k');ylabel('|X(k)|');title('幅频特性');grid;%标注表头,添加网格

set(gcf,'color','w');%设置背景色为白色

(取信号长度为32点,2048点的DFT图)

(取信号长度为512点,2048点的DFT图)

四、实验思考

通过此次试验进一步加深了DFT算法原理和基本性质的理解,学会利用FFT对连续信号和时域离散信号进行频谱分析。

1、在做DFT时,补零只能提高图形视在分辨率。

2、做DFT时,信号点数不同对幅频特性影响不大。

昆明理工大学信自学院学生上机实验报告

(2014 —2015 学年第一学期)

课程名称:数字信号处理及DSP 开课实验室: 234 2014 年 12月 23 日

1、熟悉用冲激响应不变法和双线性变换法设计IIR数字滤波器的原理

和方法。

2、掌握数字Butterworth滤波器的设计和方法。

二、实验内容

用MATLAB设计Butterworth数字低通滤波器,设计指标如下:通带

为0Hz≤f≤400Hz,阻带为f≥600Hz,ap=2dB,as=40dB,采样频率为

4000Hz,分别用脉冲响应不变法和双线性变换法完成滤波器设计,并分

别画出幅频响应曲线和相频响应曲线。

三、实验步骤

1.复习有关Butterworth模拟滤波器设计,以及用脉冲响应不变法设计

IIR数字滤波器的内容,用脉冲响应不变法设计数字滤波器系统函数。

2.复习有关Butterworth模拟滤波器设计,以及用双线性变换法设计

IIR数字滤波器的内容,用双线性变换法设计数字滤波器系统函数。

3.实验程序及其运行结果。

%---------Ex4_1--------

%---------脉冲响应不变法--------------

wp=0.2*pi; ws=0.3*pi;

Fs=4000; T=1/Fs

Wp=wp/T; Ws=ws/T;

alpha_p=2; alpha_s=40;

[c,d]=aft_butt(Wp,Ws,alpha_p,alpha_s);

[b,a]=impinvar(c,d,Fs);

[H,W]=freqz(b,a);

%---------画出幅度响应曲线-------------

subplot(2,1,1);plot(W*Fs/2/pi,abs(H));

xlabel('频率/Hz');ylabel('幅值');grid;

%---------画出相位响应曲线-------------

xlabel('频率/Hz');ylabel('相位');grid;

%---------Ex4_2--------

%---------双线性变换法---------------- wp=0.2*pi; ws=0.3*pi;

Fs=4000; T=1/Fs

Wp=(2/T)*tan(wp/2);

Ws=(2/T)*tan(ws/2);

alpha_p=2; alpha_s=40;

[c,d]=aft_butt(Wp,Ws,alpha_p,alpha_s); [b,a]=bilinear(c,d,Fs);

[H,W]=freqz(b,a);

%---------画出幅度响应曲线------------- subplot(2,1,1);plot(W*Fs/2/pi,abs(H)); xlabel('频率/Hz');ylabel('幅值');grid;

%---------画出相位响应曲线-------------

xlabel('频率/Hz');ylabel('相位');grid;

四、思考题

1.脉冲响应不变法的特点是什么?为什么脉冲响应不变法会产生频率混叠的

问题?

答:脉冲响应不变法是将数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位脉冲响应,时域逼近良好,而且模拟频率和数字频率之间呈线性关系。

脉冲响应不变法的最大缺点是具有频率响应的混叠效应。任何一个实际的模拟器其频率都不可能是真正带限的,因此不可避免地出现频谱混叠。

2.写出高通IIR滤波器的设计思路。

答:IIR高通数字滤波器的设计主要采用原型转换设计法,即将所设计的各类数字滤波器转换为模拟低通数字滤波器进行设计,然后再利用相应的变换法则转换为所设计的数字滤波器。一般采用两种方法,即模拟-数字-数字变换法和模拟-模拟-数字变换法。

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

数字信号处理》 实验报告 年级: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定理时,就会 发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。避免混叠现象的 唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须

实验空间数据库管理及属性编辑实验报告

实验报告 一、实验名称 二、实验目的 三、实验准备 四、实验内容及步骤 五、实验后思考题 班级:资工(基)10901 姓名:魏文风 序号:28 实验二、空间数据库管理及属性编辑 一、实验目的 1.利用ArcCatalog管理地理空间数据库,理解Personal Geodatabse空间数据库模型的有关概念。 2.掌握在ArcMap中编辑属性数据的基本操作。 3.掌握根据GPS数据文件生成矢量图层的方法和过程。 4.理解图层属性表间的连接(Join)或关联(Link)关系。 二、实验准备 预备知识: ArcCatalog 用于组织和管理所有GIS 数据。它包含一组工具用于浏览和查找地理数据、记录和浏览元数据、快速显示数据集及为地理数据定义数据结构。 ArcCatalog 应用模块帮助你组织和管理你所有的GIS 信息,比如地图,数据集,模型,元数据,服务等。它包括了下面的工具: ●浏览和查找地理信息。 ●记录、查看和管理元数据。 ●创建、编辑图层和数据库 ●导入和导出geodatabase 结构和设计。 ●在局域网和广域网上搜索和查找的GIS 数据。

管理ArcGIS Server。 ArcGIS 具有表达要素、栅格等空间信息的高级地理数据模型,ArcGIS支持基于文件和DBMS(数据库管理系统)的两种数据模型。基于文件的数据模型包括Coverage、Shape文件、Grids、影像、不规则三角网(TIN)等GIS数据集。 Geodatabase 数据模型实现矢量数据和栅格数据的一体化存储,有两种格式,一种是基于Access文件的格式-称为Personal Geodatabase,另一种是基于Oracle或SQL Server等RDBMS关系数据库管理系统的数据模型。 GeoDatabase是geographic database 的简写,Geodatabase 是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase是ArcGIS软件中最主要的数据库模型。 Geodatabase 支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息。 在Geodatabase数据库模型中,可以将图形数据和属性数据同时存储在一个数据表中,每一个图层对应这样一个数据表。 Geodatabase可以表达复杂的地理要素(如,河流网络、电线杆等)。比如:水系可以同时表示线状和面状的水系。 基本概念:要素数据集、要素类 数据准备: 数据文件:National.mdb ,GPS.txt (GPS野外采集数据)。 软件准备: ArcGIS Desktop 9.x ---ArcCatalog 三、实验内容及步骤 第1步启动ArcCatalog打开一个地理数据库 当ArcCatalog打开后,点击, 按钮(连接到文件夹). 建立到包含练习数据的连接(比如 “E:\ARCGIS\EXEC2”), 在ArcCatalog窗口左边的目录树中, 点击上面创建的文件夹的连接图标旁的(+)号,双击个人空间数据库-National.mdb。打开它。. 在National.mdb中包含有2个要素数据集、1个关系类和1个属性表第2步预览地理数据库中的要素类 在ArcCatalog窗口右边的数据显示区内,点击“预览”选项页切换到“预览”视图界面。在目录树中,双击数据集要素集-“WorldContainer”,点击要素类-“Countries94”激活它。 在此窗口的下方,“预览”下拉列表中,选择“表格”。现在,你可以看到Countries94的属性表。查看它的属性字段信息。 花几分钟,以同样的方法查看一下National.mdb地理数据库中的其它数据。

windows进程管理实验报告

实验报告 课程名称:操作系统 实验项目:windows进程管理 姓名: 专业:计算机科学与技术 班级: 学号:

计算机科学与技术学院 计算机系 2019 年 4 月 23 日

实验项目名称: windows进程管理 一、实验目的 1. 学习windows系统提供的线程创建、线程撤销、线程同步等系统调用; 2. 利用C++实现线程创建、线程撤销、线程同步程序; 3. 完成思考、设计与练习。 二、实验用设备仪器及材料 1. Windows 7或10, VS2010及以上版本。 三、实验内容 1 线程创建与撤销 写一个windows控制台程序(需要MFC),创建子线程,显示Hello, This is a Thread. 然后撤销该线程。 相关系统调用: 线程创建: CreateThread() 线程撤销: ExitThread() 线程终止: ExitThread(0) 线程挂起: Sleep() 关闭句柄: CloseHandle() 参考代码: ; } 运行结果如图所示。 完成以下设计题目: 1. 向线程对应的函数传递参数,如字符串“hello world!”,在线程中显示。 2. 如何创建3个线程A, B, C,并建立先后序执行关系A→B→C。

实验内容2 线程同步 完成父线程和子线程的同步。父线程创建子线程后进入阻塞状态,子线程运行完毕后再唤醒。 相关系统调用: 等待对象 WaitForSingleObject(), WaitForMultipleObjects(); 信号量对象 CreateSemaphore(), OpenSemaphore(), ReleaseSemaphore(); HANDLE WINAPI CreateSemaphore( _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes _In_ LONG lInitialCount, _In_ LONG lMaximumCount, _In_opt_ LPCTSTR lpName ); 第一个参数:安全属性,如果为NULL则是默认安全属性 第二个参数:信号量的初始值,要>=0且<=第三个参数 第三个参数:信号量的最大值 第四个参数:信号量的名称 返回值:指向信号量的句柄,如果创建的信号量和已有的信号量重名,那么返回已经存在的信号量句柄参考代码: n"); rc=ReleaseSemaphore(hHandle1,1,NULL); err=GetLastError(); printf("Release Semaphore err=%d\n",err); if(rc==0) printf("Semaphore Release Fail.\n"); else printf("Semaphore Release Success. rc=%d\n",rc); } 编译运行,结果如图所示。

数据库实验报告

实验要求: (1)深入复习教材第三章SQL有关数据库定义和基本查询SQL语句,理解关系代数表达式如何使用基本的SQL查询语句实现。 (2)理解数据库所使用的各种字符集的区别与联系。 (3)请按照附件1生成TPCH数据库模式(注意:故意在附件1中SQL语句中引入了若干错误,需要仔细调试才能运行),要深入理解该数据库模式的含义。 (4)通过企业管理器添加数据,或者通过其他的数据自动产生工具自动添加数据,以便进行查询。如果是手动添加数据,请以你班同学当做顾客,国家和地区表的数据参照附件3表中的数据录入(全部或部分数据即可),请从网上搜集尽量真实的零件和供应商信息添加到相应的表中,最后根据购物常识添加订单及其明细信息。 (5)根据书上的例子,针对TPCH数据库模式设计各种基本查询语句,每种类型的基本查询至少要设计一个查询,描述清楚查询要求,运行你所设计的查询语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附2所列示例查询做实验。 (6)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。 实验步骤: 掌握SQL的DDL使用方法 (1)使用GBK字符集,创建名为TPCH的数据库。 (2)在TPCH数据库中创建名为SALES的模式。 Create schema sales authorization (3)在SALES模式下创建TPCH数据库模式,要求每个表要有主码、外键等基本完整性约束。 CREATE TABLE supplier ( suppkey INTEGER, name CHAR(25), address V ARCHAR(40), nationkey INTEGERR, phone CHAR(15), acctbal REAL, comment V ARCHAR(101)) ; CREATE TABLE part ( partkey INTEGER, name VARCHAR(55), mfgr CHAR(25), brand CHAR(10), type VARCHAR(25), size INTEGER, container CHAR(10),

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

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数据库原理实验报告(2)

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验二数据库的创建、管理、备份及还原实验 所在院(系):数学与信息技术学院 班级:11软工转本2 学号: 1130708 11130710 姓名:马琦乔凌杰

1.实验目的 (1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改 数据库的基本方法; (2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。 (3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方 法。 2.实验要求 (1)使用SQL Server Management Studio创建“教学管理”数据库。 (2)使用SQL Server Management Studio修改和删除“教学管理”数据库。 (3)使用Transact-SQL语句创建“教学管理”数据库。 (4)使用Transact-SQL语句修改和删除“教学管理”数据库。 (5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server Management Studio对数据库“教学管理”进行备份和还原。 (6)SQL Server 2005数据库文件的分离与附加。 (7)按要求完成实验报告 3.实验步骤、结果和总结实验步骤/结果 (1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。 新建数据库如下图所示: 进入sql server management studio 主界面,选择数据库右击新建数据库。 如何修改数据库 进入sql server management studio 主界面,选择数据库右击属性即可看到数据库信息,可更改数据库基本信息。

进程管理实验报告

实验2过程管理实验报告学生号姓名班级电气工程系过程、过程控制块等基本原理过程的含义:过程是程序运行过程中对数据集的处理,以及由独立单元对系统资源的分配和调度。在不同的数据集上运行程序,甚至在同一数据集上运行多个程序,是一个不同的过程。(2)程序状态:一般来说,一个程序必须有三种基本状态:就绪、执行和阻塞。然而,在许多系统中,过程的状态变化可以更好地描述,并且增加了两种状态:新状态和终端状态。1)就绪状态,当一个进程被分配了除处理器(CPU)以外的所有必要资源时,只要获得了处理器,进程就可以立即执行。此时,进程状态称为就绪状态。在系统中,多个进程可以同时处于就绪状态。通常,这些就绪进程被安排在一个或多个队列中,这些队列称为就绪队列。2)一旦处于就绪状态的进程得到处理器,它就可以运行了。进程的状态称为执行状态。在单处理器系统中,只有一个进程在执行。在多处理器系统中,可能有多个进程在执行中。3)阻塞状态由于某些事件(如请求输入和输出、额外空间等),执行进程被挂起。这称为阻塞状态,也称为等待状态。通常,处于阻塞状态的进程被调度为-?这个队列称为阻塞队列。4)新状态当一个新进程刚刚建立并且还没有放入就绪队列中时,它被称为新状态。5)终止状态是

什么时候-?进程已正常或异常终止,操作系统已将其从系统队列中删除,但尚未取消。这就是所谓的终结状态。(3)过程控制块是过程实体的重要组成部分,是操作系统中最重要的记录数据。控制块PCB记录操作系统描述过程和控制过程操作所需的所有信息。通过PCB,一个不能独立运行的程序可以成为一个可以独立运行的基本单元,并且可以同时执行一个进程。换句话说,在进程的整个生命周期中,操作系统通过进程PCB管理和控制并发进程。过程控制块是系统用于过程控制的数据结构。系统根据进程的PCB来检测进程是否存在。因此,进程控制块是进程存在的唯一标志。当系统创建一个进程时,它需要为它创建一个PCB;当进程结束时,系统回收其PCB,进程结束。过程控制块的内容过程控制块主要包括以下四个方面的信息。过程标识信息过程标识用于对过程进行标识,通常有外部标识和内部标识。外部标识符由流程的创建者命名。通常是一串字母和数字。当用户访问进程时使用。外部标识符很容易记住。内部标识符是为了方便系统而设置的。操作系统为每个进程分配一个唯一的整数作为内部标识符。通常是进程的序列号。描述性信息(process scheduling message)描述性信息是与流程调度相关的一些有关流程状态的信息,包括以下几个方面。流程状态:表

昆明理工大学-数据库原理-上机实验报告汇编

《数据库原理》上机实验报告 学号: 姓名: 班级: 昆明理工大学信息工程与自动化学院 2012年12月

一、实验目的与要求: ●熟练使用SQL定义子语言、操纵子语言命令语句 ●掌握关系模型上的完整性约束机制 ●掌握一定的数据库管理技术 ●能完成简单的数据库应用开发 二、实验内容 (一)数据定义子语言实验 实验1利用SQL语句创建Employee数据库 创建的代码为: CREATE DATABASE Employee 实验2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary 及部门表dept。 要求:按表1、表2、表3中的字段说明创建 表1 person表结构 字段名数据类型字段长度允许空否字段说明 P_no Char 6 Not Null 工号,主键 P_name Varchar 10 Not Null 姓名 Sex Char 2 Not Null 性别 Birthdate Datetime Null 出生日期 Prof Varchar 10 Null 职称 Deptno Char 4 Not Null 部门代码,外键(参照dept表) 建立的代码: create table person (P_no Char(6) PRIMARY KEY NOT NULL, P_name Varchar(10) Not Null, Sex Char(2) Not Null, Birthdate Datetime, Prof Varchar(10), Deptno Char(4) Not Null, FOREIGN KEY (Deptno) REFERENCES dept(Deptno) ); 表2 salary表结构 字段名数据类型字段长度允许空否字段说明 P_no Char 6 Not Null 工号,主键,外键(参照person表)

数字信号处理实验报告92885

目录 实验1 离散时间信号的频域分析-----------------------2 实验2 FFT算法与应用-------------------------------7 实验3 IIR数字滤波器的设计------------------------12 实验4 FIR数字滤波器的设计------------------------17

实验1 离散时间信号的频域分析 一.实验目的 信号的频域分析是信号处理中一种有效的工具。在离散信号的时域分析中,通常将信号表示成单位采样序列δ(n )的线性组合,而在频域中,将信号表示成复变量e n j ω-或 e n N j π2-的线性组合。通过这样的表示,可以将时域的离散序 列映射到频域以便于进一步的处理。 在本实验中,将学习利用MATLAB 计算离散时间信号的DTFT 和DFT,并加深对其相互关系的理解。 二、实验原理 (1)DTFT 和DFT 的定义及其相互关系。序列x(n)DTFT 定义为()jw X e = ()n x n e ∞ =∞ ∑ω jn -它是关于自变量ω的复函数,且是以2π为周期的连续函数。 ()jw X e 可以表示为()()()jw jw jw re im X e X e jX e =+,其中,()jw re X e 和()jw im X e 分别是 ()jw X e 实部和虚部;还可以表示为 ()jw X e =()|()|jw j w X e e θ,其中, |()|jw X e 和{} ()arg ()j w X e ωθ=分别是()jw X e 的幅度函数和相位函数;它们都是ω的实函数,也是以2π为周期的周期函数。 序列()x n 的N 点DFT 定义为2211 ()()()()N N j k j kn kn N N N N n X k X e x n e x n W π π ---==== ∑∑,()X k 是周期为N 的序列。()j X e ω与()X k 的关系:()X k 是对()j X e ω)在一个周期 中的谱的等间隔N 点采样,即 2k |()()|jw w N X k X e π = = ,而()j X e ω 可以通过对()X k 内插获得,即

空间数据库报告

武汉理工大学 《空间数据库》实验报告 班级:地理1502班姓名:xx 学号:xxx 第1章需求分析 1.1需求概述 图书管理系统主要是适用于学校的,通过oracle数据库进行逻辑处理,实现对图书、读者(学生)、出版社信息的增删改查,核心功能是实现借书和还书操作,亮点是增添了学生可以挂失和修改密码的功能。下面设计的图书管理信息系统,这些功能均已实现。 1.2功能需求 图1.1

第2章概念设计 2.1 实体与属性 根据需求建立五个实体(admin,book,publisher,reader,booktype),并赋予其各自的属性,如图2.1 图2.1 2.2 初步E-R图 将各个局部E-R图合并,消除属性冲突、命名冲突、结构冲突,然后再用分析的方法或者规范化理论来消除冗余,生成基本E-R图,流程如图2.2,合并后的初步E-R图如图2.3所示。 图2.2

图2.3 第3章逻辑设计 3.1 逻辑结构设计 逻辑结构设计的流程图如图3.1所示,主要包括三个部分:1、将基本E-R图根据七条转化原则转化为一般数据模型;2、根据所选用的DBMS(Oracle)的功能及限制,将数据模型转换为Oracle 规定的模型。 图3.1

3.2 优化后的模型 管理员(职工号,姓名,性别,年龄,密码) 借阅者(卡号,姓名,年龄,性别,密码,专业,学院,最大借阅量)书籍(索书号,书名,作者,出版社号,类型号,价格,是否被借阅)出版社(出版社号,出版社名,电话,地址) 类型(类型号,类型名,所在楼层) 借阅(借阅号,借阅时间,归还时间,是否过期,卡号,索书号) 第4章物理设计 4.1 设计数据表 管理员表(admin) 图书表(book) 图书类型表(bookType)

进程管理实验报告

进程的控制 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new

program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。 3 .实验步骤 (1)gedit创建进程1.c (2)使用gcc 1.c -o 1编译并./1运行程序1.c #include #include #include #include void mian(){ int id; if(fork()==0) {printf(“child id is %d\n”,getpid()); } else if(fork()==0) {printf(“child2 id %d\n”,getpid()); } else {id=wait(); printf(“parent id is %d\n”,getpid()); }

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

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

实验四 离散时间信号的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 =ω, 那么

电子科技大学-空间数据库上机实验报告

一、建立Geodatabase数据文件 1、新建一个Geodatabase: 如图1.1所示:在ArcCatalog环境下新建一个名为“Personal Geodatabase”的数据文件。 1.1 建好的Geodatabase 数据文件 2、新建要素集: 在Personal Geodatabase下,新建一个shanghai要素集,定义坐标系统为高斯投影(如图 1.2所示),单位为米,精度为1。

1.2 创建要素数据集 3、新建要素类: 在shanghai要素集中,新建一个parcel和pole要素类,parcle的Shape字段类型为polygon,新增字段parcel_name(文本型)、owner_name (文本型);pole的Shape 字段类型为点类型,新增三个字段:类型(短整型)、高度(短整型)和管理部门(文本型)。 1.3 创建parcel要素类 1.4 创建pole要素类 4、新建表:

如图1.5所示,在Personal Geodatabase下,新建一个owner表,新增字段name (文本型)、age (短整型) 1.5 创建owner表 二、创建子类 1、新建子类: 单击鼠标右键,打开pole要素类的属性表,选择子类选项卡,根据type字段创建pole类型子类,包括Wood、Steel和Cement。 图2.1 pole要素类新建子类 2、对子类赋值: 如图2.2所示,在ArcMap环境下通过列表框选择对要素子类进行赋值。

图2.2 pole要素类赋值 三、按子类定义pole要素类的域: 1、打开Geodatabase的属性表,定义三个域:Wood_pole高度域(短整型),20—30ft;Steel_pole的高度域(短整型),30—50ft;pole的管理部门域(文本),市管,区县管。 图3.1 按子类定义pole要素类的域

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

数字信号实验报告 (全)

数字信号处理实验报告 实验一:用 FFT 做谱分析 一、 实验目的 1、进一步加深 DFT 算法原理和基本性质的理解。 2、熟悉 FFT 算法原理和 FFT 子程序的应用。 3、学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用 FFT 。 二、实验原理 用FFT 对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ≤D 。可以根据此时选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号的频谱时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 三、实验内容和步骤 对以下典型信号进行谱分析: ?? ? ??≤≤-≤≤-=?? ? ??≤≤-≤≤+==其它n n n n n n x 其它n n n n n n x n R n x ,07 4, 330,4)(, 07 4, 830,1)() ()(3241 4() cos 4 x n n π = 5()cos(/4)cos(/8)x n n n ππ=+ 6() cos8cos16cos20x t t t t πππ=++

操作系统-进程管理实验报告

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include #include #include #include int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){ printf("b\n"); } 1/11

else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没有固定的顺序。 (2)进程的控制 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 将父进程的输出改为father process completed 2/11

数据库实验报告

数据库实验报告 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

课程名称:数据库原理与应用 实验内容:数据库安全性管理 作者所在系部:网络工程系 作者所在专业:网络工程 作者所在班级: B13521 作者姓名:李文阳 作者学号: 指导教师姓名:王振夺 北华航天工业学院教务处制 实验四数据库安全性管理 一、实验目的 1、理解数据库的安全性机制; 2、掌握SQL Server 2005的验证模式、登录管理、用户管理、角色 管理以及权限管理; 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)设置SQL Server的安全验证模式,并以两种方式尝试登录。

(三)登录账户管理 1、以管理员身份登录SQL Server,修改sa的密码。 2、使用SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。 3、使用SQL语句来修改上述登录账户的密码。 4、禁用上述登录账户连接SQL Server,并进行验证。 (四)数据库用户管理 1、使用SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句的权限。 (五)权限管理 1、使用SSMS将创建数据表和创建视图的权限授予User2。 2、使用SQL语句将对db_Library数据库中图书信息表的查询、插入、以及对书名和作者列的修改权限授予用户User2。 3、使用SSMS收回User2创建数据表和创建视图的权限。 4、使用SQL语句收回User2修改书名和作者列的权限。 (六)删除上述所建立的数据库用户以及登录账户。 三、实验步骤 主要实现的SQL语句。 使用T-SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。

数字信号实验报告

北京科技大学 《信号系统与信号处理综合实验》实验 报告 学号:__________ 姓名:_____________________ 专业:____________ 年月日

目录: 1实验一CCS使用实验 2实验二、SEED-DTK6446 Linux开发环境搭建3实验三、Linux平台实验 4二、音频采集回放实验 5三、视频采集回放实验 6OSD图像叠加实验 7图像边缘检测实验

课程实验目的 1.数字信号处理是一门理论与实践并重的课程,在学习理论知识的同时再配合经典DSP实验,可以加深对数字信号处理软、硬件的理解与掌握。 2.接触并了解SEED-DTK6446实验箱,学会通过Linux操作平台,利用SEED-DTK6446实验箱完成一些经典的实验历程,加深对数字信号处理的了解。 3. 学习并掌握SEED-DTK6446 CCS开发环境的搭建,建立好所有编译测试环境,为下面的实验做好准备工作。 实验一 CCS使用实验 一、实验目的 1.熟悉CCS3.3集成开发环境,掌握工程的生成方法; 2.熟悉SEED-DTK6446实验环境; 3. 学习用标准C 语言编制程序; 4.掌握CCS3.3集成开发环境的调试方法; 二、实验内容 1.DSP源文件的建立; 2.DSP程序工程文件的建立; 3. 学习使用CCS3.3集成开发工具的调试工具。 三、实验步骤 1.创建源文件:选择File →New →Source File 命令;打开配套光盘\03. Examples of program\01.SEEE-DTK6446 CCS Examples\examples\3.1.1 math。 2.创建工程文件:点击Project-->New,创建新工程;点击Project选择add files to project,添加源程序math.c。 3. 设置编译与连接选项:点击Project选择Build Opitions; 4. 工程编译与调试:点击Project →Build all,对工程进行编译;点击File →load program,在弹出的对话框中载入debug 文件夹下的.out可执行文件;点击debug →Go Main回到C程序的入口;运行程序并观察输出结果。 四.实验要求:

相关文档
最新文档