数字信号处理实验指导书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)()(,抽样点数150N,作出此正弦型信号的连续时间波形和离散时间波形。
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] 10Nk
幅频:22])(Im[])(Re[)(kkkX (5-1)
相频:]Re[]Im[arctan)](arg[kkkX (5-2)
离散频率间隔NfFs, k所对应的频率为: