基于MATLAB的语音信号的采集与处理详解

合集下载

Matlab实验——语音信号的录制和处理

Matlab实验——语音信号的录制和处理

基于 MATLAB 的语音信号分析与处理的实验设计1.实验目的综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

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

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

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

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

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

3.实验内容录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用MATLAB 设计一信号处理系统界面。

4、采集系统说明:MATLAB函数;麦克风输入方式MATLAB中提供了强大的数据采集工具箱(DAQ-Data Acquisition Toolbox),可满足控制声卡进行数据采集的要求:%记录声音 wavrecord(n,fs,ch,dtype)%发送向量信号 waveplay(y,fs)%读取wave文件 wavread(file)%写wave文件 wavwrite(file),文件的后缀名为.wav%sound(y,fs) %向扬声器送出音频信号滤波函数说明:采用Kaiser Window FIR:Sampling Frequency: 8192Type:LowpassFc:956.6Beta:5。

基于Matlab语音信号的采集与分析

基于Matlab语音信号的采集与分析

基于MATLAB 的语音信号分析和处理【摘要】:本文通过用三星手机系统自带录音机采集了一段语音,wav格式转换后再Matlab平台上对其进行了时域分析,频谱分析,分析语音信号的特性。

利用函数对采样频率进行控制,比较其波形。

通过对两段铃声(分别为男声、女声)进行分析初步找出男声女声的特点和区别。

应用Matlab平台对录制的语音信号加入噪声,对比加噪前后的语音信号的时域和频域特性,回放加噪语音信号。

【关键词】:语音信号;频域特性 ; 时域特性 ; 滤波器目录一、背景介绍1.1 语音信号的概述1.2 语音信号处理工具的选择二、语音信号的录制采集和分析2.1 语音信号的采集2.2 语音信号的读入与打开2.3 取不同采样频率得出的波形比较三、对男声、女声语音信号特点的分析3.1女声(vfemale.wav)男声(vmale.wav)的时域分析3.2女声(vfemale.wav)男声(vmale.wav)的频域分析四、加噪声与滤波处理分析4.1 高斯白噪声(SNR=30)4.2 单频正弦噪声五、心得与体会一、背景介绍1.1语音信号的概述语言是人类创造的,是人类区别于其他地球生命的本质特征之一。

人类用语言交流的过程可以看成是一个复杂的通信过程,为了获取便于分析和处理的语音信源,必须将在空气中传播的声波转变为包含语音信息并且记载着声波物理性质的模拟(或数字)电信号,即语音信号,因此语音信号就成为语音的表现形式或载体。

1.2语音信号处理工具的选择语音信号的进一步处理分析工作选用了Matlab平台。

Matlab是一种科学计算软件,专门以矩阵的形式处理数据。

Matlab将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,不断完善Matlab产品以提高产品自身的竞争能力Matlab的数据分析和处理功能十分强大,运用它来进行语音信号的分析、处理和可视化相当便捷。

在编程效率、程序可读性、可移植性和可扩充性上Matlab远远优于其它的高级编程语言,而且编程易学、直观,代码非常符合人们的思维习惯。

基于某MATLAB地语音信号采集与处理

基于某MATLAB地语音信号采集与处理

工程设计论文题目:基于MATLAB的语音信号采集与处理姓名:班级:学号:指导老师:一.选题背景1、实践意义:语音信号是一种非平稳的时变信号,它携带着各种信息。

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

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

所以理解并掌握语音信号的时域和频域特性是非常重要的。

通过语音相互传递信息是人类最重要的基本功能之一.语言是人类特有的功能.声音是人类常用工具,是相互传递信息的最重要的手段.虽然,人可以通过多种手段获得外界信息,但最重要,最精细的信息源只有语言,图像和文字三种.与用声音传递信息相比,显然用视觉和文字相互传递信息,其效果要差得多.这是因为语音中除包含实际发音容的话言信息外,还包括发音者是谁及喜怒哀乐等各种信息.所以,语音是人类最重要,最有效,最常用和最方便的交换信息的形式.另一方面,语言和语音与人的智力活动密切相关,与文化和社会的进步紧密相连,它具有最大的信息容量和最高的智能水平。

