数字信号处理课程设计.doc

上传人:创****公 文档编号:757563 上传时间:2018-10-31 格式:DOC 页数:10 大小:147.50KB
下载 相关 举报
数字信号处理课程设计.doc_第1页
第1页 / 共10页
数字信号处理课程设计.doc_第2页
第2页 / 共10页
数字信号处理课程设计.doc_第3页
第3页 / 共10页
数字信号处理课程设计.doc_第4页
第4页 / 共10页
数字信号处理课程设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、数字信号处理课程设计指导书常波 编淮阴工学院计算机工程学院通信系2009.101一、课程设计目的数字信号处理课程是一门理论和技术发展十分迅速、应用非常广泛的前沿性学科, 它的理论性和实践性都很强,学生在学习这门课程时, 普遍感到数字信号处理的概念抽象, 对其中的分析方法与基本理论不能很好地理解与掌握。因此, 如何帮助学生理解与掌握课程中的基本概念、基本原理、基本分析方法以及综合应用所学知识解决实际问题的能力, 是本课程教学中所要解决的关键问题。为了巩固所学的数字信号处理理论知识, 使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解, 安排了该课程的课程设计。 通过课程设计,应能

2、加强学生如下能力的培养:1、 独立工作能力和创造力;2、 综合运用专业及基础知识,解决实际工程技术问题的能力;3、 查阅图书资料、产品手册和各种工具书的能力;4、 编写技术报告和编制技术资料的能力。二、一般设计要求1、 独立完成设计任务。2、 按照设计任务写出设计工作小结。对设计过程所进行的有关步骤作出说明,并对完成的设计作出评价,总结自己整个设计工作中的经验教训,收获和今后研究方向。3、 编写课程设计说明书,说明书必须按统一格式打印,装订成册,字数一般不少于三千字。三、设计课题题目一 基于MATLAB 的语音处理系统设计(一)内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后

3、语音信号的时域波形和频谱图;给定滤波器的性能指标, 采用窗函数法和双线性变换设计滤波器, 并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱, 并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后, 设计一个信号处理系统界面。(二)步骤1语音信号的采集利用Windows 下的录音机, 录制一段自己的话音, 时间在 1 s 内。然后在Matlab 软件平台下, 利用函数wavread 对语音信号进行采样, 记住采样频率和采样点数。2语音信号的频谱分析利用函数 fft 对信号进行快速傅里叶变换, 得到信号的频谱特性, 要求首先画出语音信号的

4、时域波形;然后对语音信号进行频谱分析。23设计数字滤波器和画出其频率响应给出各滤波器的性能指标:(1) 低通滤波器性能指标 f b= 1000Hz, fc=1200 Hz, As=100dB, Ap= 1 dB。(2) 高通滤波器性能指标 f c= 4800 Hz, fb=5 000 Hz As= 100 dB, Ap= 1 dB。(3) 带通滤波器性能指标 fb1=1200 Hz, fb2=3 000 Hz, fc1= 1 000 Hz, fc2= 3 200 Hz, As=100 dB,A p= 1dB。要求用窗函数法和双线性变换法设计上面要求的3种滤波器。在Matlab中,可以利用函数f

5、ir1设计FIR 滤波器,可以利用函数butte , cheby1和ellip设计IIR滤波器;利用Matlab 中的函数freqz画出各滤波器的频率响应。4用滤波器对信号进行滤波要求用自己设计的各滤波器分别对采集的信号进行滤波, 在M at lab 中, FIR 滤波器利用函数fftfilt 对信号进行滤波。5比较滤波前后语音信号的波形及频谱要求在一个窗口同时画出滤波前后的波形及频谱。6回放语音信号在Matlab 中, 函数sound 可以对声音进行回放。其调用格式: sound (x, fs, bit s) ; 可以感觉滤波前后的声音有变化。7设计系统界面为了使编制的程序操作方便, 要求有

6、能力的学生, 设计处理系统的用户界面。在所设计的系统界面上可以选择滤波器的类型, 输入滤波器的参数, 显示滤波器的频率响应, 选择信号等。(三)说明书要求1研究语音信号的特点;2探讨语音分析与识别、处理的基本理论基础、关键技术;3写出各步骤的 MATLAB 的程序代码;4分析采集的语音信号的时域波形与频谱;分析滤波前后语音信号的波形与频谱;5滤波器的设计可采用图形化设计工具 FDATool 和图形化信号处理设计工具 SPTool;题目二 基于MATLAB 有噪声语音信号的处理(一)内容选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析;利用 MATLAB 中的随机函

