语音信号课设

合集下载

语音信号处理课设说明书

语音信号处理课设说明书

2.3.2 MATLAB 编程
本次课程设计的主要工作量在于 GUI 界面回调函数( callback)的编写,程序界面越 丰富, 编程量越大, 代码也相对越长。 编程中用到与语音信号处理相关的函数有 wavrecord、 wavplay、 wavwrite 等,它们分别实现录音、播放和保存的功能。其他未用到的如 wavread 函数实现语音数据的读取, sound 函数也可以实现语音播放的功能。 关于滤波器这块, filter 函数实现滤波, freqz 函数绘制频率响应,bilinear 函数实现双 线性变换, fir1 函数实现窗函数滤波。由于原理较简单,其他相关函数及其功能可以参见 所附源程序代码及注释。
N 1 1 H d (e jw )*W (e jw ) 或 H (e jw ) h(n)e jwn 。 2 n 0
2.2.2 双线性变换法
双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换 方法,为了克服映射这一缺点,首先把整个 s 平面压缩变换到某一中介的 s1 平面的一条横 带里(宽度为 2 /T ,即从 - /T 到 /T ) ,其次再通过标准变换关系 z =es1T 将此横带变换到 整个 z 平面上,这样就是 s 平面与 z 平面是一一对应的关系,消除了多值变换性,从根本 上消除了频谱混叠现象。 s 平面与 z 平面之间的单值映射关系:
目 录
1 2 技术要求 .................................................................................................................................. - 1 基本原理 .................................................................................................................................. - 1 2.1 2.2 语音信号时域波形和频谱特性 .................................................................................. - 1 窗函数法和双线性变换法 .......................................................................................... - 2 2.2.1 2.2.2 2.3 窗函数法的设计步骤 ....................................................................................... - 2 双线性变换法 ............................................................................................ 3(数字信号处理) 》课程设计说明书

语音信号处理课程设计报告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语音信号处理课程设计

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

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

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

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

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

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

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

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

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

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

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

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

语音信号处理第三版课程设计

语音信号处理第三版课程设计

语音信号处理第三版课程设计选题背景随着人们对音频内容需求的不断增加,语音信号处理技术也得以快速发展。

语音信号处理技术可以用来提高音频质量、进行音频分析,也可以用于自然语言处理、语音识别等领域。

其中,语音信号处理的教学内容涵盖了语音信号的基本处理方法、语音识别技术、语音合成技术等。

本次课程设计旨在深入理解语音信号处理技术的相关原理与实践操作,通过设计与实现一个语音识别系统来巩固所学知识,提高学生的语音信号处理技能。

课程设计内容本次课程设计的主题为“语音识别系统的设计与实现”。

具体安排如下:第一阶段:学习语音信号处理基础知识在第一阶段,学生需要通过阅读教材及相关文献进一步掌握语音信号处理的基础知识,包括数字信号处理、傅里叶变换、语音信号分析等,为后续课程设计作好准备。

第二阶段:构建语音数据库在第二阶段,学生需要用Python编写程序,收集并构建一定规模的语音数据库。

语音数据库应包括多种背景噪声、不同发音口音及方言,并保证数据库声音的清晰度。

要求数据库容量不少于5000条,保证识别结果的准确性与鲁棒性。

第三阶段:语音信号的预处理与特征提取在第三阶段,学生需要对构建好的语音数据库进行信号预处理和特征提取。

信号预处理阶段包括对语音信号进行去噪和归一化等处理;特征提取阶段需要使用MFCC算法提取语音信号的主要特征,生成每个语音样本的特征向量,以供后续的模型训练使用。

第四阶段:模型的选取与训练在第四阶段,学生需要根据实验要求选择适宜的分类模型,并使用Python编写程序,进行模型的训练与调优。

要求分类模型能够有效地区分不同的语音信号,达到识别精度不低于80%。

第五阶段:系统整合与评估在第五阶段,学生需要将各个子模块进行整合,形成一个完整的语音识别系统,并进行实验评估与结果分析。

