DSP实验指导书 - 图文

更新时间:2024-01-02 12:19:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字信号处理EXPIV教学实验系统

110

实验五 离散余弦变换(DCT)算法实验

一、实验目的

学习DCT算法的实现方法。 二、实验设备

计算机,CCS 2.0 版软件,实验箱,DSP仿真器。 三、实验原理

离散余弦变换与离散傅立叶变换紧密相关的,属于正弦类正交变换,由于其优良的去冗余性能及高效快速算法的可实现性,被广泛用于语音及图象的有损和无损压缩。在开始实验之前,应了解以下基本原理。

1. 语音或图象的压缩手段;

2. DCT变换在数据压缩中的作用与应用。 四、实验步骤

1. 阅读本实验所提供的样例子程序; 2. 运行样例程序,分析结果; 3. 样例程序实验操作说明 A.实验前准备

1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;系统上电; 2)“A/D转换单元”的拨码开关设置: JP3拨码开关: 码位 1 2 3 4 5 6 备注 ON: 将“模拟信号源”单元的信号输入到AD7822 OFF: OFF: OFF: OFF: OFF: SW2拨码开关: SW2 1 ON 2 ON 3 ON 4 备 注 码位 ON AD7822的采样时钟为250KHZ,且中断给CPU2的中断2 数字信号处理EXPIV教学实验系统

111

S23拨码开关: 码位 1、2 B.实验

启动CCS 2.0,Project/Open打开“Algorithm”目录中“exp05_cpu2”子目录下“Exp-DCT-AD.pjt”工程文件;双击“Exp-DCT-AD.pjt” 及“Source”可查看各源程序;加载“Exp-DCT-AD.out”;在主程序中,在flag = 0处设置断点;单击“Run”运备注 OFF,不混频 行程序,程序将运行至断点处停止;

数字信号处理EXPIV教学实验系统

112

用View / Graph / Time/Frequency打开两个图形观察窗口;采用双踪观察在启始地址分别为x和y,长度为128的单元中数值的变化,数值类型为32位浮点型,这两个数组分别存放的是经A/D转换的输入信号和对该信号进行DCT变换的结果;

再打开一个图形观察窗口,设置观察变量为z;变量z为输入信号的DCT变换及逆DCT变换的结果,长度128,32位浮点型,即输入信号的重构信号;

调整各图形观察窗口,观察正变换与逆变换结果;

单击“Animate”运行程序,调整各图形观察窗口,动态观察变换结果;改变输入信号的波形、频率、幅值,动态观察变换结果;

数字信号处理EXPIV教学实验系统

113

单击“Halt”暂停程序运行,关闭窗口,实验结束;

实验结果:在CCS2.0环境,同步观察输入信号及其DCT变换结果。 五、思考题

1. 压缩的实质是什么?

2. 实际压缩处理时,应该有那些流程? 六、实验报告要求

1. 简述DCT的基本原理。 2. 说明DCT系数是如何确定的? 1. 以8*8矩阵描述输入、输出。 七、DCT子程序 变换的核函数

Ck,n?2NN?1?n?0gkcos(2n?1)k?2Nk,n?0,1,?,N?1

式中系数:

?1gk???12k?0k?0程序说明:

数字信号处理EXPIV教学实验系统

114

void dct1c2 (double x[], double y[], int n):DCT正变换子程序; void idct1c2 (double y[], double z[], int n):逆DCT变换子程序; 两子程序中,各参数为:

数组x :输入信号经A/D转换后,转为浮点型后,生成x数组,长度128;

数组y :DCT正变换输出信号数组,也是逆DCT变换输入数组,浮点型,长度128; 数组z :逆DCT变换输出信号数组,即重构信号,浮点型,长度128。 八、程序流程图(DCT)

初始化调用DCT变换子程序计算DCT变换系数输出变换结果调用DCT逆变换子程序计算DCT逆变换系数输出重构信号

数字信号处理EXPIV教学实验系统

120

开始k=0k=0k

数字信号处理EXPIV教学实验系统

121

实验九 语音信号的FFT分析

一、实验目的

1. 加深对DFT算法原理和基本性质的理解; 2. 熟悉FFT算法原理和FFT子程序的应用;

3. 学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误

差及其原因,以便在实际中正确应用FFT。

二、实验设备

计算机,CCS 2.0 版软件,实验箱,DSP仿真器,音频线,音源。 三、基本原理

1、离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。

2、FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N步,极大的提高了运算的速度。 3、旋转因子的变化规律。 4. 蝶形运算规律。 5. 基2FFT算法。 四、实验步骤