7、数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计 F IR 和 IIR 数字滤波器, 并对被噪声污染的语音信号进行滤波, 分析滤波后信号的时域和频域特征,回放语音信号。最后,设计一个信号处理系统界面。(二)步骤与要求31语音信号的采集利用Windows 下的录音机, 录制一段自己的话音, 时间在 1 s 内。然后在Matlab 软件平台下, 利用函数wavread 对语音信号进行采样, 记住采样频率和采样点数。2语音信号的频谱分析在 Matlab 中,可以利用函数 fft 对信号进行快速傅里叶变换, 得到信号的频谱特性, 要求学生首先画出语音信号的时域波形; 然后对语音

8、信号进行频谱分析。3利用 MATLAB 中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。4设计数字滤波器和画出其频率响应给出滤波器的性能指标。确定滤波器技术指标,分别设计FIR数字滤波器和IIR 数字滤波器。在Matlab中,可以利用函数fir1设计FIR滤波器,可以利用函数 butte, cheby1和 ellip设计IIR滤波器;利用Matlab 中的函数freqz画出各滤波器的频率响应。5用滤波器对信号进行滤波要求用自己设计的各滤波器分别对加噪声后的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt 对信号进行滤波,IIR 滤波器利用函数fi

9、lter对信号进行滤波。5比较滤波前后语音信号的波形及频谱要求在一个窗口同时画出滤波前后的波形及频谱。6回放语音信号在Matlab 中,函数sound 可以对声音进行回放。其调用格式: sound (x,fs, bits) ; 可以感觉滤波前后的声音有变化。7设计系统界面为了使编制的程序操作方便, 要求有能力的学生设计处理系统的用户界面。在所设计的系统界面上可以选择滤波器的类型, 输入滤波器的参数, 显示滤波器的频率响应,选择信号等。(三)说明书要求1研究语音信号的特点;2探讨语音分析与识别、处理的基本理论基础、关键技术;3写出各步骤的 MATLAB 的程序代码;4分析采集的语音信号的时域波形

10、与频谱;分析滤波前后语音信号的波形与频谱;5滤波器的设计可采用图形化设计工具 FDATool 和图形化信号处理设计工具 SPTool;题目三 基于MATLAB 的语音信号的特技处理(一)内容选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,并对其进行频谱分析; 然后在时域用数字信号处理方法将信号加入延时和混响, 再分析其频谱,并与原始信号频谱进行4比较;最后设计一个信号处理系统界面。(二)步骤1利用 Windows 下的录音机或其他软件,录制一段自己的语音信号,时间控制在 1s 左右,并对录制的信号进行采样;2语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图;3将信号加入延

11、时和混响,再分析其频谱,并与原始信号频谱进行比较;4设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应;5用自己设计的滤波器对采集的语音信号进行滤波;6分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;7回放语音信号。(三)说明书要求1研究语音信号的特点;2探讨语音分析与识别、处理的基本理论基础、关键技术;3写出各步骤的 MATLAB 的程序代码;4分析采集的语音信号的时域波形与频谱;分析滤波前后语音信号的波形与频谱;5滤波器的设计可采用图形化设计工具 FDATool 和图形化信号处理

12、设计工具 SPTool;题目四 基于MATLAB的双音多频拨号系统的仿真(一)基本原理1、引言双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信号,由美国AT&T 贝尔公司实验室研制,并用于电话网络中。这种信号制式具有很高的拨号速度,且容易自动监测识别,很快就代替了原有的用脉冲计数方式的拨号制式。这种双音多频信号制式不仅用在电话网络中,还可以用于传输十进制数据的其它通信系统中,用于电子邮件和银行系统中。这些系统中用户可以用电话发送 DTMF 信号选择语音菜单进行操作。DTMF 信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行

