语音信号处理系统设计

合集下载

语音信号处理系统设计

语音信号处理系统设计

信号与线性系统课程设计报告语音信号处理系统设计班级:通信102班姓名:学号:成绩:指导教师:王霞日期:2012年12月目录摘要 (1)关键词 (1)1 课程设计的目的意义 (1)1.1课程设计的目的 (1)1.2课程设计的意义 (1)2 设计任务及技术指标 (1)3 设计方案论证 (2)4 具体设计内容 (3)4.1语音信号分析设计 (3)4.2图形用户界面设计 (7)5 实验结果与分析 (15)6 总结 (16)参考文献 (16)语音信号处理系统设计摘要:语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。

语音信号处理的目的是得到某些参数以便高效传输或存储,或者是用于某种应用,如人工合成出语音、辨识出讲话者、识别出讲话内容、进行语音增强等。

本次设计主要进行了语音信号的采集与分析。

采集语音信号后,在MATLAB软件平台上进行频谱分析,并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复信号并与原信号进行比较。

利用MATLAB来读入(采集)语音信号,该信号看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。

然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。

关键词:语音信号,频域,时域,滤波器,MATLAB,LABVIEW1课程设计的目的、意义1.1课程设计的目的(1)掌握Matlab软件的特点和使用方法。

(2)掌握利用Matlab分析信号和系统的时域、频域特性的方法;(3)掌握数字滤波器的设计方法及应用。

(4)了解语音信号的特性及分析方法。

(5)了解LabVIEW虚拟仪器的特点,了解采用LabVIEW进行仿真的方法。

(6)通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。

1.2 课程设计的意义通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息的形式。

语言是人类持有的功能.声音是人类常用的工具,是相互传递信息的最主要的手段。

语音信号处理课程设计报告python

语音信号处理课程设计报告python

语音信号处理课程设计报告python一、引言语音信号处理是数字信号处理中的一个重要分支,它主要涉及到语音信号的获取、预处理、特征提取、分类识别等方面。

在本次课程设计中,我们将使用Python语言对语音信号进行处理,并实现一个简单的语音识别系统。

二、问题描述本次课程设计的主要任务是实现一个基于MFCC特征提取和GMM-HMM模型的语音识别系统。

具体来说,我们需要完成以下任务:1. 对输入的语音信号进行预处理,包括去噪、分帧、加窗等;2. 提取MFCC特征;3. 使用GMM-HMM模型对不同的语音进行分类识别。

三、方法实现1. 语音信号预处理在对语音信号进行MFCC特征提取之前,需要对其进行预处理。

我们需要去除信号中的噪声。

常见的去噪方法包括基于阈值的方法和基于滤波器的方法。

在本次课程设计中,我们将使用基于阈值的方法对信号进行去噪。

我们需要将原始信号分帧,并对每一帧应用窗函数以减少频谱泄漏效应。

常见的窗函数包括汉明窗、海宁窗等。

2. MFCC特征提取MFCC是一种常用的语音特征提取方法,它可以将语音信号转换为一组包含语音信息的系数。

MFCC特征提取包括以下几个步骤:1. 对预处理后的语音信号进行快速傅里叶变换(FFT);2. 将频谱图转换为梅尔频率倒谱系数(MFCC);3. 对MFCC系数进行离散余弦变换(DCT)。

3. GMM-HMM模型GMM-HMM模型是一种常见的语音识别模型,它将每个单词表示为一个由高斯混合模型(GMM)和隐马尔可夫模型(HMM)组成的序列。

在本次课程设计中,我们将使用GMM-HMM模型对不同的语音进行分类识别。

四、程序实现1. 语音信号预处理我们使用Python中的librosa库对语音信号进行预处理。

具体来说,我们使用librosa.load()函数加载.wav格式的文件,并使用librosa.effects.trim()函数去除静默段。

我们对剩余部分进行分帧和加窗操作,并使用librosa.feature.mfcc()函数提取MFCC特征。

基于DSP的数字语音信号处理系统的设计

