基于MATLAB的语音信号设计

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

语音信号处理及matlab仿真实验总结

语音信号处理及matlab仿真实验总结

语音信号处理及matlab仿真实验总结
语音信号处理是利用数字信号处理技术对语音信号进行分析、处
理和改进的过程。

语音信号是不规则的波形,其包含了很多信息,如
语音的音高、音调、音色、语速、语气等,因此语音信号处理是一项
非常重要的技术。

语音信号处理的一般流程包括语音信号采集、预处理、特征提取、模型建立和应用,其中预处理包括信号增强、降噪、去混响等,特征
提取包括时域特征、频域特征和时频域特征,模型建立包括声学模型
和语言模型等。

为了更加深入地掌握语音信号处理技术,我们进行了一些matlab
仿真实验。

我们首先学习了语音信号的采样和量化过程,并使用
matlab软件对语音信号进行了仿真采样和量化,了解了采样率和分辨
率等概念,还了解了量化噪声的影响。

其次,我们学习了语音信号的基本特征提取技术,并用matlab仿
真实现了时域特征、频域特征和时频域特征的提取,如时域的短时能
量和短时过零率、频域的傅里叶变换和倒谱系数、时频域的小波变换等。

最后,我们学习了基于模型的语音信号处理技术,如基于隐马尔
可夫模型、高斯混合模型、人工神经网络等模型的语音识别、语音合
成等应用,并用matlab进行了相关的仿真实验。

总之,语音信号处理是一项非常重要的技术,它可以在语音识别、语音合成、语音压缩、语音增强等领域得到广泛应用。

通过学习语音
信号处理及matlab仿真实验,我们了解到了它的基本理论和应用方法,并得到了一些实践经验,这对我们今后的学习和工作将具有很大的指
导意义。

毕业论文_基于Matlab的语音信号分析与处理系统设计

毕业论文_基于Matlab的语音信号分析与处理系统设计

毕业论文_基于Matlab的语音信号分析与处理系统设计毕业论文语音信号分析与处理系统设计语音信号分析与处理系统设计摘要语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。

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

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

信号处理是Matlab重要应用的领域之一。

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

最后,本文对语音信号处理的进一步发展方向提出了自己的看法。

关键字:Matlab;语音信号;傅里叶变换;信号处理;The Design of Analysis and Processing Voice SignalAbstractSpeech signal processing is to study the use of digital signal processing technology and knowledge of the voice signal voice processingof the emerging discipline is the fastest growing areas of information science one of the core technology. Transmission of information through the voice of humanity's most important, most effective, most popular and most convenient form of exchange of information..Matlab language is a data analysis and processing functions are very powerful computer application software, sound files which can be transformed into discrete data files, then use its powerful ability to process the data matrix operations, such as digital filtering, Fourier transform, when domain and frequency domain analysis, sound playback and a variety of map rendering, and so on. Its signal processing and analysis toolkit for voice signal analysis provides a very rich feature function, use of these functions can be quick and convenient features complete voice signal processing and analysis and visualization of signals, makes computer interaction more convenient . Matlab Signal Processing is one of the important areas of application.The design of voice-processing software for most of the content are numerous, easy to maneuver and so on, using MATLAB7.0 comprehensive use GUI interface design, various function calls to voice signals such as frequency, amplitude, Fourier transform and filtering, the program interface concise, simple, has some significance in practice.Finally, the speech signal processing further development putforward their own views.Keywords: Matlab, Voice Signal,Fourier transform,Signal Processing目录1 绪论 (1)1.1课题背景及意义 (1)1.2国内外研究现状 ..................................................... 1 1. 3本课题的研究内容和方法 .. (2)1.3.1 研究内容 .....................................................21.3.2 运行环境 (2)1.3.3 开发环境 .....................................................22 语音信号处理的总体方案 (3)2.1 系统基本概述 ......................................................3 2.2 系统基本要求 ....................................................... 3 2.3 系统框架及实现 ..................................................... 3 2.4系统初步流程图 .. (4)3 语音信号处理基本知识 (5)3.1语音的录入与打开 ...................................................5 3.2采样位数和采样频率 ................................................. 6 3.3时域信号的FFT 分析 ................................................. 6 3.4数字滤波器设计原理 ................................................. 6 3.5倒谱的概念 (7)4 语音信号处理实例分析 (7)4.1图形用户界面设计 ...................................................7 4.2信号的采集 ......................................................... 8 4.3语音信号的处理设计 (8)4.3.1 语音信号的提取 ...............................................84.3.2 语音信号的调整 (10)4.3.2.1 语音信号的频率调整 (10)4.3.2.2语音信号的振幅调整 (11)4.3.3 语音信号的傅里叶变换 (12)4.3.4 语音信号的滤波 .............................................134.3.4.1 语音信号的低通滤波 (13)?4.3.4.2 语音信号的高通滤波 .......................................154.3.4.3 语音信号的带通滤波 .......................................154.3.4.4 语音信号的带阻滤波 .......................................164.4 语音信号的输出 (17)5 总结 (18)参考文献 (19)致谢 (19)1 绪论语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。