13、传输,其中还用到了 D/A 变换器;在接收端用 A/D 变换器将其转换成数字信号,并进行数字信号处理与识别。为了系统的检测速度并降低成本,还开发一种特殊的 DFT 算法,称为戈泽尔(Goertzel)算法,这种算法既可以用硬件(专用芯片)实现,也可以用软件实现。下面首先介绍双音多频信号的产生方法和检测方法,包括戈泽尔算法,最后进行模拟实验。下面先介绍电话中的 DTMF 信号的组成。在电话中,数字 09 的中每一个都用两个不同的单音频传输,所用的 8 个频率分成高频带和低5频带两组,低频带有四个频率:679Hz,770Hz,852Hz 和 941Hz;高频带也有四个频率:1209Hz,1336H

14、z,1477Hz 和 1633Hz.。每一个数字均由高、低频带中各一个频率构成,例如 1 用697Hz 和 1209Hz 两个频率,信号用 表示,其中 ,)2sin()si(1tftfHzf6791。这样 8 个频率形成 16 种不同的双频信号。具体号码以及符号对应的频率如表 1 所Hzf1209示。表中最后一列在电话中暂时未用。表 1 双频拨号的频率分配列行1209Hz 1336Hz 1477Hz 633Hz697Hz 1 2 3 A770Hz 4 5 6 B852Hz 7 8 9 C942Hz * 0 # DDTMF 信号在电话中有两种作用,一个是用拨号信号去控制交换机接通被叫的用户电话机

15、,另一个作用是控制电话机的各种动作,如播放留言、语音信箱等。2、电话中的双音多频(DTMF)信号的产生与检测(1)双音多频信号的产生假设时间连续的 DTMF 信号用 表示,式中 是按照表 1 选)2sin()si()1tftftx21f和择的两个频率, 代表低频带中的一个频率, 代表高频带中的一个频率。显然采用数字方法产1f 2生 DTMF 信号,方便而且体积小。下面介绍采用数字方法产生 DTMF 信号。规定用 8KHz 对DTMF 信号进行采样,采样后得到时域离散信号为)80/sin()80/2sin() 21ffx形成上面序列的方法有两种,即计算法和查表法。用计算法求正弦波的序列值容易,但

16、实际中要占用一些计算时间,影响运行速度。查表法是预先将正弦波的各序列值计算出来,寄存在存储器中,运行时只要按顺序和一定的速度取出便可。这种方法要占用一定的存储空间,但是速度快。因为采样频率是 8000Hz,因此要求每 125ms 输出一个样本,得到的序列再送到 D/A 变换器和平滑滤波器,输出便是连续时间的 DTMF 信号。DTMF 信号通过电话线路送到交换机。(2)双音多频信号的检测在接收端,要对收到的双音多频信号进行检测,检测两个正弦波的频率是多少,以判断所对应的十进制数字或者符号。显然这里仍然要用数字方法进行检测,因此要将收到的时间连续 DTMF信号经过 A/D 变换,变成数字信号进行检

17、测。检测的方法有两种,一种是用一组滤波器提取所关心的频率,根据有输出信号的 2 个滤波器判断相应的数字或符号。另一种是用 DFT(FFT)对双音多频信号进行频谱分析,由信号的幅度谱,判断信号的两个频率,最后确定相应的数字或符号。当检测的音频数目较少时,用滤波器组实现更合适。FFT 是 DFT 的快速算法,但当 DFT 的变换区间6较小时,FFT 快速算法的效果并不明显,而且还要占用很多内存,因此不如直接用 DFT 合适。下面介绍 Goertzel 算法,这种算法的实质是直接计算 DFT 的一种线性滤波方法。这里略去 Goertzel算法的介绍(请参考文献1 9) ,可以直接调用 MATLAB

18、信号处理工具箱中戈泽尔算法的函数Goertzel,计算 N 点 DFT 的几个感兴趣的频点的值。3、检测 DTMF 信号的 DFT 参数选择用 DFT 检测模拟 DTMF 信号所含有的两个音频频率,是一个用 DFT 对模拟信号进行频谱分析的问题。根据第三章用 DFT 对模拟信号进行谱分析的理论,确定三个参数:(1)采样频率 ,sF(2)DFT 的变换点数 N, (3 )需要对信号的观察时间的长度 。这三个参数不能随意选取,要根pT据对信号频谱分析的要求进行确定。这里对信号频谱分析也有三个要求: (1)频率分辨率,(2)谱分析的频谱范围, (3)检测频率的准确性。(1) 频谱分析的分辨率。观察要