要求系统能够实现将输入的语音信号转化为相应的文字或文本输出,并达到较高的识别准确率和稳定性。

结语本次课程设计旨在帮助学生深入理解语音信号处理技术的原理及应用,提高学生的实践操作能力和创新思维。

语音信号课程设计实验报告

语音信号课程设计实验报告

《语音信号处理》课程设计报告姓名:指导教师:学科、专业:班级、学号:日期:20 年月日《语音信号处理》课程设计报告一实践项目:1 熟悉matlab环境,掌握matlab基本用法。

2 掌握语音信号的采集方法。

3 掌握语音信号的时域分析方法。

4 理解语谱图与时频分辨率的关系。

5 掌握滤波器的设计及应用。

6 掌握线性预测分析方法。

7 掌握同态分析方法。

二实验器材:计算机(含MATLAB软件)耳麦三设计任务:1熟悉MATLAB,掌握MATLAB的基本用法:1)实验目的:掌握Matlab的基本语法、编程、画图、文件I/O方法等,并能实现具体法和设计较简单的程序。

2)实验过程及结果分析:(1)简述MATLAB的基本功能与用途:(2)MATLAB下矩阵的用法:1)MATLAB中输入矩阵的3条基本原则:在MATLAB下输入一个4*5的矩阵程序:回车后结果:2)MATLAB中的几种常用特殊矩阵:1 n阶单位矩阵:2 m*n的随机矩阵,数值服从0-1:3 m*n的随机矩阵,数值服从正态分布:4 m*n的全零矩阵:5 n阶的对角矩阵:(3)信号处理中常用到的函数:(1)[x,fs,bits]=wavread(‘filenname’)(2)[d]=FFT(x,n)(3)Sound(x,fs,bits):简述wavread, FFT, sound函数的用途,x,fs,bit,n的含义:利用上面函数,编写一段程序,对语音文件(speech_clean_8k.wav)进行数据读取,FFT变换和听取声音,其中设定n=1024.程序:记录x,fs,bits数值:(4)MATLAB下文件I/O功能:1)简述文件I/O功能及其好处::2)文件I/O功能中常用的两个函数命令,简述其用法:3)将上面对speech_clean_8k.wav 语音文件进行处理后在workspace 里得到的变量x 保存成dat 格式的文件,文件名为myfile ,在调用myfile 文件,观察workspace 里变量的情况。

语音信号处理课程设计

语音信号处理课程设计

目录第一章绪论 (1)第二章基本理论 (2)2.1语音信号加窗处理 (2)2.2短时时间域分析和短时频率域分析 (2)2.3 LPC参数估计 (4)第三章语音信号处理GUI设计 (5)3.1语音信号加窗处理设计 (5)3.2短时时间域分析和短时频率域分析 (6)3.3 LPC参数估计 (8)第四章总结 (10)参考文献 (11)吉林工程技术师范学院课程设计论文____________________________________________________________________________________________第一章绪论语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。

通过语言相互传递信息是人类最重要的基本功能之一。

语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。

语言是语言的声学表现,是相互传递信息的最重要手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。

语音信号处理是研究用数字信号处理技术队语音信号进行处理的一门科学,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。

本次课程设计是用 MATLAB 对含噪的语音信号同时在时域和频域进行滤波处理和分析,在 MATLAB 应用软件下设计一个简单易用的图形用户界面(GUI),来解决一般应用条件下的各种语音信号的处理。

本论文主要介绍的是语音信号的简单处理。

笨论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在 matlab7.0 环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。

我们所做的工作就是在 matlab7.0 软件上编写一个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单的语音信号处理的目的.第二章 基本理论2.1语音信号加窗处理由于发音器官的惯性运动,可以认为在一小段时间里(一般为10ms~30ms )语音信号近似不变,即语音信号具有短时平稳性。

《信号与系统》课程设计——语音信号的分析和处理

《信号与系统》课程设计——语音信号的分析和处理第一篇:《信号与系统》课程设计——语音信号的分析和处理《信号与系统》课程设计——语音信号的分析和处理【设计题目】基于时频域的分析方法对语音信号进行分析和处理【设计目标】尝试对语音信号进行时频域分析和处理的基本方法【设计工具】MATLAB 【设计原理】通过MATLAB的函数wavread()可以读入一个.wav格式的音频文件,并将该文件保存到指定的数组中。

例如下面的语句(更详细的命令介绍可以自己查阅MATLAB的帮助)中,将.wav读入后存放到矩阵y中。

y = wavread('SpecialEnglish.wav');对于单声道的音频文件,y只有一行,即一个向量;对于双声道的音频文件,y有两行,分别对应了两个声道的向量。

我们这里仅对一个声道的音频进行分析和处理即可。

注意:.wav文件的采样频率为44.1KHz,采样后的量化精度是16位,不过我们不用关心其量化精度,因为在MATLAB读入后,已将其转换成double型的浮点数表示。

在获得了对应音频文件的数组后,我们可以对其进行一些基本的分析和处理。

可以包括:1、对语音信号进行频域分析,找到语音信号的主要频谱成分所在的带宽,验证为何电话可以对语音信号采用8KHz的采样速率。

2、分析男声和女声的差别。

我们知道男声和女声在频域上是有些差别的,一般大家都会认为女声有更多高频的成分,验证这种差别。

同时,提出一种方法,能够对一段音频信号是男声信号、还是女声信号进行自动的判断。

3、语音与乐器音频的差别。

比较语音信号与乐器音频信号的差别,尤其是在频域上的差别。

4、.wav文件的采样速率为44.1KHz,仍然远远高于我们通常说的语音信号需要的频谱宽度,例如在电话对语音信号的采样中,我们仅仅使用8KHz的采样速率。

对读入的音频数据进行不同速率的降采样,使用wavplay()命令播放降采样后的序列,验证是否会对信号的质量产生影响。

基于语音信号课程设计

基于语音信号课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握语音信号的基本概念、特性和应用;技能目标要求学生能够运用语音信号处理技术进行实际问题的分析和解决;情感态度价值观目标要求学生培养对语音信号处理的兴趣和热情,提高科学探究的精神和团队合作的能力。

通过对学生的学习特点和教学要求的分析,我们将课程目标具体化为以下学习成果:掌握语音信号的基本概念和特性,能够运用语音信号处理技术进行简单的分析和处理,具备初步的科学研究能力和团队合作精神。

二、教学内容根据课程目标,我们选择和了以下教学内容:首先,介绍语音信号的基本概念、特性和应用,使学生对语音信号有一个整体的认识;其次,讲解语音信号处理的基本原理和方法,包括信号处理技术、特征提取和模式识别等,使学生能够理解和运用这些技术;最后,结合实际案例,让学生进行语音信号处理实验,锻炼学生的实际操作能力和科学研究能力。

教学内容的安排和进度如下:第一章,语音信号的基本概念和特性;第二章,语音信号处理的基本原理和方法;第三章,语音信号处理的实际应用。

三、教学方法为了激发学生的学习兴趣和主动性,我们选择了多种教学方法。

首先,采用讲授法,为学生系统地传授语音信号处理的基本知识和原理;其次,采用讨论法,引导学生进行思考和探讨,提高他们的科学探究能力;再次,采用案例分析法,让学生通过分析实际案例,理解和运用语音信号处理技术;最后,采用实验法,让学生动手进行语音信号处理实验,增强他们的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,我们选择了以下教学资源。

首先,教材《语音信号处理》作为学生学习的主要参考书;其次,提供了相关的参考书籍和论文,供学生深入学习和研究;再次,制作了多媒体教学课件,帮助学生更好地理解和掌握知识;最后,准备了实验设备和相关软件,为学生进行实验提供了必要的支持。

五、教学评估为了全面、客观、公正地评估学生的学习成果,我们设计了以下教学评估方式。

语音信号课设

为了巩固所学的数字信号处理理论知识,对信号的采集、处理、传输、显示和存储等系统的掌握和理解,综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

2.课程设计要求(1)学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。

(2)掌握在 Windows 环境下语音信号采集的方法。