语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,处理的目的是用于得到某些参数以便高效传输或存储;或者是用于某种应用,如人工合成出语音,辨识出讲话者,识别出讲话容,进行语音增强等.语音信号处理是一门新兴的学科,同时又是综合性的多学科领域,是一门涉及面很广的交叉学科.虽然从事达一领域研究的人员主要来自信息处理及计算机等学科.但是它与语音学,语言学,声学,认知科学,生理学,心理学及数理统计等许多学科也有非常密切的联系. 语音信号处理是许多信息领域应用的核心技术之一,是目前发展最为迅速的信息科学研究领域中的一个.语音处理是目前极为活跃和热门的研究领域,其研究涉及一系列前沿科研课题,巳处于迅速发展之中;其研究成果具有重要的学术及应用价值.数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。

基于MATLAB的语音信号的采集与分析

基于MATLAB的语音信号的采集与分析

基于MATLAB的语音信号的采集与分析摘要:我们通过学习使用MA TLAB仿真软件实现语音信号分析,加深对信号与系统这门课程所学习内容的理解,锻炼自学能力和动手能力。

我们通过电脑的声卡采集声音信号,借助已有的知识和MATLAB对采集的声音信号进行时域波形和频域频谱的显示,研究男女声信号的差别,通过查找资料提取声音信号的基音频率,并通过大量测试确定门限值来自动判别男女声信号,最后对信号进行降采样处理并播放,重新绘制频谱图分析,验证抽样定理。

关键词:MA TLAB仿真、频谱分析、基音频率、降采样、抽样定理。

1.音频信号的采集我们所要分析的语音信号需要自行采集,所以信号分析的第一步就是采集音频信号。

实现音频信号的采集最简单的办法就是通过电脑的声卡直接进行采集,这样采集到的音频信号虽然已经被转化成了数字量存储在电脑中,但通过查询我们了解到电脑录音所使用的采样频率是为44100Hz,完全保证了人类耳朵能听到所有声音频率分量的无失真采集,如果通过MA TLAB软件采集还能够调节采样频率,所以能够完全满足我们实验的要求。

1.1使用MATLAB采集语音信号通过上网查询,我们了解到MATLAB有自带的音频信号采集函数audiorecord(),通过它可以在程序运行时即时采集音频信号进行存储并处理,并且可以通过改变输入参数来改变采样频率,可以直接模拟降采样的过程,直观地验证抽样定理。

但鉴于我们需要重复进行试验和演示,即时采集信号显得繁琐且不必要,而且会增加我们非界面化编程的难度,所以我们放弃了这种方法。

1.2使用电脑录音机采集语音信号通过电脑自带的录音机软件可以实现更简单的音频信号采集操作,虽然采样频率不可调节,但其固有的采样频率完全满足了我们对所采集信号的要求,可以通过MATLAB的降采样处理的到较低采样频率的信号。

这样采集的音频信号会直接以文件的形式存储在电脑中,方便我们随时进行调用,方便分析与演示,所以我们决定采用这种方式实现语音信号的采集。

matlab语音信号采集与处理

matlab语音信号采集与处理

matlab语音信号采集与处理Matlab是一种功能强大的数学软件,特别适合音频信号的处理和分析。

本文将介绍Matlab如何用于音频信号采集和处理的方法。

1. 音频信号采集Matlab可以在Windows和Mac OS X操作系统上直接访问音频硬件,比如麦克风。

Matlab的音频输入功能允许用户在Matlab中直接访问音频硬件,并处理输入的信号。

Matlab提供了许多函数和工具箱,方便用户采集和处理音频信号。

可以使用Matlab 的命令窗口和MATLAB代码框架,采集音频信号数据并保存为.mat文件。

以下是在Matlab中实现音频采集的示例代码:%% 定义音频采样率Fs和采样时间TFs = 8000; % HzT = 2; % s%% 创建一个录音器对象recorderrecorder = audiorecorder(Fs, 16, 1);%% 开始录制音频disp('开始录制音频...');recordblocking(recorder, T);%% 将信号保存为.mat文件disp('将信号保存为.mat文件...');filename = 'audioData.mat';save(filename, 'audioData', 'Fs');在这个示例代码中,定义音频采样率Fs和采样时间T。