基于MATLAB语音信号处理去噪毕业设计论文

基于MATLAB语音信号处理去噪毕业设计论文

基于MATLAB语音信号处理去噪毕业设计论文语音信号在实际应用中通常不可避免地受到噪音的干扰,这使得语音信号的处理变得困难。

因此,在语音信号处理领域,去噪技术一直是一个热门的研究方向。

本文将介绍一种基于MATLAB的语音信号处理去噪方法的毕业设计论文。

本文的主要内容分为以下几个部分。

首先,介绍语音信号处理的背景和意义。

在现实生活中,由于外界环境和设备的限制,语音信号往往会受到各种噪音的污染,如背景噪音、电磁干扰等。

因此,开发一种有效的语音信号处理去噪方法具有重要的实际意义。

其次,介绍基于MATLAB的语音信号处理去噪方法。

本文将采用小波降噪方法对语音信号进行去噪处理。

首先,对输入的语音信号进行小波变换,将信号转换到小波域。

然后,通过对小波系数进行阈值处理,将噪声系数置零,从而实现去噪效果。

最后,通过逆小波变换将信号转换回时域,并输出去噪后的语音信号。

接下来,介绍实验设计和结果分析。

本文将使用MATLAB软件进行实验设计,并选取一组含有不同噪声干扰的语音信号进行测试。

通过对不同噪声信号进行处理,比较不同参数设置下的去噪效果,评估提出方法的性能。

最后,总结全文并展望未来的研究方向。

通过本次研究,我们可以看到基于MATLAB的语音信号处理去噪方法在去除噪音方面具有较好的效果,并具有很大的应用潜力。

然而,该方法仍然有改进的空间。

未来的研究可以在算法优化、参数选择和应用场景等方面进行深入研究,进一步提高语音信号处理去噪的效果和性能。

总的来说,本文介绍了一种基于MATLAB的语音信号处理去噪方法的毕业设计论文。

通过对实验结果的分析和对未来研究方向的展望,本文为从事语音信号处理领域的研究人员提供了一定的参考和启示。

课程设计基于MATLAB的语音信号录制采集和分析的程序设计

课程设计基于MATLAB的语音信号录制采集和分析的程序设计

MA TLAB课程设计说明书摘要语音信号的采集与分析技术是一门涉及面很广的交叉科学,它的应用和发展与语音学、声音测量学、电子测量技术以及数字信号处理等学科紧密联系。

该设计主要介绍语音信号的采集与分析方法,通过PC机录制自己的一段声音,运用Matlab提供的函数进行仿真分析,并画出采样后语音信号的时域波形和频谱图,对所采集的语音信号加入干扰随机高斯噪声,对加入噪声的信号进行播放,并进行时域和频谱分析;对比加噪前后的时域图和频谱图,分析讨论采用什么样的滤波器进行滤除噪声。