(3)掌握数字信号处理的基本概念、基本理论和基本方法。

(4)掌握 MATLAB 设计 FIR 和IIR 数字滤波器的方法。

(5)学会用 MATLAB 对信号进行分析和处理。

3.课程设计内容(1)选择一个语音信号作为分析对象,或录制一段语音信号;(2)对语音信号进行采样,画出采样后语音信号的时域波形和频谱图;(3)利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析;(4)设计FIR和IIR数字滤波器,并对被噪声污染的语音信号进行滤波,画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行比较,分析信号的变化;(5)回放语音信号。

4.1整体设计思路Matlab 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等 , 信号处理是Matlab 重要应用的领域之一。

本文是用 Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析。

整个设计思路的设计原理示意图如图 1 所示:4.2 整体实现过程4.2.1 语音信号的采集我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。

将话筒输入计算机的语音输入插口上,启动录音机。

按下录音按钮,接着对话筒说“语音信号处理课程设计”,说完后停止录音, 文件存储器的后缀默认为. Wav,如果是wma格式或其他格式,可以利用软件转换成wav格式。

语音信号分析的课程设计

语音信号分析的课程设计一、课程目标知识目标:1. 理解并掌握语音信号的基础知识和分析方法,包括语音信号的时域、频域特性。

2. 学习并识别不同语音特征参数,如振幅、频率、共振峰等,及其在语音信号分析中的应用。

3. 掌握语音信号的数字化过程,理解采样、量化等基本概念。

技能目标:1. 能够运用所学知识,使用软件工具对语音信号进行基本分析,如绘制频谱图、语谱图。

2. 培养学生通过分析语音信号,识别和改进语音质量的能力,例如去噪、增强等。

3. 能够设计简单的语音信号处理程序,提高解决实际问题的能力。

情感态度价值观目标:1. 培养学生对语音信号分析的兴趣,激发其探索声音世界的热情。

2. 增强学生的团队协作意识,通过小组合作完成任务,学会相互尊重和沟通。

3. 通过对语音信号处理的学习,引导学生关注其在生活中的应用,如智能助手、语音识别等,培养学生的创新意识和实践能力。

本课程针对高年级学生,结合其已具备的基础知识和抽象思维能力,设计具有挑战性和实用性的教学内容。

课程性质偏重理论与实验相结合,强调在理论学习的基础上,通过实际操作加深理解,达到学以致用的目的。

在教学过程中,注重引导学生主动探究,激发学习兴趣,培养学生解决实际问题的能力。

通过具体的学习成果分解,使学生在知识、技能和情感态度价值观方面得到全面提升。

二、教学内容1. 语音信号基础概念:包括语音信号的物理特性、心理声学基础,介绍声音的产生、传播和接收过程。

教材章节:第一章 语音信号概述内容列举:声音的三要素、声波图、听觉特性。

2. 语音信号的数字化:讲解采样、量化、编码等基本概念,以及语音信号在计算机中的表示方法。

教材章节:第二章 语音信号的数字化内容列举:采样定理、量化方法、编码技术。

3. 语音信号的时频分析:介绍短时傅里叶变换、语谱图等分析方法,以及如何提取语音信号的频域特征。

教材章节:第三章 语音信号的时频分析内容列举:短时傅里叶变换、语谱图、频谱特征提取。

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

目录1.课程设计目的 (1)2.课程设计要求 (1)3.课程设计内容 (1)4.课程设计实现 (2)4.1 整体设计思路 (2)4.2 整体实现过程 (2)4.2.1 语音信号的采集 (2)4.2.2 语音信号的读取 (3)4.2.3 语音信号的频谱分析 (3)4.2.4 噪声信号的构建 (4)4.2.5 加入噪声的语音信号的频谱 (6)4.2.6数字滤波器的设计 (7)4.2.7 滤波器对信号滤波 (12)4.2.8 语音信号回放 (15)5.心得体会 (16)6.参考文献 (17)1.课程设计目的为了巩固所学的数字信号处理理论知识,对信号的采集、处理、传输、显示和存储等系统的掌握和理解,综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