开始录制音频,使用recordblocking函数,它采样时间为T。

使用getaudiodata函数获取录音器对象recorder的音频数据。

最后,使用save函数将音频数据保存为.mat文件。

Matlab是一种强大的工具,可用于处理和分析音频信号,例如过滤,时域和频域分析,频谱分析和语音识别等。

%% 加载.mat文件,分别为音频数据audioData和采样率Fsload('audioData.mat');%% 频谱分析disp('进行频谱分析...');N = length(audioData);xf = fft(audioData);Pxx = 1/(Fs*N) * abs(xf).^2;f = linspace(0, Fs/2, N/2+1);%% 滤波器设计disp('设计一个50Hz低通滤波器...');fc = 50; % HzWn = fc/(Fs/2);[b,a] = butter(4, Wn, 'low');%% 信号滤波disp('低通滤波信号...');y = filter(b, a, audioData);%% 绘图figure();subplot(2,1,1);plot(audioData);title('原始信号');xlabel('时间(s)')ylabel('幅值')在这个示例代码中,首先使用load函数加载以前保存的音频数据,分别为音频数据audioData和采样率Fs。

基于Matlab的声音信号采集与分析处理

基于Matlab的声音信号采集与分析处理

文章编号:100622475(2005)0620091202收稿日期:2004209213作者简介:陈家焱(19792),男,江苏泗洪人,华东理工学院机电系助教,硕士研究生,研究方向:机电一体化。

基于Matlab 的声音信号采集与分析处理陈家焱,陈冬娇,张达响(东华理工学院机电系,江西南昌 330013)摘要:介绍了利用Matlab 软件采集与处理声音信号的方法,并结合蛋壳破损声音检测的应用实例,深入地分析了声音信号采集与处理的Matlab 实现。

关键词:声音信号采集;Matlab ;频谱分析中图分类号:TP391.42 文献标识码:ACollecting and Processing of Sound Signal with MatlabCHE N Jia 2yan ,CHE N D ong 2jiao ,ZH ANG Da 2xiang(Mechanical &E lectrical Engineering Department ,East China Institute of T echnology ,Nanchang 330013,China )Abstract :The method of collecting and processing of s ound signal with Matlab s oftware is introduced in this paper ,then ,a case of using s ound signal to detect crack eggs is combined for deeply analyzing its application.K ey w ords :collecting of s ound signal ;Matlab ;analyzing of frequency0 引 言声音信号的采集与分析处理在工程应用中是经常需要解决的问题,如何实时采集声音信号并对其分析处理,找出声音信号的特征在科学研究中是一项非常有意义的工作。

基于MATLAB的语音信号采集与处理.

基于MATLAB的语音信号采集与处理.

基于MATLAB的语音信号采集与处理.
MATLAB是一种非常有用的工具,可以用于语音信号的采集和处理。

语音信号的采集和处理对于语音识别、音频转换和人机交互等领域非常重要。

MATLAB提供了许多工具和函数进行语音信号的采集和处理。

语音信号的采集可以通过外部设备实现,如麦克风或录音设备。

MATLAB可以通过音频输入功能进行语音信号的采集和处理。

该功能提供了多个采样率和位深度设置,可以按照需要进行设置。

采集的语音信号可以通过MATLAB的图形用户界面进行实时显示和处理。

MATLAB提供了很多工具和函数进行语音信号的处理,如语音分析、信号过滤、音量调整和时域和频域分析等。

MATLAB的语音信号处理工具箱提供了很多预处理和分析函数,可以进行预处理、语音识别、特征提取等操作。

这些工具和函数可以帮助开发人员更好地理解和分析语音信号,提高语音识别的准确性和鲁棒性。

MATLAB还提供了图形用户界面(GUI)、应用程序接口(API)、命令行和脚本等方式进行语音信号处理。

GUI可以方便地进行交互式处理和调试,API可以方便地集成到其他应用程序中,命令行和脚本可以进行批处理和复杂的操作。

MATLAB的语音信号处理工具还可以与其它工具箱,如数字信号处理工具箱和统计学工具箱进行整合,以开发更强大和可靠的语音处理应用程序。

基于MATLAB的语音信号分析与处理研究