关键词:语音信号;采集与分析;Matlab目录摘要 (I)1 语音信号的录制 (1)2 语音信号的采集 (3)3 语音信号的分析 (4)3.1语音信号时域分析 (4)3.2语音信号频域分析 (5)4 语音信号的加噪处理 (7)5 滤噪设计分析 (11)6 设计总结 (12)参考文献 (13)附录 (14)1 语音信号的录制为了将原始模拟语音信号变为数字信号,必须经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。

语音信号经过预滤波和采样后,由A/D变换器变换为二址制数字码。

这种防混叠滤波通常与模数转换器做在一个集成块内,因此目前来说,语音信号的数字化的质量还是有保证的。

市面上购买到的普通声卡在这方面做的都很好,语音声波通过话筒输入到声卡后直接获得的是经过防混叠滤波、A/D变换、量化处理的离散的数字信号。

将声卡作为对象处理采集语音信号Matlab将声卡作为对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备(声卡)。

操作时首先要对声卡产生一个模拟输入对象(ai),给ai对象添加一个通道设置采样频率后,就可以启动设备对象,开始采集数据,采集完成后停止对象并删除对象。

实际工作中,我们可以利用windows自带的录音机录制语音文件,图1是基于PC机的语音信号录制过程,声卡可以完成语音波形的A/D转换,获得WAVE文件,为后续的处理储备原材料。

利用Matlab进行语音编解码和语音压缩的指南

利用Matlab进行语音编解码和语音压缩的指南

利用Matlab进行语音编解码和语音压缩的指南引言语音是人类交流和表达的重要工具。

在当今数字化的世界中,对语音进行编解码和压缩是一个热门的研究领域。

本文将介绍如何使用Matlab进行语音编解码和语音压缩。

一、语音编解码语音编解码是将语音信号转换为数字信号并将其还原为声音的过程。

Matlab提供了许多强大的信号处理工具箱,可以用于语音编解码。

1. 读取语音信号在Matlab中,可以使用`audioread`函数读取音频信号。

例如:```matlab[x, fs] = audioread('speech.wav');```其中,x是音频信号,fs是采样率。

2. 语音信号预处理在进行语音编解码之前,通常需要对语音信号进行预处理。

常见的预处理操作包括去噪、语音端点检测和音频增益等。

Matlab提供了许多函数来实现这些操作,如`denoiseSignal`、`vad`和`audiogain`等。

3. 语音信号编码语音信号编码是将语音信号转换为数字信号的过程。

常见的语音编码方法包括线性预测编码(LPC)、自适应差分编码(ADPCM)等。

Matlab提供了`lpcencode`和`adpcmencode`等函数来实现这些编码方法。

4. 语音信号解码语音信号解码是将编码的数字信号还原为语音信号的过程。

对应于编码方法,Matlab提供了相应的解码函数,如`lpcdecode`和`adpcmdecode`。

二、语音压缩语音压缩是减小语音文件大小的过程,同时保持较高质量的声音。

压缩可以通过删除和减少音频信号的冗余信息来实现。

Matlab提供了一些压缩算法和工具箱。

1. 语音信号特征提取在进行语音压缩之前,需要提取语音信号的特征。

常用的特征包括梅尔倒谱系数(MFCC)、线性预测倒谱系数(LPCC)等。

Matlab提供了`mfcc`和`lpcc`等函数用于特征提取。

2. 语音信号压缩算法常见的语音压缩算法包括基于变换的压缩算法(如FFT、DCT)和无损压缩算法(如Huffman编码、LZW编码)等。

实验4基于MATLAB的语音信号LPC分析

