数字信号处理实验指导书49753

  • 格式:doc
  • 大小:526.00 KB
  • 文档页数:18

AAAAAA

DSP处理器原理及应用

实验指导书

精品文档 你我共享

AAAAAA

实验一 基本信号的作图

实验目

掌握连续信号、离散信号的作图,熟悉C语言常用图形函数与数学函数。

原理与说明

利用计算机绘图,可以直观地表示输入输出信号。C语言系统提供了一个功能较强的图形库,所有图形处理函数原型都在graphics.h中。

一、图形系统控制

在使用C语言图形系统前,必须先用函数initgraph( )对图形系统进行初始化。图形处理结束后,需调用closegraph( )关闭图形系统。

下面在配有VGA显卡计算机系统中,将屏幕设为高分辨率模式。

#include “graphics.h”

void main( )

{

int driver=VGA,mode=VGAHI;

initgraph(&driver,&mode,” ”);

/*

初始后,屏幕分辨率为640×480。注意:屏幕最左上角坐标为(0,0),最右下角坐标为(639,479)。

此处可添加图形处理语句

*/

getch(); /*注意:在关闭前加gech()语句,等待键盘输入后才执行关闭,销毁图形。*/

closegraph( );

}

二、基本图形的绘制 精品文档 你我共享

AAAAAA 1.基本的图形函数

(1) putpixel(int x, int y, int color ):用指定的颜色color在指定的屏幕位置(x,y)上画一个亮点。

(2) line(int x1,int y1,int x2): 从(x1,y1)到(x2,y2)画一条直线。

(3) lineto(int x,int y):从光标的当前位置(x0,y0)到(x,y)画一条直线。

(4) linerel(int dx,int dy):从光标的当前位置(x0,y0)到(x0+dx,y0+dy)画一条直线。

(5) moveto(x,y):把光标移到(x,y)处。

2.颜色处理

使用VGA卡,有16种颜色可供选择,见下表所示。

数值 符号常量 数值 符号常量

0 BLACK 8 DARKGRAY

1 BLUE 9 LIGHTBLUE

2 GREEN 10 LIGHTGREEN

3 CYAN 11 LIGHTCYAN

4 RED 12 LIGHTRED

5 MAGENTA 13 LIGHTMAGENTA

6 BROWN 14 YELLOW

7 LIGHTGRAY 15 WHITE

以下是一些颜色设置函数。

setcolor( int color ) :设置屏幕的前景颜色;

setbkcolor(int color):设置当前背景颜色;

三、有关数学计算的C函数 (函数的原型均在math.h)