基于MATLAB的语音信号分析与处理研究

基于MATLAB的语音信号分析与处理研究一、引言语音是人类最基本的沟通方式,随着科技的进步,语音信号分析与处理也变得越来越重要。

MATLAB作为一种常用的科学计算软件,具有强大的信号处理功能,在语音信号分析与处理领域有着广泛的应用。

本文将对基于MATLAB的语音信号分析与处理进行研究。

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

例如,MATLAB中的wavread函数可以读取.wav格式的语音文件,audioplayer函数可以播放语音信号,fft函数可以进行快速傅里叶变换,spectrogram函数可以绘制语音信号的谱图等等。

基于MATLAB的语音信号处理可以包括语音信号的去噪、分析、特征提取、分类等多个方面。

其中,语音信号的去噪是一项重要的任务。

在语音信号采集过程中,由于外部环境噪声的干扰,语音信号的质量会受到影响。

MATLAB可以利用卷积和滤波等技术进行去噪,提高语音信号的质量。

语音信号的分析是指对语音信号的基本参数进行测量,例如语音信号的时域、频域、能量、频谱等。

MATLAB中可以通过波形图、频谱图、谱密度图等方式对语音信号进行分析。

特征提取是语音信号处理中的重要环节,通过对语音信号的特征提取,可以为后续的分类工作奠定基础。

MATLAB中常用的语音信号特征包括倒谱系数、线性预测系数、功率谱密度等。

三、基于MATLAB的语音信号处理的应用案例1.基于MATLAB的语音识别系统语音识别技术是近年来发展迅速的一项技术。

可以通过语音识别技术实现语音指令控制、语音输入等功能。

基于MATLAB的语音识别系统可以通过对语音信号的分析、特征提取、分类等工作实现。

在语音识别系统中,广泛应用了HMM(隐马尔可夫模型)和GMM(高斯混合模型)等模型。

2.基于MATLAB的语音合成系统语音合成技术是将文本转换为语音的一种技术,可以实现语音合成、语音替换等功能。

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

数字信号处理课程设计题目:基于MATLAB的语音信号的采集与处理学院:皖西学院专业:通信工程班级:通信1001班学号:2010013461 2010013494姓名:刘敏纵大庆指导教师:何富贵摘要:本次课程设计题目为<<基于MATLAB的语音信号的采集与处理>>。

首先我们利用计算机上的录音软件获得语音信号,然后利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号!1.背景2. 设计目的 (2)3. 设计原理 (2)4. 设计过程 .......................................... ,,, 35. 实验代码及结果 (4)5.1 语音信号的采集 (4)5.2 语音信号加噪与频谱分析 ..................................... ,,,, 7 5.3 巴特沃斯滤波器的设计 .. (9)5.4 比较滤波前后语音信号波形及频谱 (10)6. 收获与体会 (12)参考文献 (13)1. 引言数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。

它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。

具有灵活、精确、抗干扰强、度快等优点。

数字滤波器,是数字信号处理中及其重要的一部分。

随着信息时代和数字技术的发展,受到人们越来越多的重视。

数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。

数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR, Finite Impulse Response)滤波器和无限冲激响应(IIR,Infin ite Impulse Resp on se) 滤波器。

FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H (z)在z= R处收敛,极点全部在z = 0处(因果系统),因而只能用较高的阶数达到高的选择性。

FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变,这是很好的性质。

FIR数字滤波器是有限单位脉冲响应有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。

FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐[1]。

IIR滤波器采用递归型结构,即结构上带有反馈环路。

IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。

同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯滤波器等。

2. 设计目的本次课程设计的课题为《基于MATLAB的语音信号采集与处理》,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟。

MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。

由于信号与系统课程的许多内容都是基于公式演算,而MATLABt助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。

例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。

MATLA雎信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。

数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLAB 进行信号处理领域的各种分析和实际应用打下基础。

3. 设计原理利用MATLAB寸语音信号进行分析和处理,采集语音信号后,利用MATLAB^件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。

语音信号的“短时谱”对于非平稳信号,它是非周期的,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。

如果利用加窗的方法从语音流中取出其中一个短断,再进行傅里叶变换,就可以得到该语音的短时谱。

MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。

由于信号与系统课程的许多内容都是基于公式演算,而MATLA借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。

例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。

MATLA在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。

数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLA进行信号处理领域的各种分析和实际应用打下基础[3]。

滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。

随着MATLA软件及信号处理工具箱的不断完善,MATLA很快成为应用学科等领域不可或缺的基础软件。

它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。

利用MATLA中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计巴特沃斯滤波器,并对被噪声污染的语音信号进行滤波,对滤波前后信号进行时域分析。

4. 设计过程基于声卡进行数字信号的采集。

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

按下录音按钮,对话筒说话,说完后停止录音。

要保存文件时,利用了计算机上的A/D转换器,把模拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过D/A转换器,把保存的数字数据恢复为原来的模拟的声音信号。

在Matlab 软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量x1,同时把x1的采样频率fs=22050Hz和数据位Nbits=16Bit放进了MATALB 的工作空间。

然后通过freqz函数绘制原始语音信号的频率响应图。

接着对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号进行快速傅里叶变换,得到信号的频谱图。

语音信号加噪与频谱分析在Matlab中人为设计一个固定频率5500Hz的噪声干扰信号,噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=[Au*sin(2*pi*5500*t)], 给出的干扰信号为一个正弦信号,针对上面的语音信号,采集了其中一段。

再对噪音信号进行频谱变换得到其频谱图•最后通过函数将原信号与噪声信号叠加在一起构成加噪的语音信号,采集他的加噪信号,接着对其进行fourier变换,得到加噪信号的频谱图,最后设计一个高通滤波器,对加噪的信号进行滤波处理,得到的信号与原始信号进行比较!5. 实验代码及结果5.1语音信号的采集源程序为:fs=22050; %语音信号采样频率为22050x仁wavread( 'D:\MATLAB\bin\zx.wav' ); %读取语音信号的数据,赋给变量x1sou nd(x1,22050); %播放语音信号y1=fft(x1,1024); %对信号做1024 点FFT 变换f=fs*(0:511)/1024; %将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给fPlot(x1); %做原始语音信号的时域图形图5-1 :语音信号的采集通过freqz函数绘制原始语音信号的频率响应图5-2。

fs=22050; %语音信号采样频率为22050x仁wavread( 'D:\MATLAB\bin\zx.wav' ); %读取语音信号的数据,赋给变量x1 sou nd(x1,22050); %播放语音信号y仁fft(x1,1024); %对信号做1024点FFT变换f=fs*(0:511)/1024; °/将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给fFreqz(x1); 淞制原始语音信号的频率响应图频率11可应图图5-2 :原始语音信号的频率采样5mpj gpn'Fs's5100.2 D.3 0.4 0.5 0.6 0.7 C.8 0.9 1Nornn^lized Frequency fx-ji rad/s^mple)0.2 0..3 04 05 0.6 0.7 08 09 1Normalized Frequency (xn rad/sample)(⑷$?p)①如然后对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图5-3。