实验4基于MATLAB的语音信号LPC分析
数提取环节,还是在模型训练和模型匹配环节都使运算量有所增 加。在特征参数提取环节,要计算一种以上的特征参数。在模型 训练和模型匹配环节,由于组合参数特征矢量的维数较多,使运 算复杂度有所增加。运算量的增加会使系统的识别速度受到影响。 为使运算量问题得到较好的解决,所以可以由LPC参数与语音帧 能量构成组合参数,能够在运算量增加不明显的情况下改进系统 的性能。 语音帧能量是指一帧语音信号的能量,它等于该帧语音样值的平 方和。选取与语音帧能量构成组合参数主要有以下考虑:1)语 音帧能量是语音信号最基本的短时参数之一,它表征一帧语音信 号能量的大小,是语音信号一个重要的时域特征;2)由一帧语 音求出的语音帧能量是一个标量值,与其它参量构成组合参数不 会使原特征矢量的维数明显增加,特征矢量的维数越少,则需要 的运算复杂度越小,另外,获取语音帧能量的运算并不复杂;3) 语音帧能量与LPC参数之间的相关性不大,它们反映的是语音信 号的不同特征,应该有较好的效果。
的波形,预测语音帧波形和它们之间预测误差的波形。图3.2为原始语音帧和预测 语音帧的短时谱和LPC谱的波形
图3.1 原始语音帧、预测语音帧和预测误差的波形
图3.2 原始语音帧和预测语音帧的短时谱和LPC谱的波形
这里我们可以改变线性误差的阶数来观察语音帧的短时谱和LP谱的变化情况,如 图3.3。
图3.3 预测阶数对语音帧短时谱和LPC谱的影响
A = (FTframe1 - FFT_est(1 : length(f1'))) ./ FTframe1 ; % inverse filter A(Z)
通过LPC分析,由若干帧语音可以得到若干组LPC参数,每组参数形成 一个描绘该帧语音特征的矢量,即LPC特征矢量。由LPC特征矢量可以进一步 得到很多种派生特征矢量,例如线性预测倒谱系数、线谱对特征、部分相关系 数、对数面积比等等。不同的特征矢量具有不同的特点,它们在语音编码和识 别领域有着不同的应用价值。

基于Matlab的语音识别系统的设计本科毕业设计

基于Matlab的语音识别系统的设计本科毕业设计

摘要语音识别主要是让机器听懂人说的话,即在各种情况下,准确地识别出语音的内容,从而根据其信息执行人的各种意图。

语音识别技术既是国际竞争的一项重要技术,也是每一个国家经济发展不可缺少的重要技术支撑。

本文基于语音信号产生的数学模型,从时域、频域出发对语音信号进行分析,论述了语音识别的基本理论。

在此基础上讨论了语音识别的五种算法:动态时间伸缩算法(Dynamic Time Warping,DTW)、基于规则的人工智能方法、人工神经网络(Artificial Neural Network,ANN)方法、隐马尔可夫(Hidden Markov Model,HMM)方法、HMM和ANN的混合模型。

重点是从理论上研究隐马尔可夫(HMM)模型算法,对经典的HMM模型算法进行改进。

语音识别算法有多种实现方案,本文采取的方法是利用Matlab强大的数学运算能力,实现孤立语音信号的识别。

Matlab 是一款功能强大的数学软件,它附带大量的信号处理工具箱为信号分析研究,特别是文中主要探讨的声波分析研究带来极大便利。

本文应用隐马尔科夫模型(HMM) 为识别算法,采用MFCC(MEL频率倒谱系数)为主要语音特征参数,建立了一个汉语数字语音识别系统,其中包括语音信号的预处理、特征参数的提取、识别模板的训练、识别匹配算法;同时,提出利用Matlab图形用户界面开发环境设计语音识别系统界面,设计简单,使用方便,系统界面友好。

经过统计,识别效果明显达到了预期目标。

关键词:语音识别算法;HMM模型;Matlab;GUIABSTRACTSpeech Recognition is designed to allow machines to understand what people say,and accurately identify the contents of voice to execute the intent of people.Speech recognition technology is not only an important internationally competed technology,but also an indispensable foundational technology for the national economic development.Based on the mathematical model from the speech signal,this paper analyze audio signal from the time domain,frequency domain proceeding,and discussed the basic theory of speech recognition technology.Five algorithm are discussed:Dynamic Time Warping(DTW)、Rule-based Artificial Intelligence,Artificial Neural Network(ANN),Hidden Markov Model(HMM),HMM combined with ANN.The focus is put in the theoretical studies of Hidden Markov(HMM) model algorithm,and the classical HMM algorithm is improved.Speech recognition algorithm is realized in various programs,this article taking the method is to use Matlab powerful mathematical operation ability to realize the recognition of speech signal isolation. Matlab is a powerful mathematic software with a mass of toolboxes dealing with signal processing. It gives a terrific shortcut to the research of signal processing,especially the wave analysis. We can characterize the sound with key parameters such as intensity, frequency etc. In this paper, hidden Markov model (HMM) recognition algorithm using MFCC (MELfrequency cepstral coefficients) as the main voice characteristic parameters, the establishment of a Chinese digital speech recognition system, including the preprocessing of the speech signal,the extraction of characteristic parameters the training of the recognition template,identifying matching algorithm;the same time,the use of Matlab graphical user interface development environment designed speech recognition system interface,is designed to be simple,easy to use,friendly interface. Besides,to have a simple exploration of the voice recognition is another target.After statistics,recognition result obviously is made out as the expected goal.Key words:Speech recognition algorithm;HMM model;Matlab;GUI目录一、前言 (1)1.1语音识别的发展历史 (1)1.2语音识别研究现状 (1)1.3语音识别系统的分类 (2)1.4语音识别系统的基本构成 (3)1.5语音识别技术难点 (3)1.6语音识别发展前景 (4)二、语音信号分析 (4)2.1语音学知识 (4)2.1.1音素和音节 (5)2.1.2汉语的声调 (5)2.1.3语音信号产生模型 (6)2.2语音信号数字化和预处理 (7)2.2.1数字化 (7)2.2.2预加重处理 (7)2.2.3防混叠滤波 (8)2.2.4加窗处理 (8)2.3语音信号的时域分析 (9)2.3.1短时能量分析 (9)2.3.2短时平均过零率 (11)2.3.3短时自相关函数和短时平均幅度差函数 (12)2.3.4语音端点检测 (13)2.4语音信号的频域分析 (14)2.4.1滤波器组法 (14)2.4.2傅立叶频谱分析 (14)2.5特征参数提取 (15)2.5.1 LPCC倒谱系数 (15)2.5.2 Mel频率倒谱系数 (16)三、语音识别主要算法 (17)3.1动态时间伸缩算法 (17)3.2基于规则的人工智能方法 (18)3.3人工神经网络方法 (19)3.4隐马尔可夫方法 (20)3.5 HMM和ANN的混合模型 (21)四、隐含马尔可夫模型算法 (23)4.1 HMM的基本理论和数学描述 (23)4.2 HMM的三个基本问题及解决算法 (24)4.3 HMM算法的改进 (31)4.4 HMM的结构和类型 (33)4.5 HMM算法实现的问题 (34)五、基于Matlab环境下的语音识别算法实现 (35)5.1识别系统平台介绍 (35)5.2在Matlab中HMM算法的实现 (36)5.2.1端点检测 (36)5.2.2特征参数提取 (36)5.2.3训练和识别 (37)5.3实验结论分析 (38)六、结束语 (39)6.1回顾 (39)6.2展望 (39)七、致谢 (40)参考文献 (40)一、前言1.1语音识别的发展历史作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别技术一直受到各国科学界的广泛关注。

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

指导教师:日期:《数字信号处理》课程设计姓名:院系:电子信息工程系专业:通信工程班级: 092学号: 910705241指导教师:留黎钦2012年 6 月基于MATLAB的语音信号设计(电子信息工程学系指导教师:留黎钦)1.课程设计目的1.了解语音信号的产生、采集,能绘制语音信号的频率响应曲线及频谱图;2.学会用MA TLAB对语音信号进行分析和处理;3.掌握用滤波器去除语音信号噪声的方法,观察去噪前后的语音信号。

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

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

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

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

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

3. 课程设计原理数字滤波器根据其冲激响应函数的时域特性,可分为2种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。

FIR和IIR的滤波原理都是进行卷积,就是对数入信号进行某种计算。

a.利用模拟滤波器设计IIR数字滤波器方法(1)根据所给出的数字滤波器性能指标计算出相应的模拟滤波器的设计指标。

(2)根据得出的滤波器性能指标设计出相应的模拟滤波器的系统函数H(S)。

(3)根据得出的模拟滤波器的系统函数H(S),经某种变换得到对该模拟滤波器相应的。

b.FIR滤波器的窗函数设计法FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。

窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:(1)通过傅里叶逆变换获得理想滤波器的单位脉冲响应h(n)。

d(2)由性能指标确定窗函数W(n)和窗口长度N。

(3)求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。

c.在matlab中本次设计涉及到的几个重要函数(1)采样:[y,fs,nbit]=wavread,返回采样值放在向量y中,fs为采样频率(Hz),nbit为采样位数。

(2)快速傅里叶变换:[Y]=fft(y,N),其中x为有限长序列,N为序列y的长度,Y为序列y的DFT。

(3)数字滤波器的频率响应:[h,w]=freqz(b,a,n),返回数字滤波器的n点复频率响应,b和a是滤波器系数的分子和分母向量;h是复频率响应,w是频率点,n默认为512。

(模拟滤波器的频率响应用函数freqs)。

4.课程设计内容基本要求:(1)录制一段自己的语音信号,并对录制的信号进行采样;(2)画出采样后语音信号的时域波形和频谱图;(3)给定滤波器的性能指标,采用窗函数法或双线性变换设计FIR 滤波器或设计IIR 滤波器,并画出滤波器的频率响应;(4)然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;(5)回放语音信号。

扩展部分:(1)设计GUI 界面进行对该语音处理系统的界面化管理。

(2)实现matlab 界面中的直接录音功能5.详细设计过程与调试分析5.1 语音信号的采集录制原始语音:我们利用Windows 的录音机,录制了一段自己的声音(“同志们,我们一起吃饭吧”,单声道),时间在3s 左右。

接着保存为WAV 格式(存在matlab 软件的work 文件夹下,命名为“chifan ”)。

5.2 原始语音信号的分析利用函数wavread 对语音信号进行采样,并读取语音的相关信息,并通过函数sound 听到采样后自己所录的一段声音,并画出它的时域和频域的图形。

程序如下:fileName='chifan.wav';[y1, Fs, nbits]=wavread(fileName);fprintf('语音 "%s" 的信息:\n', fileName); fprintf('语言长度 = %g 秒\n', length(y1)/Fs); fprintf('取样频率 = %g 取样点/秒\n', Fs); fprintf('解析度 = %g 位元/取样点\n', nbits); sound(y1,Fs);M=length(y1);time=0:1/Fs:(M-1)/Fs; % 时间轴的向量 yf1=fft(y1); figure; subplot(2,2,1);plot(time,y1);axis([0,4,-1.5,1.5]); title('原信号的时域图'); xlabel('时间'); ylabel('幅度'); subplot(2,2,2);plot(0:Fs/(M):Fs*(M-1)/M,abs(yf1)); axis([0,25000,0,1200]); title('原始语音信号频谱'); xlabel('频率'); ylabel('幅度')运行结果:图1 原始信号分析5.3 对语音信号进行加噪处理利用函数awgn 给语音信号加上高斯白噪声,调用sin 函数来单音正弦信号。

通过函数sound 来听到加完噪声后的声音,并画出它的时域和频域的图形。

程序如下:fileName='chifan.wav';[y1, Fs, nbits]=wavread(fileName);fprintf('语音"%s" 的信息:\n', fileName);fprintf('语言长度= %g 秒\n', length(y1)/Fs); fprintf('取样频率= %g 取样点/秒\n', Fs);fprintf('解析度= %g 位元/取样点\n', nbits);M=length(y1);time=0:1/Fs:(M-1)/Fs; % 时间轴的向量g=awgn(y1,20); %给语音信号加上高斯白噪声sound(g,Fs); %回放加噪信号G=fft(g); %对加噪后的语音信号进行DFT变换N=[0.5*sin(2*pi*7000*time)]';%噪声为7kHz的正弦信号y2=y1+N;wavplay(y2,Fs,'async');%播放加噪声后的语音信号yf2=fft(y2);figure;subplot(2,2,1);plot(time,g);axis([0,4,-1.5,1.5]); title('加高斯噪声后语音信号时域图'); xlabel('时间');ylabel('幅度');subplot(2,2,2);plot(0:Fs/(M):Fs*(M-1)/M,abs(G)); axis([0,25000,0,1200]);title('加高斯噪声后语音信号频谱图'); xlabel('频率');ylabel('幅度');subplot(2,2,3);plot(time,y2);axis([0,4,-1.5,1.5]);title('加正弦信号的时域图');xlabel('时间');ylabel('幅度');subplot(2,2,4);plot(0:Fs/(M):Fs*(M-1)/M,abs(yf2)); axis([0,25000,0,1200]);title('加正弦信号的频谱图');xlabel('频率');ylabel('幅度')运行结果:图2 原始信号加噪信号的时域和频谱图5.4 设计数字滤波器和画出其频谱响应5.4.1设计个巴特沃斯低通滤波器设定通带截止频率(fp=1000)、阻带截止频率(fs=3000)、通带波纹系数(rp=0.5)、阻带波纹系数(rs=40)、抽样频率(fc=22050)。

程序如下:%巴特沃斯低通滤波器fp=1000;fs=3000;rp=0.5;rs=40;fc=22050;wp=2*fp/fc;ws=2*fs/fc; %将模拟域转化成数字域。

[N,Wc]=buttord(wp,ws,rp,rs); %估算巴特沃思滤波器的阶数N和3dB截止频率Wc。

[B,A]=butter(N,Wc); %求传输函数的分子和分母多项式的系数。

figure;freqz(B,A,256,fc); %求滤波器的频率响应。

title('巴特沃斯低通滤波器的幅频和相频特性图');运行结果:图3 巴特沃斯滤波器的性能5.4.2用kaiser窗设计个FIR低通滤波器通带截止频率(fp=1000)、阻带截止频率(fs=2000)、通带波纹系数(Ap=1)、阻带波纹系数(As=100)、抽样频率(fc=22050)。

程序如下:%用kaiser窗设计的低通滤波器fp=1000;fc=1200;As=100;Ap=1;fs=22050;wc=2*fc/fs;wp=2*fp/fs; %wc为通带截止频率N=ceil((As-7.95)/(14.36*(wc-wp)/2))+1;%计算kaiser窗所需阶数Nalph=0.1102*(As-8.7); %计算kaiser窗的控制参数alphWin=Kaiser(N+1,alph);hn=fir1(N,wc,Win); %调用kaiser计算低通滤波器的系数向量hnfigure;freqz(hn,1,512,fs); %计算数字滤波器的频率响应title('低通滤波器的幅频和相频特性图');运行结果:图3 FIR低通滤波器性能5.5用滤波器对信号进行滤波滤波处理5.5.1用巴特沃斯滤波器对加噪语音进行滤波处理对语音信号进行滤波处理,测试设计好的滤波器是否对我们的语音信号进行了处理。

这里用的是IIR 滤波器,所以利用函数filter对信号进行滤波。

,即x= filter(b,a,y),x即是滤波后的语音信号,我们将滤波前后的时域波形进行对比,看是否有处理好,并且我们对其进行快速傅里叶变换,即X=fft(signal),目的是对比滤波前后的频域频谱,进一步具体分析我们设计的滤波器是否达到我们的设计要求。

程序如下:%用巴特沃斯低通滤波器进行滤波fileName='chifan.wav';[y1, Fs, nbits]=wavread(fileName);fprintf('语音 "%s" 的信息:\n',fileName); fprintf('语言长度= %g 秒\n', length(y1)/Fs); fprintf('取样频率 = %g 取样点/秒\n', Fs); fprintf('解析度 = %g 位元/取样点\n', nbits); M=length(y1);time=0:1/Fs:(M-1)/Fs; % 时间轴的向量N=[0.5*sin(2*pi*8000*time)]';%噪声为8kHz的正弦信号y2=y1+N;yf1=fft(y1);yf2=fft(y2);figure;fp=1000;fs=3000;rp=0.5;rs=40;fc=22050;wp=2*fp/fc;ws=2*fs/fc; %将模拟域转化成数字域。

相关文档
最新文档