double acos (double x); )arccos(x 函数

double asin (double x); )arcsin(x函数

double atan (double x); )arctan(x函数

double cos (double x); )cos(x函数

double exp (double x); xe函数 精品文档 你我共享

AAAAAA double fabs (double x); x函数

double log (double x); xln函数

double log10 (double x); xlog函数

double sin (double x); )sin(x函数

double sqrt (double x); x函数

double tan (double x); )tan(x函数

实验过程

一、在Visual C++ 6.0开发环境下,加入lab11.cpp,编译并运行分析:

1. 分析C语言图形函数initgraph()、moveto()、lineto()、line()、setcolor()、closegraph()以及getch()的作用;

2.修改此程序,在屏幕上作出一个正方形。

3.修改此程序,在屏幕上作出如下的连续时间信号波形;

4.修改此程序,作出离散时间信号)()(16nRnx的序列图,如下所示:

二、已知模拟信号)21002cos(2)(ttxa,抽样频率Hzfs10000,抽样间隔sfT/1,则抽样信号nTtatxnx)()(,抽样点数150N,作出此正弦型信号的连续时间波形和离散时间波形。

1.在Visual C++ 6.0开发环境中,移他其它cpp,加入lab12.cpp;

2.编译并运行lab12.cpp,分析如何实现上述要求;

3.移除lab12.cpp,加入lap13.cpp,编译并运行,分析显示的结果与lab12.c有何区别

5.分别修改lab12.cpp和lab13.cpp,将连续时间信号)(txa改为如下:

)6002cos()]1002cos(1[)(tttxa 精品文档 你我共享

AAAAAA 观察此信号的连续时间波形与离散时间波形。

三、对一个麦克风输出的模拟电信号进行模数转换,采集到到如下数据:

20,21,23,24,24,25,27,26,28,12,29,30,28,29,30,31,32,31,32,80,32,31,29,28,27,27,26,25,8,24,23,22,21,20,0,19,

18,18,19,19,20,20,21,22,22,21,40,22,23

作出此音频信号的连续变化曲线。(提示:用一个数组存储这些采样数据,然后作出曲线)

实验二 信号的分解与叠加

实验目的

了解模拟信号的调制及数字信号的调制的时域波形,了解信号被噪声干扰的波形,掌握信号分解与叠加的概念。

原理与说明

余弦信号和正弦信号相位差90度,在本实验中,把正弦信号和余弦信号统称为正弦型信号。

实验过程

一、在Visual C++ 6.0开发环境下,打开lab21.cpp,编译并运行分析:

1.作出)6002cos()]1002cos(1[)(tttxa的波形

2.作出)7002cos(5.0)5002cos(5.0)6002cos()(ttttya

3.比较)(txa与)(tya是否相同;如果相同,请用数学方法推出。

4.根据比较,可以得出)(txa主要由哪些单一频率成分组成,这些频率成分的幅值是多少,初始相位是多少?

5. 将)(txa改为:

)10002sin()]1002cos(1[)(tttxa

分析此时)(txa主要哪些由单一频率成分组成,这些频率成分的幅值是多少,初始相位是多少,并作图验证你所得到的结论。

二、打开lab22.cpp,编译并运行分析: 精品文档 你我共享

AAAAAA 1.)(txa是一个频率为100Hz的正弦型信号:)1002cos()(ttxa,峰-峰值VtxVapp2)(。

2.噪声)(tnoise是随机信号,这里使用C语言中的rand()函数产生,此函数原型在stdlib.h中定义。

int rand( void );

此函数返回的是一个界于0~32767之间的伪随机数,包括0和32767。 则rand()/32767.0的值是介于0~1之间。

在本程序中,)(tnoise的峰-峰值VtnoiseVpp0.2)(,即:

0.32767/()2.0)(randtnoise

3.最终发送的信号)()()(tnoisetxtsa

4.运行分析,观察一个信号被噪声干扰前后的波形有啥不同。

5.修改源程序,改变信噪比)()(tnoiseVtxVppapp分别为100,10,5,2,1,0.5时,观察一个信号被噪声干扰的严重程度。

6.将)(txa依次改成100Hz的方波、三角形波,观察这些波形受噪声干扰前后的有啥不同。

7.实际发送的信号都会受到噪声干扰的,发送时应尽可能有高的信噪比,即应对信号进行放大后再发送,接送端接收时应首先消除噪声。至于如何实现参见相关课程。

三、打开Lab23.cpp,进行分析

1.用rand()函数产生0 - 98之间的随机整数

2.产生40000个这样的随机整数,用柱状图统计出现相同整数的个数。

3.分析此随机数是不是处于正态分布?如若不是则属于什么分布?

4.重复运行多次,看每次运行的统计波形是否相同;如果每次相同,此信号并不是真正的随机信号。

四、打开lab24.cpp,编译并运行分析:

1.)(txa是一个频率为10kHz(周期为0.01s)的方波,载波信号)(twave 是一个频率为1kHz的正弦型波,观察调幅后的信号)()()(twavetxtsa波形。

2.计算机只能识别0或1,但在数据传送时,)(txa还是)(ts更容易在网络线中传输?

3.修改源程序,将)(txa改成频率为20kHz的方波,观察此时)(txa和)(ts的波形有何变化,此时将)(ts传给对方,对方是不是易识别出来。为好能更高速传输且对方易识别出来,应如何改进?

五、打开lab25.cpp,编译并运行分析: 精品文档 你我共享

AAAAAA 1.)(txa是一个频率为10kHz(周期为0.01s)的方波,)()(txtnxaa(即)(txa的取反信号)。载波信号)(1twave是一个频率为1kHz的正弦型波,)(2twave是一个频率为2kHz的正弦型波,观察调频后的信号:

)(2)()(1)()(twavetxtwavetxtsaa。

2.对比lab24,你认为哪种)(ts更适合在Internet的网络线中传输。

实验三 FFT的实现及应用

预习

阅读《数字信号处理教程》教材有关序列离散傅里叶变换和快速傅里叶变换的知识点。

一、实验目的

利用离散傅里叶变换分析信号的频谱。

二、原理与说明

利用有限长序列的离散傅里变换,)(nx为实数序列(虚部为0):

10102)2sin()2cos()()()]([)(NnNnknNjknNjknNnxenxnxDFTkX

=Re[k] + jIm[k] 10Nk

幅频:22])(Im[])(Re[)(kkkX (5-1)

相频:]Re[]Im[arctan)](arg[kkkX (5-2)

离散频率间隔NfFs, k所对应的频率为: