【语音处理】基于matlab音频信号FIR+IIR(高通+低通+带通)滤波器频谱分析【含Matlab源码 1732期】
一、语音处理简介
1 语音信号的特点
通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点:
①在频域内,语音信号的频谱分量主要集中在300~3400Hz的范围内。利用这个特点,可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出,然后按8kHz的采样率对语音信号进行采样,就可以得到离散的语音信号。
②在时域内,语音信号具有“短时性”的特点,即在总体上,语音信号的特征是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。在浊音段表现出周期信号的特征,在清音段表现出随机噪声的特征。
2 语音信号的采集
在将语音信号进行数字化前,必须先进行防混叠预滤波,预滤波的目的有两个:①抑制输入信导各领域分量中频率超出fs/2的所有分量(fs为采样频率),以防止混叠干扰。②抑制50Hz的电源工频干扰。这样,预滤波器必须是一个带通滤波器,设其上、下截止颜率分别是fH和fL,则对于绝人多数语音编译码器,fH=3400Hz、fL=60~100Hz、采样率为fs=8kHz;而对丁语音识别而言,当用于电话用户时,指标与语音编译码器相同。当使用要求较高或很高的场合时fH=4500Hz或8000Hz、fL=60Hz、fs=10kHz或20kHz。
为了将原始模拟语音信号变为数字信号,必须经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。采样也称抽样,是信号在时间上的离散化,即按照一定时间间隔△t在模拟信号x(t)上逐点采取其瞬时值。采样时必须要注意满足奈奎斯特定理,即采样频率fs必须以高于受测信号的最高频率两倍以上的速度进行取样,才能正确地重建波它是通过采样脉冲和模拟信号相乘来实现的。
在采样的过程中应注意采样间隔的选择和信号混淆:对模拟信号采样首先要确定采样间隔。如何合理选择△t涉及到许多需要考虑的技术因素。一般而言,采样频率越高,采样点数就越密,所得离散信号就越逼近于原信号。但过高的采样频率并不可取,对固定长度(T)的信号,采集到过大的数据量(N=T/△t),给计算机增加不必要的计算工作量和存储空间;若数据量(N)限定,则采样时间过短,会导致一些数据信息被排斥在外。采样频率过低,采样点间隔过远,则离散信号不足以反映原有信号波形特征,无法使信号复原,造成信号混淆。根据采样定理,当采样频率大于信号的两倍带宽时,采样过程不会丢失信息,利用理想滤波器可从采样信号中不失真地重构原始信号波形。量化是对幅值进行离散化,即将振动幅值用二进制量化电平来表示。量化电平按级数变化,实际的振动值是连续的物理量。具体振值用舍入法归到靠近的量化电平上。
语音信号经过预滤波和采样后,由A/D变换器变换为二址制数字码。这种防混叠滤波通常与模数转换器做在一个集成块内,因此目前来说,语音信号的数字化的质量还是有保证的。
采集到语音信号之后,需要对语音信号进行分析,如语音信号的时域分析、频谱分析、语谱图分析以及加噪滤波等处理。
3 语音信号分析技术
语音信号分析是语音信号处理的前提和基础,只有分析出可表示语音信号本质特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识别等处理[8]。而且,语音合成的音质好坏,语音识别率的高低,也都取决于对语音信号分桥的准确性和精确性。因此语音信号分析在语音信号处理应用中具有举足轻重的地位。
贯穿于语音分析全过程的是“短时分析技术”。因为,语音信号从整体来看其特性及表征其本质特征的参数均是随时间而变化的,所以它是一个非乎稳态过程,不能用处理乎稳信号的数字信号处理技术对其进行分析处理。但是,由于不同的语音是由人的口腔肌肉运动构成声道某种形状而产生的响应,而这种口腔肌肉运动相对于语音频率来说是非常缓慢的,所以从另一方面看,虽然语音倍号具有时变特性,但是在一个短时间范围内(一般认为在10~30ms的短时间内),其特性基本保持不变即相对稳定,因面可以将其看作是一个准稳态过程,即语音信号具有短时平稳性。所以任何语音信号的分析和处理必须建立在“短时”的基础上.即进行“短时分析”,将语音信号分为一段一段来分析其特征参数,其中每一段称为一“帧”,帧长一般取为10~30ms。这样,对于整体的语音信号来讲,分析出的是由每一帧特征参数组成的特征参数时间序列。
根据所分析出的参数的性质的不同,可将语音信号分析分为时域分析、频域分析、倒领域分析等;时域分析方法具有简单、计算量小、物理意义明确等优点,但由于语音信号最重要的感知特性反映在功率谱中,而相位变化只起着很小的作用,所以相对于时域分析来说频域分析更为重要。
4 语音信号的时域分析
语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时,最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。时域分析通常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等。这种分析方法的特点是:①表示语音信号比较直观、物理意义明确。②实现起来比较简单、运算且少。③可以得到语音的一些重要的参数。④只使用示波器等通用设备,使用较为简单等。
语音信号的时域参数有短时能量、短时过零率、短时白相关函数和短时平均幅度差函数等,这是语音信号的一组最基本的短时参数,在各种语音信号数字处理技术中都要应用[6]。在计算这些参数时使用的一般是方窗或汉明窗。
5 语音信号的频域分析
语音信号的频域分析就是分析语音信号的频域持征。从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法、线件预测法等几种。
二、部分源代码
clear all;
clc;
[filename,filepath]=uigetfile('.wav','Open wav file');
[y,fs,nbits]=wavread([filepath,filename]); %从电脑文件夹选择wav音频文件b=menu('请选择选项','原始信号采样后时域图和频谱图','FIR滤波器','IIR滤波器','退出');
while(b~=4)
if b==1temp=menu('请选择选项','播放原始语音','原始语音时域图','原始语音做FFT变换后频谱图','返回');if temp==1%播放语音sound(y);elseif temp==2%画出原始语音时域图figure(11) plot(y);xlabel('时间(ms)'); ylabel('幅值'); title('原始语音时域图');elseif temp==3%画出原始语音做FFT变换后频谱图Y1=fft(y);Y=abs(Y1);figure(12)plot(Y);xlabel('频率'); ylabel('幅值');title('原始语音做FFT变换后频谱图');elseend
end
if b==2temp=menu('请选择选项','FIR低通滤波器','FIR高通滤波器','FIR带通滤波器','返回');if temp==1%FIR低通滤波器fs=10000;wp=2*pi*1000/fs;wst=2*pi*1200/fs;Rp=1;Rs=100;wdelta=wst-wp;N=ceil(8*pi/wdelta); %取整wn=(wp+wst)/2;[b,a]=fir1(N,wn/pi,hamming(N+1)); %选择窗函数,并归一化截止频率figure(21)freqz(b,a,512);title('FIR低通滤波器');y1=filter(b,a,y);figure(22)subplot(2,1,1)plot(y)title('FIR低通滤波器滤波前的时域波形');xlabel('时间(ms)'); ylabel('幅值'); subplot(2,1,2)plot(y1);title('FIR低通滤波器滤波后的时域波形');xlabel('时间(ms)'); ylabel('幅值'); sound(y1,8000); %播放滤波后的语音信号F0=fft(y1,1024);f=fs*(0:511)/1024;figure(23)y2=fft(y,1024);subplot(2,1,1);plot(f,abs(y2(1:512)));title('FIR带通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)F2=plot(f,abs(F0(1:512)));title('FIR低通滤波器滤波后的频谱');xlabel('频率/Hz');ylabel('幅值');elseif temp==2%FIR高通滤波器fs=22050;wp=2*pi*5000/fs;wst=2*pi*3000/fs;Rp=1;Rs=100;wdelta=wp-wst;N=ceil(8*pi/wdelta); %取整wn=(wp+wst)/2;[b,a]=fir1(N,wn/pi,'high'); figure(24)freqz(b,a,512);title('FIR高通滤波器');y1=filter(b,a,y);figure(25)subplot(2,1,1)plot(y)title('FIR高通滤波器滤波前的时域波形');xlabel('时间(ms)'); ylabel('幅值');subplot(2,1,2)plot(y1);title('FIR高通滤波器滤波后的时域波形');xlabel('时间(ms)'); ylabel('幅值');
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.
[3]宋云飞,姜占才,魏中华.基于MATLAB GUI的语音处理界面设计[J].科技信息. 2013,(02)
【语音处理】基于matlab音频信号FIR+IIR(高通+低通+带通)滤波器频谱分析【含Matlab源码 1732期】相关推荐
- 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...
- 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】
一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...
- 【Matlab水果识别】苹果质量检测及分级系统(带面板)【含GUI源码 1613期】
一.代码运行视频(哔哩哔哩) [Matlab水果识别]苹果质量检测及分级系统(带面板)[含GUI源码 1613期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...
- 【Matlab破损识别】机器视觉+SVM玉米种子破损识别(带面板)【含GUI源码 1651期】
一.代码运行视频(哔哩哔哩) [Matlab破损识别]机器视觉+SVM玉米种子破损识别(带面板)[含GUI源码 1651期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考 ...
- 【Matlab答题卡识别】hough变换答题卡判定与成绩统计(带面板)【含GUI源码 1017期】
一.代码运行视频(哔哩哔哩) [Matlab答题卡识别]hough变换答题卡判定与成绩统计(带面板)[含GUI源码 1017期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 ...
- 【Matlab语音隐写】DCT+DWT音频数字水印嵌入提取【含GUI源码 836期】
一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DCT+DWT音频数字水印嵌入提取[含GUI源码 836期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...
- 【Matlab语音处理】汉宁窗FIR陷波滤波器语音信号加噪去噪【含GUI源码 1711期】
一.代码运行视频(哔哩哔哩) [Matlab语音处理]汉宁窗FIR陷波滤波器语音信号加噪去噪[含GUI源码 1711期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...
- 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】
一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...
- 【Matlab心音信号】EMD心音信号特征提取【含GUI源码 1735期】
一.代码运行视频(哔哩哔哩) [Matlab心音信号]EMD心音信号特征提取[含GUI源码 1735期] 二.matlab版本及参考文献 1 matlab版本 2014a *2 参考文献 [1] 沈再 ...
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
最新文章
- ajax post数组对象,Django:ajax POST发送对象数组无法正常工作的数据
- 12cR2 RAC+RAC+ADG ORA-16854
- 【整理】SAP货币汇率转换
- hanganalyz 性能诊断工具
- JAVA中限制接口流量、并发的方法
- 笔记本电脑投屏到电视_同是无线投屏器,家用级与商用级的区别,除了盘活老电视还能干嘛...
- python调用ping命令_Windows 中通过Python实现ping命令加时间戳
- 计算机网络按信息传输介质的性能来划分,大学计算机基础练习题网络技术.doc...
- 将Win10包含中文的用户名改为英文的,解决Anaconda navigator无法运行jupyter的问题
- 使用Moq框架的各种模拟设置
- system合约源码分析
- 编程序常用英语单词是什么
- openssl 1.1.1b 如何制作SM2公钥(在Ubuntu 19.04下测试通过)
- TOMCAT如何配置域名,可以用本地服务进行测试
- xsmax无法进入dfu模式_iPhone XR/XS/XS Max 如何进入恢复模式或 DFU 模式?
- 主成分分析(PCA)与线性判别分析(LDA)的区别与联系
- 香山处理器仿真环境搭建
- bitcoin简析一
- 关闭2345,搜狐等软件的弹窗
- 运营︱快速提高app日活的方法
热门文章
- linux下iptables实战
- 打印机后台程序没有启动
- android studio: 让项目通过阿里云 maven jcenter 下载依赖资源
- HeadFIrst Ruby 第二章总结 methods and classes
- Sql Server trace flags
- 找到驱动精灵屏幕保护图片
- Atitit 头像文件上传功能实现目录1. 上传文件原理 11.1. 界面ui 11.2. 预览实现 21.3. 保存头像文件php 21.4. 保存文件nodejs java 32
- Atitit Persistence API持久性标准化法总结 目录 1. 持久性对于大多数企业应用程序都非常要害	1 2. 持久化api内容	2 2.1. 一种声明式地执行O-R映射的方式。	2
- Atitit 互联网技术公司防爆指南技术规范标准流程 30个危险物品
- Atitit 语音识别的技术原理