1、复习DFT的定义、性质和用DFT作谱分析的有关内容;

2、复习FFT算法原理与编程思想,并对照DIT-FFT运算流程图和程序框图,了解本实验提供的FFT子程序;

3、阅读本实验所提供的样例子程序;

4、运行CCS软件,对样例程序进行跟踪,分析结果;记录必要的参数。 5、填写实验报告。

6. 提供样例程序实验操作说明 A.实验前准备:

1利用自备的音频信号源,或把计算机当成音源,从实验箱的“语音单元”的音频接口“麦克输入”输入音频信号,进行AD采集。

2开关K9拨到左边,即仿真器选择连接左边的CPU:CPU1; 3拨码开关设置说明

“语音接口”模块小板的拨码开关设置:

数字信号处理EXPIV教学实验系统

122

SW1拨码开关:

状态 1 2 3 4 SW2拨码开关: 状态 1 2 3 4 备 注 ON OFF ON ON 备 注 ON ON ON 空脚 用音频对录线,连接实验箱语音单元的麦克输入与外部音频源;

拨码开关S6: 1、2 OFF

B.实验

启动CCS 2.0,用Project/Open打开“Algorithm”目录中“exp09_cpu1”子目录下的“audiofft.pjt”工程文件;双击“audiofft.pjt”及“Source”可查看源程序;加载“audiofft.out”;在主程序中,k++处设置断点;单击“Run”运行程序,程序将运行至断点处停止;

数字信号处理EXPIV教学实验系统

123

用View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为px和pz,长度为128的单元中数值的变化,数值类型为16位有符号整型变量,这两段存储单元中分别存放的是经A/D转换后的语音信号和对该信号进行FFT变换的结果;

数字信号处理EXPIV教学实验系统

124

单击“Animate”运行程序,或按F10运行;调整观察窗口并观察输入信号波形及其FFT变换结果;单击“Halt”暂停程序运行,关闭窗口,本实验结束。 实验结果:在CCS2.0环境,同步观察输入语音信号波形及其FFT变换结果。 二. 思考题

1. 对于不同的N,幅频特性会相同吗?为什么? 2. FFT进行谱分析,可以应用的什么方面? 三. 实验报告要求

1. 简述实验原理及目的;

2. 结合实验中所给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差

产生的原因以及用FFT作谱分析时有关参数的选择方法。 3. 总结实验所得主要结论。 四. 程序参数说明

void kfft(pr,pi,n,k,fr,fi,l,il):基2快速傅立叶变换子程序,n为变换点数,应满足2的整数 次幂,k为幂次(正整数);

数组x :输入信号数组,A/D转换数据存放于地址为px数组中,转为浮 点型后,生成x数组,长度128;

数组mo:FFT变换数组,长度128,浮点型,整型后,写入pz数组中。

数字信号处理EXPIV教学实验系统

125

五. 子程序流程图:

初始化输入数组排序计算第一层中间值计算层数计算对应层步长计算计算各层中间结果计算层数=0?Y计算结果输出

N

数字信号处理EXPIV教学实验系统

126

实验十 DTMF(双音多频)信号的产生和检测

一、实验目的

1. 了解DTMF信号的基本原理和用途; 2. 学习DTMF信号产生和检测算法。 二、实验设备

计算机,CCS 2.0 版软件,DSP仿真器,实验箱。

三、实验原理 1.概述

DTMF(Dual-Tone Multifrequency)通信技术中的一种信号传输方法,这里的tone代表一个固定频率的声音片断,而dual-tone则是由两个不同的tone产生的复频信号。数字式电话的12个键分别 代表了12种不同的复频组合,借助于对频率组合的侦测,计算机可分辨出所按的是哪一个键,从而达到与电话另一端的使用者互动控制的目的。通过这种技术可以使计算机将控制命令从复杂的声音讯号中判别出来,从而使我们能够通过电话按键控制计算机的运作。DTMF信号发生器将按键或数字信号转化成双音信号,DTMF信号检测器检测双音信号中的信息。下图是一般双音多频电话的双音频率情况:

图1 双音频电话键盘

2.DTMF信号的产生 正弦信号算法和频率控制

设有一系统:其传输函数H(z)没有零点,只有一对处在单位圆上的共扼极点,则单位冲击响应为恒幅度振荡,即产生了正弦信号。

数字信号处理EXPIV教学实验系统

127

H(z)?b01?a1z?1?a2z?2

式中:b0?Asin?0,a1??2cos?0,a2?1;

经离散变换后得:

y(n)?2cos?0?y(n?1)?y(n?2)

式中:y(?1)?0,y(?2)??Asin?0,?0?2?f0fs; A为正弦波幅值,fs为采样频率,f0为正弦波频率。

图2 正弦波振荡器原理图

对于DTMF所要产生的频率和采样频率为: ROW频率: 697、770、852、941Hz COLUMN频率: 1209、1336、1477、1633Hz 采样频率:fs = 8kHz DTMF信号时序控制 根据AT&T技术规范:

(1)数字号码最大传输速度为每秒10个,即一个号码占100ms时间片。 (2)在100ms时间片内双音多频信号持续不少于45ms且不多于55ms的时间。 (3)一个数字按键有两个作业:Tone Task和Quiet Task。 工作流程

键中断将启动一个作业(Start Task)

执行Quiet Task:

o 插入双音信号间的间隔 o 置Tone Task的计数大小 o Unpack New Digit

执行Tone Task:

o 按规定时间片输出双音信号

数字信号处理EXPIV教学实验系统

128

o 置Quiet Task的计数大

3.DTMF信号的检测

双音频率信息获取算法:Goertzel算法

Goertzel算法用来从输入信号中提取出所需要信号,运算速度比DFT算法快。 对N点采样计算表达式为:

式中:

DTMF信号的判别方法:

? ? ? ?

信号强度大于THR-SIG

双音信号(行、列)功率差:THR-TWIREV~THR-TWISTD 比邻近双音信号强度大THR-ROWREL,THR-COLREL 二次谐波强度小于THR-ROW2nd,THR-COL2nd

运算量与存储需求

表1 产生DTM信号所需的运算速度和内存

表2 检测DTM信号所需的运算速度和内存

数字信号处理EXPIV教学实验系统

129

四、实验步骤

1.熟悉DTMF的基本原理和规范; 2.阅读实验提供的程序;

3.运行样例程序,观察DTMF信号的产生和检测过程; 4.写实验报告。

5.样例程序实验操作说明 A.实验前准备

1)开关K9拨到左边,即仿真器选择连接左边的CPU:CPU1;

2)正确完成计算机、DSP仿真器和实验箱的连接后,系统上电; B.实验

启动CCS 2.0,用Project/Open打开“Exp10_cpu1”目录下的“DTMF.pjt”工程文件;双击工程文件及“Source”可查看各源程序;并加载“DTMF.out”;在程序最后“i = 0”处,设置断点;单击“Run”运行程序,至断点处停止;

分别用View / Graph / Time/Frequency打开三个图形观察窗口,以观察产生的行频、列频、双音频信号以及X(k)信号;设置第一个图形观察窗口,观察起始地址分别为xr和xc ,长度为102、32位浮点型的两组数据,分别为行频和列频的产生信号;

2

数字信号处理EXPIV教学实验系统

130

设置第二个图形观察窗口,观察起始地址为x ,长度102、32位浮点型的一组数据,为双音频产生信号;

设置第三个图形观察窗口,观察起始地址为z ,长度为8、32位浮点型的一组数据,为X(k)的值;

2

数字信号处理EXPIV教学实验系统

131

打开程序变量观察窗口,观察以下变量的值;

“inkey”为输入键值,整型,范围0~15;“outkey”为运算后输出键值,字符型,与实验介绍的键盘各键值对应,“outkeycol”为输出键值的行位置, “outkeyrow”为列位置。范围均为1~4;

单击“Animate”,观察各窗口图形、变量变化;

在程序中,可以修改输入键值数组in的值,该数组长度为16,“Rebuild All”后、“加载”及“运行”,可观察不同的运行结果;

关闭工程文件,关闭各窗口,实验完毕。 五、实验说明

数字信号处理EXPIV教学实验系统

132

1、程序分两部分,前半部分为DTMF 产生,后半部分为DTMF 检测。

2、DTMF 产生中用数组in设定键值,数组长度为16,范围0~15,可人工改写; 3、数组xr为产生的行频信号,长度为102,32位浮点型; 数组xc为产生的列频信号,长度为102,32位浮点型; 数组x为产生的双音频信号,长度102点,32位浮点型;

4、数组z为DTMF检测中能量模板X(k),以完成按键的行位置及列位置检测; 6、变量outkeycol 及变量outkeyrow分别为按键行位置及列位置的检测结果,均为整 型变量;变量outkey为最终键值检测结果,键值与本实验中介绍的键盘键值对 应,为字符型变量。

子程序流程图

DTMF信号产生子程序流程图:

2

DTMF信号检测子程序流程图:

数字信号处理EXPIV教学实验系统

133

本文来源:https://www.bwwdw.com/article/5m5x.html

Top