19、检测的 8 个频率,相邻间隔最小的是第一和第二个频率,间隔是 73Hz,要求 DFT 最少能够分辨相隔 73Hz 的两个频率,即要求 。DFT 的分辨率和对信号的观察时间 有HzF73min pT关, 。考虑到可靠性,留有富裕量,要求按键的时间大于 40ms。sFTp7.13/1min(2)频谱分析的频率范围要检测的信号频率范围是 6971633Hz,但考虑到存在语音干扰,除了检测这 8 个频率外,还要检测它们的二次倍频的幅度大小,波形正常且干扰小的正弦波的二次倍频是很小的,如果发现二次谐波很大,则不能确定这是 DTMF 信号。这样频谱分析的频率范围为 6973266Hz。按照采样定理,最高频

20、率不能超过折叠频率,即 ,由此要求最小的采样频率应为 7.24KHz。HzFs3625.0因为数字电话总系统已经规定 8KHz,因此对频谱分析范围的要求是一定满足的。按照s, 8KHz,算出对信号最少的采样点数为 。msTp7.13inF 10mini spFTN(3)检测频率的准确性这是一个用 DFT 检测正弦波频率是否准确的问题。序列的 N 点 DFT 是对序列频谱函数在0 区间的 N 点等间隔采样,如果是一个周期序列,截取周期序列的整数倍周期,进行 DFT,2其采样点刚好在周期信号的频率上,DFT 的幅度最大处就是信号的准确频率。分析这些 DTMF 信号,不可能经过采样得到周期序列,因此

21、存在检测频率的准确性问题。DFT 的频率采样点频率为 (k=0,1,2,-,N -1) ,相应的模拟域采样点频率为k/(k=0,1,2,-,N -1) ,希望选择一个合适的 N,使用该公式算出的 能接近要检Ffsk/ kf测的频率,或者用 8 个频率中的任一个频率 代入公式 中时,得到的 k 值最接近kf/ksfF整数值,这样虽然用幅度最大点检测的频率有误差,但可以准确判断所对应的 DTMF 频率,即可以准确判断所对应的数字或符号。经过分析研究认为 N 205 是最好的。按照78KHz,N205,算出 8 个频率及其二次谐波对应 k 值,和 k 取整数时的频率误差见表 2。sF表 2 8 个基

22、频Hz最近的整数 k值DFT 的k 值绝对误差 二次谐波Hz对应的k 值最近的整数 k 值绝对误差697 17.861 18 0.139 1394 35.024 35 0.024770 19.531 20 0.269 1540 38.692 39 0.308852 21.833 22 0.167 1704 42.813 43 0.187941 24.113 24 0.113 1882 47.285 47 0.2851209 30.981 31 0.019 2418 60.752 61 0.2481336 34.235 34 0.235 2672 67.134 67 0.1341477 37.8

23、48 38 0.152 2954 74.219 74 0.2191633 41.846 42 0.154 3266 82.058 82 0.058通过以上分析,确定 8KHz,N205, 。sFmsTp404、DTMF 信号的产生与识别仿真实验下面先介绍 MATLAB 工具箱函数 goertzel,然后介绍 DTMF 信号的产生与识别仿真实验程序。Goerztel 函数的调用格式额为Xgk=goertzel(xn,K)xn 是被变换的时域序列,用于 DTMF 信号检测时,xn 就是 DTMF 信号的 205 个采样值。K 是要求计算的 DFTxn的频点序号向量,用 N 表示 xn 的长度,则要

24、求 1KN。由表 10.2.2 可知,如果只计算 DTMF 信号 8 个基频时,K=18,20,22,24,31,34,38,42,如果同时计算 8 个基频及其二次谐波时,K=18,20,22,24,31,34,35,38,39,42,43,47,61,67,74,82 。Xgk 是变换结果向量,其中存放的是由 K 指定的频率点的 DFTx(n)的值。设 X(k)= DFTx(n),则。 (), 12,length()XgkiKiDTMF 信号的产生与识别仿真实验在 MATLAB 环境下进行,编写仿真程序,运行程序,送入6 位电话号码,程序自动产生每一位号码数字相应的 DTMF 信号,并送出双

