研究生课程考核试卷
(适用于课程论文、提交报告)
科 目: 数字信号处理
教 师:
姓 名:
学 号:
专 业:
类 别:
上课时间:
20 年 月至 20 年 月
考 生 成 绩:
卷面成绩 平时成绩 课程综合成绩
阅卷评语:
阅卷教师 (签名)
重庆大学研究生院制
目录
第一章 摘要 ............................................................................................................................... 3
第二章 MATLAB 环境简介 .........................................................................................................3
第三章 设计思路 ......................................................................................................................... 4
1、整体设计思路................................................................................................................. 4
2、采样定理......................................................................................................................... 5
3、采样频率......................................................................................................................... 5
第四章 语音信号的分析及处理方法 .........................................................................................6
1、信号的傅里叶变换......................................................................................................... 6
2、语音信号的读取 ............................................................................................................. 7
3、语音信号的频谱分析 ..................................................................................................... 7
4、噪声信号的构建 ............................................................................................................. 8
5、加入噪声的语音信号的频谱.........................................................................................9
第五章 滤波器的设计原理 ..................................................................................................... 10
1、设计数字滤波器的任务............................................................................................... 10
2、滤波器的性能指标....................................................................................................... 11
3、IIR 数字滤波器设计.....................................................................................................11
4、IIR 滤波器..................................................................................................................... 11
5、滤波器对信号滤波....................................................................................................... 12
第六章 程序源代码 ................................................................................................................... 13
第七章 心得体会 ....................................................................................................................... 16
参考文献 ..................................................................................................................................... 17
第一章 摘要
数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理
与模拟信号处理是信号处理的子集。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在
进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换
器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实
现的。
数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器
DSP和专用集成电路ASIC等。数字信号处理技术及设备具有灵活、精确、
抗干扰强、设备尺寸小、造价低、速度快等突出优点这些都是模拟信号处理技
术与设备所无法比拟的。数字信号处理的核心算法是离散傅立叶变换(DFT)是
DFT 使信号在数字域和频域都实现了离散化从而可以用通用计算机处理离散
信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT)FFT 的出现
大大减少了 DFT 的运算量使实时的数字信号处理成为可能极大促进了该学科
的发展。
语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编辑,语音
合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信
息。语音信号分析的目的就在于方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和频域等处理方法。语音信号可认为在短时间内(一
般认为在 10~30ms 的短时间内)近似不变,因而可以将其看作是一个准稳态过程,
即语音信号具有短时平稳性。任何语音信号的分析和处理必须建立在“短时”的
基础上,即进行“短时分析”。
时域分析:直接对语音信号的时域波形进行分析,提取的特征参数有短时能
量、短时平均过零率、短时自相关函数。
频域分析:対语音信号采样,并进行傅里叶变换来进行频域分析。主要分析的
特征参数:短时域、倒谱、语谱图等。
本文采集作者的声音信号为基本的原始信号。对语音信号进行频域分析后,进
行加随机噪声处理并进行相关分析,设计滤波器并运用所设计的滤波器对价噪声
信号进行滤波,绘制滤波后的时域波形和频谱。
第二章 MATLAB 环境简介
MATLAB 语言是一种数据分析和处理功能十分强大的计算机应用软件,它可
以将声音文件变为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,
如数字滤波器、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,
信号处理是 MALAB 重要应用领域之一。
本课程设计介绍了基于 MATLAB 的对语音信号采集、处理及滤波器的设计,
并使之实现的过程。理解与掌握课程设计中基本的概念、基本原理、基本分析方
法,用 MATLAB 进行数字语音信号处理,并阐述了课程设计的具体方法、步骤
和内容。综合运用本课程设计的理论知识进行频域分析以及滤波器设计,通过理
论推导得出相应结论,并利用 MATLAB 作为工具进行时现,从而复习巩固课堂
所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字
信号的处理。
MATLAB 是矩 阵实验 室 Matrix Laboratory 的简 称 和 Mathematica 、
Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一
指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、
连接其他编程语言的程序等主要应用于工程计算、控制设计、信号处理与通讯、
图像处理、信号检测、金融建模设计与分析等领域。
MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形
式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完相同的事情
简捷得多.并且 mathwork 也吸收了像 Maple 等软件的优点,使 MATLAB 成为一个
强大的数学软件。在新的版本中也加入了对 C,FORTRAN 中 C++ JAVA 的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便
自己以后调用,此外许多的 MATLAB 爱好者都编写了一些经典的程序,用户可以
直接进行下载就可以用.
第三章 设计思路
1、整体设计思路
1、参数设定 录制一段 2s 左右的语音信号,并对录制的信号进行 8000Hz 采
样,画出采样后语音信号的时域波形和频谱图。
对于滤波器的设计采用窗函数法或双线性法,画出滤波器的频率响应。滤波
器的设计指标:
(1) 低通滤波器性能指标 fb=1000Hz,fc=1200Hz,As=100db,Ap=1db。
(2) 高通滤波器性能指标 fc=4800Hz,fb=5000Hz,As=100db,Ap=1db。
(3) 带 通 滤 波 器 性 能 指 标 fb1=1200Hz , fb2=3000Hz , fc1=1000Hz ,
fc2=3200H 在,As=100Hz,Ap=1db;
2、采样定理
在进行模拟/数字信号的转换过程中当采样频率 fs.max 大于信号中最高频率
fmax 的 2 倍时即fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信
号中的信息一般实际应用中保证采样频率为信号最高频率的 510 倍采样定
理又称奈奎斯特定理。 1924 年奈奎斯特(Nyquist)就推导出在理想低通信道的最
高大码元传输速率的公式: 理想低通信道的最高大码元传输速率=2W*log2 N (其
中 W 是理想低通信道的带宽,N 是电平强度)
3、采样频率
采样频率是指计算机每秒钟采集多少个声音样本是描述声音文件的音质、音调
衡量
声卡、声音文件的质量标准。采样频率越高即采样的间隔时间越短则在单位
时间内计算 www.docin.com 课件之家精心整理资料--欢迎你的欣赏 课件之家精心
整理资料--欢迎你的欣赏 机得到的声音样本数据就越多对声音波形的表示也
越精确。采样频率与声音频率之间有一定的关系根据奎斯特理论只有采样频
率高于声音信号最高频率的两倍时才能把数字信号表示的声音还原成为原来的
声音。这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。
4、采样位数与采样频率
采样位数即采样值或取样值用来衡量声音波动变化的参数是指声卡在采集和
播放声
音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内
对声音信号的采样次数采样频率越高声音的还原就越真实越自然。采样位数和
采样率对于音频接口来说是最为重要的两个指标也是选择音频接口的两个重要
标准。无论采样频率如何理论上来说采样的位数决定了音频数据最大的力度范
围。每增加一个采样位数相当于力度范围增加了 6dB。采样位数越多则捕捉到的
信号越精确。对于采样率来说你可以想象它类似于一个照相机44.1kHz 意味着
音频流进入计算机时计算机每秒会对其拍照达 441000 次。显然采样率越高计算
机摄取的图片越多对于原始音频的还原也越加精确.
第四章 语音信号的分析及处理方法
1、信号的傅里叶变换
FFT 即为快速傅氏变换就是离散傅氏变换的快速算法.它是根据离散傅氏变
换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。 在
MATLAB 的信号处理工具箱中函数 FFT 和 IFFT 用于快速傅立叶变换和逆变换。
函数 FFT 用于序列快速傅立叶变换,其调用格式为 y=fft(x),其中 x 是序列,y 是序
列的 FFT.x 可以为一向量或矩阵若 x 为一向量.y 是 x 的 FFT 且和 x 相同长度.
若 x 为一矩阵,则 y 是对矩阵的每一列向量进行 FFT。如果 x 长度是 2 的幂次方.
函数 fft 执行高速基,2FFT 算法.否则 fft 执行一种混合基的离散傅立叶变换算法,
计算速度较慢。函数 FFT 的另一种调用格式为 y=fft(x,N).式中,x,y 意义同前,N
为正整数。函数执行 N 点的 FFT,若 x 为向量且长度小于 N.则函数将 x 补零至长
度 N.若向量 x 的长度大于 N,则函数截短 x 使之长度为 N.若 x 为矩阵,按相同方
法对 x 进行处理。
采样器的作用是把连续信号变为脉冲信号或数字序列。图中示出了一个连续信号
f(t)经采样后变为离散信号的过程
图 2 为连续信号 f(t)经采样后变为离散信号
图中 f(t)为被采样的连续信号,s(t)为周期性窄脉冲信号,fs(t)为采样后
的离散信号,它用下式来表征:fs(t)=f(t)s(t)
采样信号的频域特性为:
如果 F*(jw)中各个波形不重复搭接,相互间有一定的距离(频率)即若
即采样定理可叙述如下:如果采样周期满足下列条件,即:Ws=2 兀/T>2Wmax
式中 Wmax 为连续信号 f(t)的最高次谐波的角频率。即采样信号 f*(t)就可
以无失真的再恢复为连续信号 f(t)。需要指出的是,采样定理只是在理论上给出
了信号准确复现的条件。
我们可以利用 windows 自带的录音机录制语音文件,进行数字信号的采集。(开
始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000khz,8 位,单声
道)或其他软件,将话筒输入计算机的语音输入插口上,启动录音机,录制一段
自己的话音。然后再 Matlab 软件平台下,利用函数 wavread 对语音信号进行采样,
记住采样频率和采样点数。通过 wavread 函数的使用进一步理解采样频率、采样
位数等概念。图 2 是基于 pc 记得语音信号采集过程;
2、语音信号的读取
在 matlab 软件平台下,利用 wavread 函数对语音信号进行采样,记住采样
频率和采样点数。通过使用 wavread 函数,理解采样频率、采样位数等概念。
wavread 函数调用格式
y=wavread(file),读取 file 所规定的 wav 文件,返回采样值放在向量 y 中。
[y,fs,nbits]=wavread(file),采样值放在向量 y 中,fs 表示采样频率(hz),
nbits 表示采样位数。
y=wavread(file,N),读前 N 点的采样值放在向量 y 中。
y =wavread(file,[N1,N2]),读取从 N1 到 N2 点的采样值放在向量 y 中。
对语音信号“shiyan.wav”进行采集其程序如下;
[y,fs,nbits]=wavread(’shiyan.wav’)
可知该语音信号的采集频率 fs=8000Hz,数据位 nbits=16Bit。
3、语音信号的频谱分析
首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在 Matlab 中
可以利用函数 fft 对信号进行快速傅里叶变换,得到信号的频谱特性,从而加深对
频谱特性的理解。
其程序如下;
[y,fs,nbits]=wavread(’yuyin.wav’);%把语音信号进行加载入 Matlab 仿真
软件平台中
Sound(y,fs,nbits);%回访语音信号
n=length(y);%求出语音信号的长度
y=fft(y,n);%快速傅里叶变换
subplot(2,1,1);plot(y);title(’原始信号波形’);
subplot(2,1,2);plot(abs(y));title(’原始信号频谱’)
程序结果图
4、噪声信号的构建
利用 matlab 中的随机函数(rand)产生噪声加入到语音信号中,模仿语音信号被
污染,并对其进行频谱分析。程序如下:
N=length(y); %求出语音信号的长度
noise=rand(N,2)/2; %噪声信号的函数
z=fft(noise); %快速傅里叶变换
subplot(2,1,1),plot(noise);title('噪声信号波形');
subplot(2,1,2),plot(abs(z));title('噪声信号频谱');
axis([0,1000,0,10]);