fs=22050; %语音信号采样频率为22050x1=wavread( 'D:\MATLAB\bin\zx.wav' ); %读取语音信号的数据,赋给变量x1 sou nd(x1,22050);%播放语音信号y1=fft(x1,1024);%对信号做1024点FFT变换f=fs*(0:511)/1024;%将0到511,步长为1的序列的值与fs相乘并除以1024的值, 赋值给fsubplot(2,1,1);%创建两行一列绘图区间的第1个绘图区间plot(abs(y1(1:512)));%做原始语音信号的FFT频谱图title('原始语音信号FFT频谱');subplot(2,1,2);plot(f,abs(y1(1:512))); %abs是绝对值,plot是直角坐标下线性刻度曲线title('原始语音信号频谱’);图5-3 :原始信号的FFT变换5.2语音信号加噪与频谱分析fs=22050; 嘶音信号采样频率为22050x1=wavread( 'D:\MATLAB\bi n\zx.wav' ); %渎取语音信号的数据,赋给变量x1f=fs*(0:511)/1024; %各0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给ft=0:1/fs:(length(x1)-1)/fs; %各0到x1的长度减1后的值除以fs的值,且步长为1/fs的值,的序列的值,赋予tAu=0.005;d=[Au*si n( 2*pi*5500*t)]: x2=x1+d; sou nd(x2,22050); y1=fft(x1,1024); y2=fft(x2,1024); figure(4); plot(t,x2);%故加噪后的信号时域title('加噪后的信号’);%噪声幅值%所加的噪声是正弦信号 %将正弦信号噪声加在语音信号上 %播放语音信号%对信号y1做1024点FFT 变换 %对信号y2做1024点FFT 变换 %创建图形窗1图5-4 :加噪声后的语音信号加噪后的信号ylabel('频率响应幅度’) title( 'Butterworth' )5-3 :巴特沃斯滤波器的设计:wp=0.25*pi; ws=0.3*pi; Rp=1; Rs=15; Fs=22050; Ts=1/Fs;wp1=2/Ts*ta n(wp/2); ws1=2/Ts*ta n(ws/2);[N,W n]=buttord(wp1,ws1,Rp,Rs, Butterworth低通滤波器的最小阶数[Z,P,K]=buttap(N); [Bap,Aap]=zp2tf( Z,P,K); [b,a]=lp2lp(Bap,Aap,Wn); 止频率[bz,az]=bili near(b,a,Fs);字滤波器的转换(模拟转换为数字) [H,W]=freqz(b z,az); figure(6)plot(W*Fs/(2*pi),abs(H)) 应曲线 gridxlabel('频率/ Hz')%通带截止频率 %阻带截止频率 %通带最大衰减(db ) %阻带最大衰减(db )%将模拟指标转换成数字指标 %将模拟指标转换成数字指标 's' );%选择滤波器的最小阶数(估算得到N 和3dB 截止频率 Wc )%创建Butterworth低通滤波器原型%将零极点增益转换为普遍分子,分母 %将普遍的分子和分母转换为以 Wn 为截%用双线性变换法实现模拟滤波器到数%求频率响应%绘制Butterworth 低通滤波器频率响%添加图格Butterworth图5-5 :巴特沃斯滤波器5-4比较滤波前后语音信号波形及频谱[N,Wn]=buttord (wp1,ws1,Rp,Rs, 's' ); %选择滤波器的最小阶数(估算得到Butterworth低通滤波器的最小阶数N 和3dB 截止频率Wc )009 8 7 o.ao.B 5 o.o.- - - - _ o4 3 2 1 0o.cl.ao..sswp=0.25*pi; ws=0.3*pi; Rp=1; Rs=15; Fs=22050; Ts=1/Fs; wp1=2/Ts*tan (wp/2);ws1=2/Ts*tan (ws/2);%通带截止频率 %阻带截止频率 %通带最大衰减(db ) %阻带最大衰减(db )%将模拟指标转换成数字指标%将模拟指标转换成数字指^□0060008000 WOOD 12000频率I Hz%创建Butterworth 低通滤波器原型 %将零极点增益转换为普遍分子,分母 %将普遍的分子和分母转换为以 Wn 为截%用双线性变换法实现模拟滤波器到数 %求频率响应%绘制Butterworth 低通滤波器频率响 %添加图格%利用上面已做好的滤波器 (已bz 和azf1%创建两行一列绘图区间的第1绘图区间 %做加噪后的信号时域图形%创建两行一列绘图区间的第 2绘图区间[Z,P,K]=buttap(N); [Bap,Aap]=zp2tf( Z,P,K); [b,a]=lp2lp(Bap,Aap,Wn); 止频率[bz,az]=bili near(b,a,Fs);字滤波器的转换(模拟转换为数字) [H,W]=freqz(b z,az); figure(6)plot(W*Fs/(2*pi),abs(H)) 应曲线 gridxlabel('频率/ Hz') ylabel('频率响应幅度’)title( 'Butterworth' ) f1=filter(bz,az,x2);为特征的滤波器)对figure(7) subplot(2,1,1) plot(t,x2); title('滤波前的时域波形’); subplot(2,1,2) plot(t,f1); title('滤波后的时域波形’);x2信号进行滤波,赋值给图5-6:滤波前后图形比较通过对比分析可知,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化,在3000-6000HZ之间的信号消失,出现0-1000和7000-8000之间的信号。

相关文档
最新文档