25、频声音,再用 DFT 进行谱分析,显示每一位号码数字的 DTMF 信号的 DFT 幅度谱,安照幅度谱的最大值确定对应的频率,再安照频率确定每一位对应的号码数字,最后输出 6 位电话号码,程序名为 exp6。程序分四段:第一段(27 行)设置参数,并读入 6 位电话号码;第二段(920 行)根据键入的 6 位电话号码产生时域离散 DTMF 信号,并连续发出 6 位号码对应的双音频声音;第三段(2225 行)对时域离散 DTMF 信号进行频率检测,画出幅度谱;第四段(2633 行)根据幅度谱的两个峰值,分别查找并确定输入 6 位电话号码。根据程序中的注释很容易分析编程思想和处理8算法。程序清单如下

26、:exp6.m% DTMF 双频拨号信号的生成和检测程序%clear all;clc;tm=1,2,3,65;4,5,6, 66;7,8,9,67;42,0,35,68; % DTMF 信号代表的 16 个数N=205; K=18,20,22,24,31,34,38,42;f1=697,770,852,941; % 行频率向量f2=1209,1336,1477,1633; % 列频率向量TN=input(键入 6 位电话号码 = ); % 输入 6 位数字TNr=0; %接收端电话号码初值为零for l=1:6;d=fix(TN/10(6-l);TN=TN-d*10(6-l);for p=1:

27、4;for q=1:4;if tm(p,q)=abs(d) ; break,end % 检测码相符的列号 qendif tm(p,q)=abs(d) ; break,end % 检测码相符的行号 pendn=0:1023; % 为了发声,加长序列x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双频信号sound(x,8000); % 发出声音pause(0.1)% 接收检测端的程序X=goertzel(x(1:205),K+1); % 用 Goertzel 算法计算八点 DFT 样本val = abs(X); % 列出八点 DFT

28、 向量subplot(3,2,l);stem(K,val,.);grid;xlabel(k) ;ylabel(|X(k)|) % 画出 DFT(k)幅度axis(10 50 0 120)limit = 80; %for s=5:8;if val(s) limit, break, end % 查找列号endfor r=1:4;if val(r) limit, break, end % 查找行号endTNr=TNr+tm(r,s-4)*10(6-l) ;enddisp(接收端检测到的号码为:) % 显示接收到的字符disp(TNr)运行程序,根据提示键入 6 位电话号码 123456,回车后可以听

29、见 6 位电话号码对应的 DTMF信号的声音,并输出相应的 6 幅频谱图如图 10.10.1 所示,左上角的第一个图在 k=18 和 k=31 两点出现峰值,所以对应第一位号码数字 1。最后显示检测到的电话号码 123456。9图 1 6 位电话号码 123456 的 DTMF 信号在 8 个近似基频点的 DFT 幅度(二)设计内容任意送入 8 位电话号码,打印出相应的幅度谱。观察程序运行结果,对照表 1 和表 2,判断程序谱分析的正确性。(三)说明书要求1研究双音多频拨号(DTMF)系统,研究电话中双音多频信号的产生与检测原理;2分析程序 exp8.m,画出仿真程序流程图。3打印 6 位和

30、8 位电话号码 DTMF 信号的幅度谱。4说明 DTMF 信号的参数:采样频率、DFT 的变换点数以及观测时间的确定原则。四、参考文献1 高西全,丁玉美. 数字信号处理(第三版).西安:西安电子科技大学出版社,2008.82 王宏. MATLAB6.5及其在信号处理中的应用 . 北京:清华大学出版社,20043 李正周. MATLAB数字信号处理与应用 . 北京:清华大学出版社,20084 徐明远,刘增力 MATLAB仿真在信号处理中的应用.西安:电子科技大学出版社,2007 5 李显宏. MATLAB 7.x界面设计与编译技巧 . 北京: 电子工业出版社, 20066 郭仕剑等. MATLAB7.X数字信号处理. 人民邮电出版社, 20067 张明照, 刘政波, 刘斌. 应用MATLAB 实现信号分析和处理. 科学出版社, 2006

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。