基于DSP的数字语音信号处理系统的设计
参考 文献
【 1 ] 肖 瑛, 李振兴, 董玉华, 等. 基于压缩传递函数的神 经网 络盲均衡算法
弹箭与制导学报 , 2 0 0 9 , 2 9 ( 1 ) : 2 5 1 — 2 5 3 . 图 1数字语音信号处理系统硬件组成 3 F I R数字滤波器算法的 D S P实现 本设计中采用窗函数法设计 F I R滤波器 。T MS 3 2 0 v c 5 4 1 0在指令 2 0 0 9 , 3 8 ( 4 ) : 4 7 9 — 4 8 3 . 集和硬件结构上 , 对滤波器算法的实现 , 有专 门的考虑。首先是在指令 [ 4 】 肖瑛 , 冯长建. 组合窗函数的短时傅里叶变换时频表示方法 探 测与 中设置了 MA C D指令, 它的功能是将数据区的两个数相乘以后, 再与 累 控制学报 , 2 0 1 0 , 3 2 ( 3 ) : 4 3 - 4 8 . 加器中的值累加 , 运算结果仍保 留于累加器中, 而为下 一次操作准备 ; 【 5 】 肖瑛, 李振 兴. 差异进化算法初始化的小波神经网络盲均衡m电路 与 其次在硬件上, 设计了间接寻址时的循环寻址功能 , 即将滤波器系数保 系统学报 , 2 0 1 0 , 1 5 ( 4 ) : 2 2 — 2 6 . 存于—个可循环寻址的数据缓冲区, 寻址指针由低地址 自 动增长 , 当达 嘲 肖 瑛. 并联滤波的常数模 与判决 引导融合 盲均衡算 法 声学学报 , 到缓冲区顶部时 , 自动返回低地址重新寻址 , 这样 , 配合单指令重复指 2 0 1 2 , 3 7 ( 5 ) : 4 9 5 — 5 0 0 . 令R P T , 就可以快速实现卷积操作。程序设计流程图如图 2所示。 董玉华 , 张俊星. 修正的解相关前馈神经网络盲均衡算法研 究 大连 民族学院学报 , 2 0 1 2 , 1 4 ( 5 ) : 4 6 0 — 4 6 2 . [ 8 ] 董玉华 , 肖瑛. 基于¥ 3 C 2 4 4 0的温度采集 系统 的实现Ⅱ l 数 字通信 ,

信号与系统课程设计-语音信号处理系统设计模板

信号与系统课程设计-语音信号处理系统设计模板

课题三语音信号处理系统设计一、本课题的目的本设计课题主要研究语音信号抽样和恢复的软硬件实现方法、滤波器的设计及应用。

通过完成本课题的设计,拟主要达到以下几个目的:1.通过硬件实验观察连续时间信号抽样及恢复的波形特点。

加深理解时域抽样定理的内容。

2.掌握利用MATLAB实现连续时间信号抽样及恢复的基本原理和方法。

3.掌握利用MATLAB分析模拟及数字系统时域、频域特性的方法;4.了解模拟滤波器系统的设计方法、基于运算电路的模拟系统有源实现方法;通过实验平台掌握模拟系统的频率特性测试方法。

5.熟悉由模拟滤波器转换为数字滤波器的原理。

6.掌握数字滤波器的设计方法。

通过设计具体的滤波器掌握滤波器设计方法、步骤。

7.了解数字滤波器的应用,了解语音信号的频率特性。

8.培养学生运用所学知识分析和解决实际问题的能力。

二、课题任务设计一个语音信号处理系统,实现对语音信号的抽样、滤波、频谱分析以及信号的回复。

要求通过硬件实验掌握其电路工作原理、测试方法以及数据处理方法,根据系统的设计技术指标通过程序设计实现系统仿真。

硬件部分:1.利用信号与系统实验箱实现信号的抽样和恢复。

2.利用信号与系统实验箱熟悉四阶巴特沃思滤波器(或切比雪夫滤波器)的工作原理并观察记录各型滤波器的幅频特性。

软件部分:1.根据抽样定理及语音信号频谱范围设计一个最小3阶模拟滤波器对语音信号进行预滤波,用直接、级联或并联结构实现所设计系统,对系统的时域、频域特性进行仿真测试,对结果进行分析比较。

(要求保留4000Hz以内频率的信号,可采用巴特沃斯或者切比雪夫滤波器)2.设计一个系统,要求:(1)实现连续信号的抽样。

(2)针对语音信号频谱及噪声频率,设计巴特沃思数字滤波器(或切比雪夫滤波器)滤除噪声,进行频谱分析并与原始信号进行比较。

(3)由滤波后信号恢复出连续信号,进行谱分析并进行回放。

3. 利用MA TLAB软件的系统仿真功能(Simulink)实现系统工作过程的仿真测试,并对其结果加以分析。

基于MATLAB的语音信号处理与识别系统设计与实现

基于MATLAB的语音信号处理与识别系统设计与实现

基于MATLAB的语音信号处理与识别系统设计与实现一、引言语音信号处理与识别是人工智能领域中的重要研究方向之一,随着深度学习和人工智能技术的不断发展,基于MATLAB的语音信号处理与识别系统设计与实现变得越来越受到关注。

本文将介绍如何利用MATLAB进行语音信号处理与识别系统的设计与实现。

二、MATLAB在语音信号处理中的应用MATLAB作为一种强大的科学计算软件,提供了丰富的工具箱和函数库,可以方便地进行语音信号处理。

在语音信号处理中,MATLAB可以用于语音信号的采集、预处理、特征提取、模型训练等各个环节。

通过MATLAB提供的工具,可以高效地对语音信号进行分析和处理。

三、语音信号处理流程1. 语音信号采集在语音信号处理系统中,首先需要对语音信号进行采集。

通过MATLAB可以实现对声音的录制和采集,获取原始的语音信号数据。

2. 语音信号预处理采集到的语音信号数据通常包含噪声和杂音,需要进行预处理以提高后续处理的准确性。

预处理包括去噪、降噪、滤波等操作,可以有效地净化语音信号数据。

3. 特征提取在语音信号处理中,特征提取是一个关键步骤。

通过MATLAB可以提取出语音信号的频谱特征、时域特征等信息,为后续的模式识别和分类打下基础。

4. 模型训练与识别利用MATLAB可以构建各种机器学习模型和深度学习模型,对提取出的特征进行训练和识别。

通过模型训练,可以实现对不同语音信号的自动识别和分类。

四、基于MATLAB的语音信号处理与识别系统设计1. 系统架构设计基于MATLAB的语音信号处理与识别系统通常包括数据采集模块、预处理模块、特征提取模块、模型训练模块和识别模块。

这些模块相互配合,构成一个完整的系统架构。

2. 界面设计为了方便用户使用,可以在MATLAB中设计用户友好的界面,包括数据输入界面、参数设置界面、结果展示界面等。

良好的界面设计可以提升系统的易用性和用户体验。

五、基于MATLAB的语音信号处理与识别系统实现1. 数据准备首先需要准备好用于训练和测试的语音数据集,包括正样本和负样本。

dsp语音信号处理课程设计

dsp语音信号处理课程设计

dsp语音信号处理课程设计一、课程目标知识目标:1. 理解语音信号处理的基本概念,掌握数字信号处理(DSP)在语音信号处理中的应用;2. 学会使用DSP技术对语音信号进行预处理、特征提取和识别;3. 掌握语音信号的时域、频域分析及其在语音增强、降噪等方面的应用。

技能目标:1. 能够运用编程软件(如MATLAB)进行语音信号的采集、处理和分析;2. 能够独立完成一个简单的语音信号处理项目,包括设计、实现和调试;3. 培养实际操作能力,提高解决实际语音信号处理问题的能力。

情感态度价值观目标:1. 激发学生对语音信号处理领域的兴趣,培养探索精神和创新意识;2. 培养学生团队协作能力,学会与他人共同分析问题、解决问题;3. 强化质量意识,注重实践操作规范,培养学生严谨、务实的科学态度。

本课程针对高年级学生,结合课程性质、学生特点和教学要求,明确以上课程目标。

通过本课程的学习,使学生能够掌握语音信号处理的基本知识和技能,培养实际操作和创新能力,同时注重培养学生的团队协作和严谨的科学态度。

课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. 语音信号处理基础理论:- 语音信号的数字化表示;- 语音信号的时域、频域分析;- 语音信号的加窗、分帧处理;- 语音信号的预处理技术。

2. 语音信号特征提取:- 基本特征参数(如:短时能量、短时平均幅度、短时过零率);- 频域特征(如:梅尔频率倒谱系数、线性预测系数);- 高级特征提取方法(如:深度学习)。

3. 语音信号处理应用:- 语音增强与降噪;- 语音识别与合成;- 说话人识别与情感分析;- 语音信号处理在实际应用中的案例分析。

4. 实践项目:- 使用MATLAB进行语音信号处理实验;- 设计并实现一个简单的语音识别系统;- 分析并改进现有语音信号处理算法。

教学内容依据课程目标制定,涵盖语音信号处理的基础理论、特征提取、应用及实践项目。

教学大纲明确教学内容的安排和进度,与教材章节相对应,确保内容的科学性和系统性。

毕业设计基于DSP的语音信号处理系统设计

毕业设计基于DSP的语音信号处理系统设计

毕业设计 [论文]题目:基于DSP‎的语音信号‎处理设计系别:电气与电子‎工程系专业:电子信息工‎程******学号:*****‎8151指导教师:***河南城建学‎院2010年‎5月23日‎摘要语音信号处‎理是研究用‎数字信号处‎理技术和语‎音学知识对‎语音信号进‎行处理的新‎兴的学科,是目前发展‎最为迅速的‎信息科学研‎究领域的核‎心技术之一‎。

通过语音传‎递信息是人‎类最重要、最有效、最常用和最‎方便的交换‎信息形式。

数字信号处‎理(Digit‎a lSig‎n alPr‎o cess‎i ng,简称DSP‎)是利用计算‎机或专用处‎理设备,以数字形式‎对信号进行‎采集、变换、滤波、估值、增强、压缩、识别等处理‎,以得到符合‎人们需要的‎信号形式。

Matla‎b语言是一‎种数据分析‎和处理功能‎十分强大的‎计算机应用‎软件,它可以将声‎音文件变换‎为离散的数‎据文件,然后利用其‎强大的矩阵‎运算能力处‎理数据,如数字滤波‎、傅里叶变换‎、时域和频域‎分析、声音回放以‎及各种图的‎呈现等,它的信号处‎理与分析工‎具箱为语音‎信号分析提‎供了十分丰‎富的功能函‎数,利用这些功‎能函数可以‎快捷而又方‎便地完成语‎音信号的处‎理和分析以‎及信号的可‎视化,使人机交互‎更加便捷。

信号处理是‎M a tla‎b重要应用‎的领域之一‎。

本设计针对‎现在大部分‎语音处理软‎件内容繁多‎、操作不便等‎问题,采用MAT‎LAB7.0综合运用‎G UI界面‎设计、各种函数调‎用等来实现‎语音信号的‎变频、傅里叶变换‎及滤波,程序界面简‎练,操作简便,具有一定的‎实际应用意‎义。

关键字:Matla‎b,语音信号,傅里叶变换‎,信号处理Abstr‎actSpeec‎h signa‎l proce‎s sing‎is to study‎the use of digit‎a l signa‎l proce‎s sing‎techn‎o logy‎and knowl‎e dge of the voice‎signa‎l voice‎proce‎s sing‎of the emerg‎i ng disci‎p line‎is the faste‎s t growi‎n g areas‎of infor‎m atio‎n scien‎c e one of the core techn‎o logy‎. Trans‎m issi‎o n of infor‎m atio‎n throu‎g h the voice‎of human‎i ty's most impor‎t ant, most effec‎t ive, most popul‎a r and most conve‎n ient‎form of excha‎n ge of infor‎m atio‎n..Digit‎a l signa‎l proce‎s sing‎(Digit‎a lSig‎n alPr‎o cess‎i ng, DSP) is the use of compu‎t er or speci‎a l proce‎s sing‎equip‎m ent, to digit‎a l form of signa‎l acqui‎s itio‎n, trans‎f orma‎t ion, filte‎r ing, estim‎a tion‎, enhan‎c emen‎t, compr‎e ssio‎n, recog‎n itio‎n proce‎s sing‎,in order‎to get the needs‎of the peopl‎e of the signa‎l form.Matla‎b langu‎a ge is a data analy‎s is and proce‎s sing‎funct‎i ons are very power‎f ul compu‎t er appli‎c atio‎n softw‎a re, sound‎files‎which‎can be trans‎f orme‎d into discr‎e te data files‎, then use its power‎f ul abili‎t y to proce‎s s the data matri‎x opera‎t ions‎, such as digit‎a l filte‎r ing, Fouri‎e r trans‎f orm, when domai‎n and frequ‎e ncy domai‎n analy‎s is, sound‎playb‎a ck and a varie‎t y of map rende‎r ing, and so on. Its signa‎l proce‎s sing‎and analy‎s is toolk‎i t for voice‎signa‎l analy‎s is provi‎d es a very rich featu‎r e funct‎i on, use of these‎funct‎i ons can be quick‎and conve‎n ient‎featu‎r es compl‎e te voice‎signa‎l proce‎s sing‎and analy‎s is and visua‎l izat‎i on of signa‎l s, makes‎compu‎t er inter‎a ctio‎n more conve‎n ient‎. Matla‎b Signa‎l Proce‎s sing‎is one of the impor‎t ant areas‎of appli‎c atio‎n.The desig‎n of voice‎-proce‎s sing‎softw‎a re for most of the conte‎n t are numer‎o us, easy to maneu‎v er and so on, using‎MATLA‎B7.0 compr‎e hens‎i ve use GUI inter‎f ace desig‎n, vario‎u s funct‎i on calls‎to voice‎signa‎l s such as frequ‎e ncy, ampli‎t ude, Fouri‎e r trans‎f orm and filte‎r ing, the progr‎a m inter‎f ace conci‎s e, simpl‎e, has some signi‎f ican‎c e in pract‎i ce.Keywo‎r ds: Matla‎b, Voice‎Signa‎l,Fouri‎e r trans‎f orm,Signa‎l Proce‎s sin1 绪论1.1课题的背景‎与意义通过语音传‎递信息是人‎类最重要、最有效、最常用和最‎方便的交换‎信息的形式‎。

语音处理系统课程设计

语音处理系统课程设计

语音处理系统课程设计一、课程目标知识目标:1. 学生能理解语音处理系统的基本概念,掌握语音信号的数字化处理过程;2. 学生能够描述不同类型的语音信号处理技术,如声音识别、语音合成、语音增强等;3. 学生能够解释语音处理技术在日常生活和工业应用中的重要性。

技能目标:1. 学生能够运用所学知识,使用编程工具设计简单的语音识别或语音合成程序;2. 学生能够通过实验和项目实践,分析并解决语音信号处理中遇到的问题;3. 学生能够运用团队协作和沟通技巧,共同完成语音处理系统的设计与实现。

情感态度价值观目标:1. 学生对语音处理产生兴趣,培养主动探索新技术、新方法的积极态度;2. 学生在实验和项目过程中,培养勇于尝试、面对挑战的信心和毅力;3. 学生能够认识到语音处理技术在促进社会发展、服务人民生活中的重要作用,树立正确的技术价值观。

本课程针对高年级学生,结合学科特点和教学要求,注重理论与实践相结合,提高学生的动手能力和创新能力。

通过本课程的学习,使学生能够掌握语音处理的基本原理,具备实际应用能力,并在此基础上培养良好的团队合作精神和价值观。

二、教学内容1. 语音信号基本概念:包括声音的产生、传播和接收,语音信号的时域和频域分析,语音信号的数字化表示。

- 教材章节:第一章 语音信号处理基础2. 语音信号处理技术:涵盖声音识别、语音合成、语音增强等技术的原理及其应用。

- 教材章节:第二章 语音信号处理技术3. 语音处理编程实践:利用编程工具(如Python、MATLAB等),设计简单的语音识别或语音合成程序。

- 教材章节:第三章 语音处理编程实践4. 语音处理系统设计与实现:结合实际项目,分析并解决语音信号处理中的问题,完成系统设计与实现。

- 教材章节:第四章 语音处理系统设计与实现5. 语音处理应用案例分析:分析典型语音处理应用案例,如智能助手、语音翻译等,了解其技术原理和实际应用。

- 教材章节:第五章 语音处理应用案例本教学内容根据课程目标制定,注重科学性和系统性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课题六语音信号处理系统设计摘要:语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。

语音信号处理的目的是得到某些参数以便高效传输或存储,或者是用于某种应用,如人工合成出语音、辨识出讲话者、识别出讲话内容、进行语音增强等。

本文简要介绍了语音信号采集与分析以及语音信号的特征、采集与分析方法,并在采集语音信号后,在MATLAB 软件平台上进行频谱分析,并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。

利用MATLAB来读入(采集)语音信号,将它赋值给某一向量,再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波,然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。

关键词:Matlab,语音信号,傅里叶变换,滤波器1课程设计的目的和意义本设计课题主要研究语音信号初步分析的软件实现方法、滤波器的设计及应用。

通过完成本课题的设计,拟主要达到以下几个目的:1.1.了解Matlab软件的特点和使用方法。

1.2.掌握利用Matlab分析信号和系统的时域、频域特性的方法;1.3.掌握数字滤波器的设计方法及应用。

1.4.了解语音信号的特性及分析方法。

1.5.通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。

2 设计任务及技术指标设计一个简单的语音信号分析系统,实现对语音信号时域波形显示、进行频谱分析,利用滤波器滤除噪声、对语音信号的参数进行提取分析等功能。

采用Matlab设计语言信号分析相关程序,并且利用GUI设计图形用户界面。

具体任务是:2.1.采集语音信号。

2.2.对原始语音信号加入干扰噪声,对原始语音信号及带噪语音信号进行时频域分析。

2.3.针对语音信号频谱及噪声频率,设计合适的数字滤波器滤除噪声。

2.4.对噪声滤除前后的语音进行时频域分析。

2.5.对语音信号进行重采样,回放并与原始信号进行比较。

2.6.对语音信号部分时域参数进行提取。

2.7.设计图形用户界面(包含以上功能)。

3 设计方案论证3.1语音信号的采集使用电脑的声卡设备采集一段语音信号,并将其保存在电脑中。

3.2语音信号的处理语音信号的处理主要包括信号的提取播放、信号的重采样、信号加入噪声、信号的傅里叶变换和滤波等,以及GUI图形用户界面设计。

Ⅰ.语音信号的时域分析语音信号是一种非平稳的时变信号,它携带着各种信息。

在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。

语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。

语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法。

Ⅱ.语音信号的频域分析信号的傅立叶表示在信号的分析与处理中起着重要的作用。

因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。

另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。

由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。

输出频谱是声道系统频率响应与激励源频谱的乘积。

声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。

由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。

Ⅲ.模拟滤波器原理(1)模拟巴特沃思滤波器原理巴特沃斯滤波器具有单调下降的幅频特性:在小于截止频率c Ω的范围内,具有最平幅度的响应,而在c Ω>Ω后,幅频响应迅速下降。

巴特沃思低通滤波器幅度平方函数为:221()1()a N cH j Ω=Ω+Ω (2-1) 式中N 为滤波器阶数,c Ω为3dB 截止角频率。

将幅度平方函数写成s 的函数:21()()1()a a NcH s H s s j -=+Ω (2-2) 该幅度平方函数有2N 个等间隔分布在半径为c Ω的圆上的极点121()22 k j Nk c s eπ++=Ω,0,1,...21k N =- 为了形成稳定的滤波器,取左半平面的N 个极点构成()a H s ,即:1()()N N a ckk H s s s -==Ω-∏ (2-3)为使设计统一,将频率归一化,得到归一化极点121()22k j Nk p e π++=,相应的归一化系统函数为:1()1()N a kk H p p p -==-∏ (2-4)多项式形式为: 01()1(...)N a H p b b p p =+++ (2-5)(2)模拟切比雪夫滤波器原理切比雪夫滤波器的幅频特性具有等波纹特性,有两种形式,在通带内等波纹、阻带单调的是I 型滤波器,在通带内单调、在阻带内等波纹的是II 滤波器。

以I 型滤波器为例。

切比雪夫滤波器的幅度平方函数为:22221()()1()aN pA H j C εΩ=Ω=Ω+Ω (2-6)ε为小于1的正数,表示通带内幅度波动的程度。

Ωp 称为通带截止频率。

令λ=Ω/Ωp ,称为对Ωp 的归一化频率。

C N (x)为N 阶切比雪夫多项式。

幅度平方函数的极点是分布在b Ωp 为长半轴,a Ωp 为短半轴的椭圆上的点。

同样取s 平面左半平面的极点构成()a H s :11()2()NN N a pi i H s s s ε-==Ω⋅⋅-∏ (2-7)进行归一化,得到:11()12()NN a i i H p p p ε-==⋅⋅-∏ (2-8)其中(21)(21)sin[]cos[]22k k p ch jch i N Nππξξ--=-⋅+⋅ ,11()Arsh N ξε=(3)模拟滤波器数字化原理将模拟滤波器转化为数字滤波器在工程上常用的有脉冲响应不变法和双线性变换法。

脉冲响应不变法时一种时域上的转换方法,它是数字滤波器的单位取样响应在抽样点上等于模拟滤波器的单位冲激响应,即:()()h n h nT a = (2-9)设模拟滤波器只有单阶极点,其系统函数为:1()Nia i iA H s s s ==-∑(2-10) 对()a H s 进行拉氏反变换得到()a h t ,对()a h t 进行等间隔抽样,得到()()h n h nT a =,对()h n 进行Z 变换,得到数字滤波器系统函数:11()1i Nis T i A H z e z-==-∑(2-11) 这种方法s 和z 的关系是:sT z e =。

该方法的优点是频率坐标变换时线性的切数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域特性逼近好;缺点是会产生频谱混叠现象,适合低通、带通滤波器的设计,不适合高通、带阻滤波器的设计。

双线性变换法为了克服频谱混叠现象,采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到/T π±之间,再用sT z e =转换到Z 平面上。

这种方法s 和z 的关系是:11(2/)(1/1)s T z z --=-+。

该方法克服了频谱混叠现象,但带来了频率坐标变换的非线性:(2/)tan(/2)T ωΩ=,由模拟滤波器系统函数转换为数字滤波器系统函数公式为:11211()()|a z z T z H z H s ---=+= (2-12)3.3语音信号的效果显示图形用户界面(Graphical User Interface ,GUI )是由窗口、按键、菜单、文字说明等对象(Objects )构成的一个用户界面。

用户通过一定的方法(如鼠标、键盘)选择激活这些图形对象,实现计算、绘图等。

创建图形用户界面须具有三类基本元素:(1)组件:图形化控件(如按钮、编辑框、列表框等)、静态元素(如文本字符串)、菜单和坐标系。

(2)图形窗口:GUI 的每一个组件都须安排在图形窗口中。

(3)回应:如用户用鼠标单击或用键盘输入信息后,程序要有相应的动作。

3.4短时能量及短时平均幅度短时能量函数和短时平均幅度函数是基于语音信号幅度的变化。

清音段幅度小,其能量集中于高频段;浊音段幅度较大,其能量集中于低频段。

短时能量函数对信号电平值过于敏感。

由于需要计算信号样值的平方和,在实际应用中(如定点设备)很容易溢出,所以可以用平均幅度函数来代替短时能量函数。

短时能量函数定义:∑-==12)(N m n n m x E (6-1)短时平均幅度函数定义:∑-==1|)(|N m n n m x M (6-2)(2)作用(a) 区分清/浊音:En 、Mn 大,对应浊音; En 、Mn 小,对应清音。

(b) 在信噪比高的情况下,能进行有声/无声判决:无声时,背景噪声的En 、Mn 小;有声时,En 、Mn 显著增大。

判决时可设置一个门限。

3.5短时平均过零率(1)过零率定义:信号跨越横轴的情况。

对于连续信号,观察语音时域波形通过横轴的情况;对于离散信号,相邻的采样值具有不同的代数符号,也就是样点改变符号的次数。

(2)短时平均过零率对于语音信号,是宽带非平稳信号,考察其短时平均过零率。

∑-=--=1)]1(sgn[)](sgn[21N m n n n m x m x Z (6-3)其中sgn[.]为符号函数,⎩⎨⎧<=≥=0)(1))(sgn(0)(1))(sgn(n x n x n x n x (6-4) (3)作用(a) 区分清/浊音:浊音平均过零率低,集中在低频端;清音平均过零率高,集中在高频端。

(b) 从背景噪声中找出是否有语音,以及语音的起点。

3.6短时自相关函数相关函数用于确定两个信号在时域内的相似性。

常用的物理量为自相关函数和互相关函数。

当两个信号的互相关函数大时,则说明一个信号可能是另一个信号的时间滞后或提前;当互相关函数为0时,则两个信号完全不同。

自相关函数用于研究信号本身,如波形的同步性和周期性。

(1)自相关函数定义K k k m x m x k R kN m n n n ≤<+=∑--=0)()()(10(5-5)(2)自相关函数特点(a) 当时域信号为周期信号时,自相关函数也是周期性函数,两者具有同样的周期。

(b) Rn(k)为偶函数, Rn(k)=Rn(-k)(c) Rn(0)最大, Rn(0)≥ |Rn(k)|, Rn(0)=En,对于确定信号, Rn(0)是信号能量;对于随机信号或周期信号, Rn(0)是平均功率。

(3)作用(a) 区分清/浊音。

浊音语音的自相关函数具有一定的周期性。

清音语音的自相关函数不具有周期性,类似噪声。

(b) 估计浊音语音信号的周期,即估计基音周期。

3.7系统初步流程图下图列出了整个语音信号处理系统的工作流程:4 设计内容4.1语音信号的打开程序:[x,fs,nbits]=wavread('mei.wav'); %打开语音信号sound(x,fs,nbits); %播放语音信号N=length(x); %长度n=0:N-1;w=2*n*pi/N;y1=fft(x); %对原始信号做FFT变换subplot(2,1,1);plot(n,x) %做原始语音信号的时域波形图title('原始语音信号时域图');xlabel('时间t'); ylabel('幅值');subplot(2,1,2); %做原始语音信号的频谱图 plot(w/pi,abs(y1)); title('原始语音信号频谱') xlabel('频率Hz'); ylabel('幅度'); 程序结果:时间t幅值频率Hz幅度-----------------------------------------------------------------------------------------------------------------------------------------4.2 信号重采样 程序:[x,fs,nbits]=wavread('mei.wav'); %打开语音信号 x1=resample(x,1,2); %进行8KHZ 重采样 sound(x1,fs/2,nbits); %读重采样后的信号x2=resample(x,1,4); %进行4KHZ重采样sound(x2,fs/4,nbits); %读重采样后的信号n1=0:N/2-1;n2=0:N/4-1;w1=4*n1*pi/N;w2=8*n2*pi/N;y1=fft(x1); %对重采样信号做FFT变换y2=fft(x2);figure(1)subplot(2,1,1);plot(n1,x1) %做8khz重采样语音信号的时域波形图title('8KHZ重采样语音信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,1,2); %做8KHZ重采样语音信号的频谱图plot(w1/pi,abs(y1));title('8KHZ重采样语音信号频谱')xlabel('频率Hz');ylabel('幅度');figure(2)subplot(2,1,1);plot(n2,x2) %做4KHZ 重采样语音信号的时域波形图 title('4KHZ 重采样语音信号时域图'); xlabel('时间t'); ylabel('幅值');subplot(2,1,2); %做4KHZ 重采样语音信号的频谱图 plot(w2/pi,abs(y2));title('4KHZ 重采样语音信号频谱') xlabel('频率Hz'); ylabel('幅度');程序结果:8KHZ 重采样语音信号时域图时间t幅值8KHZ 重采样语音信号频谱频率Hz幅度时间t幅值频率Hz幅度-----------------------------------------------------------------------------------------------------------------------------------------4.3加噪音 程序:x=wavread('mei.wav')'; %打开语音信号 N=length(x); %长度 n=0:N-1; w=2*n*pi/N;z=0.02*cos(10*n); %噪音 sound(z,fs,nbits); %读噪音 y=x+z; %加噪音sound(y,fs,nbits); %读加噪音后的信号 y1=fft(z); %对噪音做FFT 变换 y2=fft(y); %对加噪信号做FFT 变换 figure(1)subplot(2,1,1); %做噪音信号的时域波形图plot(n,z);axis([0,50,-0.02,0.02]);title('噪音信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,1,2); %做噪音信号的频谱图plot(w/pi,abs(y1));title('噪音信号频谱')xlabel('频率Hz');ylabel('幅度');figure(2)subplot(2,1,1); %做加噪音信号的时域波形图plot(n,y);axis([0,50,-0.02,0.02]);title('加噪音信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,1,2); %做加噪音信号的频谱图plot(w/pi,abs(y2));title('加噪音信号频谱')xlabel('频率Hz'); ylabel('幅度');程序结果:时间t 幅值频率Hz幅度时间t 幅值频率Hz幅度-----------------------------------------------------------------------------------------------------------------------------------------4.4滤波器function [db,mag,pha,w]=freqz_m(b,a);[H,w]=freqz(b,a,1000,'whole'); %在0-2*pi 之间选取N 个点计算频率响应H=(H(1:501))'; %频率响应 w=(w(1:501))'; %频率 mag=abs(H); %响应幅度 db=20*log10((mag+eps)/max(mag)); %增益 pha=angle(H);-----------------------------------------------------------------------------------------------------------------------------------------function [b,a]=afd_butt(Wp,Ws,Rp,As)N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws))); %滤波器阶数N 为整数fprintf('\n Butterworth Filter Order=%2.0f\n',N)OmegaC=Wp/((10^(Rp/10)-1)^(1/(2*N))) %求对应于N 的3db 截止频率[b,a]=u_buttap(N,OmegaC);-----------------------------------------------------------------------------------------------------------------------------------------function [b,a]=imp_invr(c,d,T)[R,p,k]=residue(c,d); %部分分式展开p=exp(p*T); %从模拟到数字极点对应关系sT e z ,部分分式系数相同[b,a]=residuez(R,p,k); %将部分分式的形式变换成多项式之比的形式b=real(b'); %求出数字滤波器系数 a=real(a');----------------------------------------------------------------------------------------------------------------------------------------- 程序:wp=0.6*pi;ws=0.75*pi;Rp=1;As=30;T=1; %定义滤波器参数OmegaP=wp/T;OmegaS=ws/T;[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As);[b,a]=imp_invr(cs,ds,T);[db,mag,pha,w]=freqz_m(b,a);figure(1)subplot(2,1,1);plot(w/pi,mag); %作出滤波器的图形title('digital filter Magnitude Response')axis([0,1,0,1.1])subplot(2,1,2);plot(w/pi,db);title('digital filter Magnitude in DB')axis([0,1,-40,5]);x=wavread('mei.wav')'; %打开语音信号N=length(x); %长度n=0:N-1;w=2*n*pi/N;z=0.02*cos(10*n); %噪音y=x+z;y1=filter(b,a,y); %用滤波器滤波y2=fft(y1); %对滤波后信号做FFT变换sound(y1); %读滤波后信号figure(2)subplot(2,1,1);plot(n,y1) %做滤波后信号的时域波形图title('滤波后信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,1,2); %做滤波后信号的频谱图plot(w/pi,abs(y2));title('滤波后信号频谱')xlabel('频率Hz');ylabel('幅度');时间t 幅值频率Hz幅度-----------------------------------------------------------------------------------------------------------------------------------------4.5 GUI 的函数 1 开语音global x;global fs; global nbits; global w;global N; H={'*.wav'};[x,fs,nbits]=wavread('mei.wav'); y=fft(x);N=length(x); n=0:N-1; w=2*n*pi/N; subplot(2,1,1);plot(n,x) title('原始语音信号时域图'); xlabel('时间t');ylabel('幅值');subplot(2,1,2);plot(w/pi,abs(y));title('原始语音信号频谱')xlabel('频率Hz');ylabel('幅度');点开语音键结果:----------------------------------------------------------------------------------------------------------------------------------------- 2 读语音global fs; global x;sound(x,fs);-----------------------------------------------------------------------------------------------------------------------------------------3 重采样global x;global fs;global nbits;N=length(x);x1=resample(x,1,2);sound(x1,fs/2,nbits);x2=resample(x,1,4);sound(x2,fs/4,nbits);n1=0:N/2-1;n2=0:N/4-1;w1=4*n1*pi/N;w2=8*n2*pi/N;y11=fft(x1);y12=fft(x2);subplot(2,2,1);plot(n1,x1) %8kh重采样语音信号时域图title('8KH重采样语音信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,2,2); %8KH重采样语音信号频域图plot(w1/pi,abs(y11));title('8KH重采样语音信号频域图')xlabel('频率Hz');ylabel('幅度');subplot(2,2,3);plot(n2,x2) %4KH重采样语音信号时域图title('4KH重采样语音信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,2,4); %4KH重采样语音信号频域图plot(w2/pi,abs(y12));title('4KH重采样语音信号频域图')xlabel('频率Hz');ylabel('幅度');点重采样键结果:fs=8000HZ和fs=4000HZ----------------------------------------------------------------------------------------------------------------------------------------- 4 噪音键global w;global N;global fs;global nbits;global z;n=0:N-1;z=0.02*cos(10*n);sound(z,fs,nbits);y2=fft(z);subplot(2,1,1);plot(n,z);axis([0,50,-0.02,0.02]);title('噪音信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,1,2);plot(w/pi,abs(y2));title('噪音信号频谱')xlabel('频率Hz');ylabel('幅度');点噪音键结果:----------------------------------------------------------------------------------------------------------------------------------------- 5 加噪音global x;global fs; global nbits; global w;global N;global z;global y; y1=wavread('mei.wav')';n=0:N-1;y=y1+z;sound(y2,fs,nbits);y3=fft(y2);subplot(2,1,1);plot(n,y);axis([0,50,-0.02,0.02]);title('加噪音信号时域图');xlabel('时间t');ylabel('幅值');subplot(2,1,2);plot(w/pi,abs(y3));title('加噪音信号频谱')xlabel('频率Hz');ylabel('幅度');点加噪音键结果:----------------------------------------------------------------------------------------------------------------------------------------- 6 滤波器global a;global b;A=str2double(get(handles.edit1,'String'));B=str2double(get(handles.edit2,'String'));C=str2double(get(handles.edit3,'String'));D=str2double(get(handles.edit4,'String'));wp=A*pi;ws=B*pi;Rp=C;As=D;T=1;OmegaP=wp/T;OmegaS=ws/T;[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As);[b,a]=imp_invr(cs,ds,T);[db,mag,pha,w]=freqz_m(b,a);subplot(2,1,1);plot(w/pi,mag);title('digital filter Magnitude Response')axis([0,1,0,1.1])subplot(2,1,2);plot(w/pi,db);title('digital filter Magnitude in DB')axis([0,1,-40,5]);点滤波器键结果:----------------------------------------------------------------------------------------------------------------------------------------- 7 滤波global a;global fs;global b;global y;global w;global nbits;global fs;global N;n=0:N-1;y1=filter(b,a,y);y2=fft(y1);sound(y1,fs,nbits); subplot(2,1,1);plot(n,y1)title('滤波后信号时域图'); xlabel('时间t');ylabel('幅值');subplot(2,1,2);plot(w/pi,abs(y2));title('滤波后信号频谱') xlabel('频率Hz');ylabel('幅度');点滤波键结果:----------------------------------------------------------------------------------------------------------------------------------------- 8 输入框的回调函数input = str2num(get(hObject,'String'));if (isempty(input))set(hObject,'String','0')endguidata(hObject, handles);4.6选作部分分帧M文件function f=enframe(x,len,inc)fh=fix(((size(x,1)-len)/inc)+1);f=zeros(fh,len);i=1;n=1;while i<=fhj=1;while j<=lenf(i,j)=x(n);j=j+1;n=n+1;endn=n-len+inc;i=i+1;end----------------------------------------------------------------------------------------------------------------------------------------- 过零率zcrofunction f=zcro(x)f=zeros(size(x,1),1);for i=1:size(x,1)z=x(i,:);for j=1:(length(z)-1);if z(j)*z(j+1)<0;f(i)=f(i)+1;endendend----------------------------------------------------------------------------------------------------------------------------------------- 1、短时平均能量[z,fs,nbits]=wavread('mei.wav');y=enframe(z,400,200);y1=y.^2;energy=sum(y1,2);subplot(2,1,1)plot(z);title('原始信号');xlabel('样点数');ylabel('幅度');subplot(2,1,2)plot(energy);xlabel('帧数');ylabel('短时能量E');样点数幅度帧数短时能量E-----------------------------------------------------------------------------------------------------------------------------------------2、短时平均幅度[z,fs,nbits]=wavread('mei.wav');y=enframe(z,400,200);y1=y.^2;energy=sum(y1,2);figure(1)subplot(2,1,1)plot(z);title('原始信号');xlabel('样点数');ylabel('幅度');subplot(2,1,2)plot(energy);xlabel('帧数'); ylabel('短时能量E');样点数幅度帧数短时平均幅度M-----------------------------------------------------------------------------------------------------------------------------------------3、过零函数[z,fs]=wavread('mei.wav'); y=enframe(z,220,110);zcr=zcro(y); %求过零率 subplot(2,1,1) plot(z);title('原始信号');xlabel('样点数');ylabel('幅度'); subplot(2,1,2) plot(zcr);title('原始信号的过零率');样点数幅度帧数过零次数-----------------------------------------------------------------------------------------------------------------------------------------4、短时自相关[x,fs]=wavread('mei.wav'); s1=enframe(x,100,100); s=s1(4800:5000); e=xcorr(s); N=length(e) n=0:N-1; subplot(3,1,1) plot(n,e);title('短时自相关函数');subplot(3,1,2)s1=enframe(x,400,400);s=s1(5800:6000);e=xcorr(s);N=length(e)n=0:N-1;plot(n,e);title('短时自相关函数');xlabel('帧数');ylabel('短时自相关'); subplot(3,1,3)s1=enframe(x,800,800);s=s1(6800:7000);e=xcorr(s);N=length(e)n=0:N-1;plot(n,e);title('短时自相关函数');xlabel('帧数');ylabel('短时自相关');帧数短时自相关帧数短时自相关帧数短时自相关5 实验结果与分析6 总结参考文献[1] 高西全.数字信号处理(第三版).西安电子科技大学出版社,2008.8[2] 王一世,数字信号处理,北京理工大学出版社.[3] 吴大正. 信号与线性系统分析(第四版). 高等教育出版社,2005.8[4] 陈垚光. 精通MATLAB GUI设计(第二版)电子工业出版社, 2011.1[5] 陈后金. 信号分析与处理实验. 高等教育出版社,2006.8[6] 赵力. 语音信号处理. 机械工业出版社,2009.7[7] 李勇、徐震,MATLAB辅助现代工程数字信号处理,西安电子科技大学出版社.[8] 陈怀琛,数字信号处理教程——Matlab释义与实现 ,电子工业出版社.[9] 韩纪庆、张磊,语音信号处理,清华大学出版社.[10] 胡航,语音信号处理,哈尔滨工业大学出版社.[11] 苏金明、张莲花、刘波,MATLAB工具箱应用,电子工业出版社.[12] 王京辉,语音信号处理技术研究,论文,山东大学.[13] 于俊凤,语音信号的识别和转换研究,学位论文,成都理工大学.[14] Gersho A,Gr R M.Vector quantization and signal Compression Boston,Kluwer Academic Publishers.[15] Q.Zhang,A.Benveniste,WaveletNetworks,IEEETrans,NeuralNetworks.。

相关文档
最新文档