2.课程设计要求(1)学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。

(2)掌握在 Windows 环境下语音信号采集的方法。

(3)掌握数字信号处理的基本概念、基本理论和基本方法。

(4)掌握 MATLAB 设计 FIR 和IIR 数字滤波器的方法。

(5)学会用 MATLAB 对信号进行分析和处理。

3.课程设计内容(1)选择一个语音信号作为分析对象,或录制一段语音信号;(2)对语音信号进行采样,画出采样后语音信号的时域波形和频谱图;(3)利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析;(4)设计FIR和IIR数字滤波器,并对被噪声污染的语音信号进行滤波,画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行比较,分析信号的变化;(5)回放语音信号。

4.课程设计实现4.1整体设计思路Matlab 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波 、傅里叶变换 、时域和频域分析 、声音回放以及各种图的呈现等 , 信号处理是 Matlab 重要应用的领域之一 。

本文是用 Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析。

整个设计思路的设计原理示意图如图 1 所示:4.2 整体实现过程4.2.1 语音信号的采集我们可以利用windows 自带的录音机录制语音文件,进行数字信号的采集。

将话筒输入计算机的语音输入插口上,启动录音机。

按下录音按钮,接着对话筒说“语音信号处理课程设计”,说完后停止录音, 文件存储器的后缀默认为. Wav ,如果是wma 格式或其他格式,可以利用软件转换成wav 格式。

以文件名“1”保存入D:\ MATLAB \ work 中。

图2是基于PC 机的语音信号采集过程: 声音图2.语音采集过程Windows 自带录音机 麦克风声卡滤波 采样 A/D 转换 Wav4.2.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中。

对语音信号“1.wav”进行采样其程序如下:[y,fs,nbits]=wavread('1.wav')结果如下:可知该语音信号的采样频率fs = 8000Hz ,数据位nbits = 8Bit。

4.2.3 语音信号的频谱分析首先画出语音信号的时域波形,然后对语音信号进行频谱分析。

在Matlab 中可以利用函数fft 对信号行快速傅里叶变换,得到信号的频谱图其程序如下:y=wavread('1.wav'); %把语音信号进行加载入Matlab 仿真软件平台中sound(y,fs,nbits); %对加载的语音信号进行回放Y=fft(y); %快速傅里叶变换subplot(2 ,1 ,1),plot(y);title('原始信号波形');subplot(2 ,1 ,2),plot(abs(Y));title('原始信号频谱');程序结果如下图3:图3 语音信号的频谱4.2.4 噪声信号的构建利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。

1)Matlab中的rand函数:均匀分布的随机数或矩阵Y = rand(n)Y = rand(m,n)Y = rand([m n])Y = rand(m,n,p,...)Y = rand([m n p...])Y = rand(size(A))2)rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。

Y = rand(n) 返回一个n x n随机矩阵。

如果n不是数量,则返回错误信息。

Y = rand(m,n) 或Y = rand([m n]) 返回一个m x n的随机矩阵。

Y = rand(m,n,p,...) 或Y = rand([m n p...]) 产生随机数组。

Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。

3)程序如下:N=length(y); %求出语音信号的长度noise=rand(N,2)/20; %噪声信号的函数z=fft(noise); %快速傅里叶变换subplot(2 ,1 ,1),plot(noise);title('噪声信号波形');subplot(2 ,1 ,2),plot(abs(z));title('噪声信号频谱');axis([0,50000,0,100]);图4 噪声信号的频谱4.2.5 加入噪声的语音信号的频谱matlab程序如下:y=wavread('1.wav');N=length(y);noise=rand(N,1)/20;s=y+noise; %噪声信号的叠加Subplot(2,1,1);plot(s);title ('滤波前的时域波形');S=fft(s);Subplot(2,1,2);plot(abs(S));title ('滤波前的频域波形');axis([0,45000,0,400]);图5 加噪语音信号的频谱4.2.6数字滤波器的设计滤波器的设计原理设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。

数字滤波器从实现的网络结构或者从单位冲激响应分类,可以分成无限长单位冲激响应(IIR)数字滤波器和有限长单位冲激响应(FIR)数字滤波器。

MATLAB中提供了几个函数,分别用于实现IIR滤波器和FIR滤波器。

1)卷积函数conv卷积函数conv的调用格式为 c=conv(a,b)该格式可以计算两向量a和b的卷积,可以直接用于对有限长信号采用FIR滤波器的滤波。

2) 函数filter函数filter的调用格式为 y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。

其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。

该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。

3) 函数fftfilt函数fftfilt的调用格式为 y=fftfilt(b,x)该格式是利用基于FFT的重叠相加法对数据进行滤波,这种频域滤波技术只对FIR滤波器有效。

该函数是通过向量b描述的滤波器对x数据进行滤波。

关于用butter函数求系统函数分子与分母系数的几种形式。

[b,a]=butter(N,wc,'high'):设计N阶高通滤波器,wc为它的3dB边缘频率,以为单位,故。

[b,a]=butter(N,wc):当wc为具有两个元素的矢量wc=[w1,w2]时,它设计2N阶带通滤波器,3dB通带为,w的单位为。

[b,a]=butter(N,wc,'stop'):若wc=[w1,w2],则它设计2N阶带阻滤波器,3dB通带为,w的单位为。

如果在这个函数输入变元的最后,加一个变元“s”,表示设计的是模拟滤波器。

这里不作讨论。

为了设计任意的选项巴特沃斯滤波器,必须知道阶数N和3dB边缘频率矢量wc。

这可以直接利用信号处理工具箱中的buttord函数来计算。

[N,wc]=buttord(wp,ws,Rp,As)对于不同类型的滤波器,参数wp和ws有一些限制:对于低通滤波器,wp<ws;对于高通滤波器,wp>ws;对于带通滤波器,wp和ws分别为具有两个元素的矢量,wp=[wp1,wp2]和ws=[ws1,ws2],并且ws1<wp1<wp2<ws2;对于带阻滤波器wp1<ws1<ws2<wp2。

●根据语音信号的特点给出有关滤波器的性能指标:1)低通滤波器的性能指标:Fp=1000Hz,Fs=1200Hz,As=50dB,Ap=1dB;2)高通滤波器的性能指标:Fp=4000Hz,Fs=3500Hz,As=50dB,Ap=1dB;3)带通滤波器的性能指标:Fp1=1200Hz,Fp2=3000HZ,Fs1=1000Hz,Fs2=3200Hz,As=50dB,Ap=1dB;●IIR数字滤波器设计1).对设计性能指标中频率指标进行转换使其满足模拟滤波器原型设计性能指标;2).估计模拟滤波器最小阶数和边界频率。

Matlab提供的函数(buttord,cheb1ord,cheb2ord,ellipord);3).设计模拟低通滤波器原型, Matlab提供的函数(buttap,cheb1ap,cheb2ap,ellipap);4).由模拟低通原型经频率变换获得模拟滤波器, Matlab 提供的函数(lp2lp,lp2hp,lp2bp,lp2bs )5).将模拟滤波器离散化获得IIR 数字滤波器, Matlab 提供的函数(bilinear,impinvar ) 设计流程如图所示:频域指标 双线性变换法脉冲响应不变法图6 IIR 滤波器的间接法设计IIR 低通滤波器:Ft=8000; Fp=1000; Fs=1200; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; fp=2*Ft*tan(wp/2); fs=2*Ft*tan(ws/2);[N,wc]=buttord(wp,ws,1,50,'s'); [b,a]=butter(N,wc,'s'); [bz,az]=bilinear(b,a,0.5); [h,w]=freqz(bz,az); plot(w*8000*0.5/pi,abs(h)); Legend('用butter 设计'); title('IIR 低通滤波器'); grid;设计模拟滤波器 H (s )数字滤波器H (z )FIR数字滤波器设计IIR滤波器设计只能保证其幅频响应满足性能指标,相位特性无法考虑且往往非线性。

相关文档
最新文档