-
EBPSK调制脉冲数据帧串信号的平均模糊函数
2021-03-03 09:07:27结论表明,随机EBPSK调制脉冲数据帧串雷达信号与随机二相码脉冲雷达信号的距离模糊函数类似,即在距离轴上无模糊,而其速度模糊函数则由随机EBPSK调制数据和周期的相参脉冲串共同决定,即在速度轴上呈"梳状"模糊图,其... -
音频信号的滤波加窗分帧及基音周期提取-enframe0613pm.m
2019-08-14 08:22:17音频信号的滤波加窗分帧及基音周期提取-enframe0613pm.m 音频信号的滤波、加窗、分帧及基音周期提取 -
信号分帧的条件
2016-05-26 10:46:41一帧信号至少必须包含2个基本周期以上,才能够显示语音的特性。比如,对于已知人声的音高范围大约在50Hz和1000Hz之间,因此对于一个采样频率,如取采样频率为8000Hz,那么当音高f=50Hz(例如男低音的歌声)时,每...一帧信号至少必须包含2个基本周期以上,才能够显示语音的特性。比如,对于已知人声的音高范围大约在50Hz和1000Hz之间,因此对于一个采样频率,如取采样频率为8000Hz,那么当音高f=50Hz(例如男低音的歌声)时,每个基本周期的点数是fs/f=8000/50=160,因此,每一帧必须至少是320点,若音高是1000Hz(如女高音的歌声)时,每个基本周期的点数是8000/1000=8,因此,每一帧必须包含至少16个点。
每一帧长度也不能太大,太长的分帧无法抓到音频信号的特性随时间而变化的细微现象,同时计算量也会变大。 -
语音信号处理中怎么理解分帧?
2020-11-30 09:10:07从宏观上看,它必须足够短来保证帧内信号是平稳的。 前面说过,口型的变化是导致信号不平稳的原因,所以在一帧的期间内口型不能有明显变化,即一帧的长度应当小于一个音素的长度。 正常语速下,音素的持续时间大约是...
那么一帧有多长呢?帧长要满足两个条件:
从宏观上看,它必须足够短来保证帧内信号是平稳的。
前面说过,口型的变化是导致信号不平稳的原因,所以在一帧的期间内口型不能有明显变化,即一帧的长度应当小于一个音素的长度。
正常语速下,音素的持续时间大约是 50~200 毫秒,所以帧长一般取为小于 50 毫秒。
从微观上来看,它又必须包括足够多的振动周期,因为傅里叶变换是要分析频率的,只有重复足够多次才能分析频率。
语音的基频,男声在 100 赫兹左右,女声在 200 赫兹左右,换算成周期就是 10 毫秒和 5 毫秒。既然一帧要包含多个周期,所以一般取至少 20 毫秒。这样,我们就知道了帧长一般取为 20 ~ 50 毫秒,20、25、30、40、50 都是比较常用的数值,甚至还有人用 32(在程序猿眼里,这是一个比较「整」的数字)。
取出来的一帧信号,在做傅里叶变换之前,要先进行「加窗」的操作,即与一个「窗函数」相乘,如下图所示:
加窗的目的是让一帧信号的幅度在两端渐变到0
。
渐变对傅里叶变换有好处,可以让频谱上的各个峰更细,不容易糊在一起(术语叫做减轻频谱泄漏),具体的数学就不讲了。加窗的代价是一帧信号两端的部分被削弱了,没有像中央的部分那样得到重视。弥补的办法是,帧不要背靠背地截取,而是相互重叠一部分。相邻两帧的起始位置的时间差叫做帧移,常见的取法是取为帧长的一半,或者固定取为
10
毫秒。对一帧信号做傅里叶变换,得到的结果叫频谱,它就是下图中的蓝线:
图中的横轴是频率,纵轴是幅度。频谱上就能看出这帧语音在480
和580
赫兹附近的能量比较强。
语音的频谱,常常呈现出「精细结构」和「包络」两种模式。「精细结构」就是蓝线上的一个个小峰,它们在横轴上的间距就是基频,它体现了语音的音高——峰越稀疏,基频越高,音高也越高。
「包络」则是连接这些小峰峰顶的平滑曲线(红线),它代表了口型,即发的是哪个音。
包络上的峰叫共振峰,图中能看出四个,分别在500
、1700
、2450
、3800
赫兹附近。
有经验的人,根据共振峰的位置,就能看出发的是什么音。对每一帧信号都做这样的傅里叶变换,就可以知道音高和口型随时间的变化情况,也就能识别出一句话说的是什么了。
在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。这个静音切除的操作一般称为VAD,需要用到信号处理的一些技术。要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。分帧操作一般不是简单的切开,而是使用移动窗函数来实现,这里不详述。帧与帧之间一般是有交叠的,就像下图这样:
图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。
分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,声学特征也不止有MFCC这一种,具体这里不讲。至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。
接下来就要介绍怎样把这个矩阵变成文本了。首先要介绍两个概念:音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing Dictionary。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个状态。
语音识别是怎么工作的呢?实际上一点都不神秘,无非是:
第一步,把帧识别成状态(难点);
第二步,把状态组合成音素;
第三步,把音素组合成单词。
如下图所示:
图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧对应S3状态的概率最大,因此就让这帧属于S3状态。
-
语音信号加窗分帧及matlab实现
2020-02-24 19:28:58解释:语音信号是时变信号,浊音的基音周期、清浊音信号幅度和声道参数均随时间变化,发声器官的惯性运动,可以认为具有短时平稳性。帧长10~30ms,交叠分段方式,为了帧之间平滑过渡,保持连续性,帧移/帧长范围在0-...加窗分帧:时域加窗,点乘;频域卷积,减少泄露
解释:语音信号是时变信号,浊音的基音周期、清浊音信号幅度和声道参数均随时间变化,发声器官的惯性运动,可以认为具有短时平稳性。帧长10~30ms,交叠分段方式,为了帧之间平滑过渡,保持连续性,帧移/帧长范围在0-1/2之间。
1. 矩形窗:主瓣宽度小,较高频谱分辨率,但是旁瓣峰值较大,频谱泄露严重
matlab程序:
%时域波形 w=rectwin(61)%矩形窗函数 figure(1)%图1 subplot(121)%图1中共包括1行2列的图形,此为1行1列的图形 plot(w,'k')%'k'表示黑色 xlabel('样本数') ylabel('幅度') %频域波形 w1=fft(w,1024)%对窗函数做1024点的fft w2=w1/(max(w1))%幅度归一化 w3=20*log10(abs(w2))%出来的是双边频谱(数学谱) w=2*[0:1023]/1024%频率归一化,双边频谱的范围[0,2] subplot(122)%图1中1行2列的图形 plot(w,w3,'k') axis([0,1,-100,0])%单边频谱(物理谱),横坐标范围[0,1] xlabel('归一化频率f/fs') ylabel('幅度/dB')
2. 汉明窗:主瓣宽度较宽,大于矩形窗的一倍,但是旁瓣衰减大,频谱泄露优于矩形窗,更平滑的低通特性,更好反映短时信号的频谱特性
matlab程序:
%时域波形 w=hamming(61)%汉明窗函数 figure(1)%图1 subplot(121)%图1中共包括1行2列的图形,此为1行1列的图形 plot(w,'k')%'k'表示黑色 xlabel('样本数') ylabel('幅度') %频域波形 w1=fft(w,1024)%对窗函数做1024点的fft w2=w1/(max(w1))%幅度归一化 w3=20*log10(abs(w2))%出来的是双边频谱(数学谱) w=2*[0:1023]/1024%频率归一化,双边频谱的范围[0,2] subplot(122)%图1中1行2列的图形 plot(w,w3,'k') axis([0,1,-100,0])%单边频谱(物理谱),横坐标范围[0,1] xlabel('归一化频率f/fs') ylabel('幅度/dB')
-
【Matlab系列】语音信号的分帧加窗及其Matlab实现
2019-05-08 22:19:38Date: 2019-5-11【Tag: Outsouring project】 1、参考 语音信号的分帧加窗 什么是窗函数? ...2、语音信号的分帧加窗 ...加窗主要是为了使时域信号似乎更好地满足FFT处理的周期性要求,减少泄漏。Date: 2019-5-11
1、参考
语音信号的分帧加窗
什么是窗函数?
几种常见窗函数
Spectral leakage(谱泄漏)2、语音信号的分帧加窗
语音信号具有短时平稳性。
分帧是为了将无限长的语音信号,分成一段一段的,因为语音信号具有短时平稳性,方便处理,加窗是为了使分帧后的语音信号更加平稳。窗函数主要有矩形窗和汉明窗。加窗主要是为了使时域信号似乎更好地满足FFT处理的周期性要求,减少泄漏。3、Matlab实现(部分)
function varargout = Shiyufenxi(varargin) % SHIYUFENXI MATLAB code for Shiyufenxi.fig % SHIYUFENXI, by itself, creates a new SHIYUFENXI or raises the existing % singleton*. % % H = SHIYUFENXI returns the handle to a new SHIYUFENXI or the handle to % the existing singleton*. % % SHIYUFENXI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in SHIYUFENXI.M with the given input arguments. % % SHIYUFENXI('Property','Value',...) creates a new SHIYUFENXI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Shiyufenxi_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Shiyufenxi_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Shiyufenxi % Last Modified by GUIDE v2.5 07-May-2019 07:50:18 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Shiyufenxi_OpeningFcn, ... 'gui_OutputFcn', @Shiyufenxi_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before Shiyufenxi is made visible. function Shiyufenxi_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Shiyufenxi (see VARARGIN) % Choose default command line output for Shiyufenxi handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Shiyufenxi wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Shiyufenxi_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) %%打开按钮的回调函数 % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename,pathname]=uigetfile({'*.wav','All Wav Files'},'选择语音文件'); if filename ==0 return;%如果没有选择新的文件,则返回 end file=fullfile(pathname,filename);%文件名 [signal,fs]=audioread(file);%读取选择的语音数据 axes(handles.axes1) plot(signal)%显示波形 title('原始语音波形') handles.wavsignal=signal; handles.fs=fs; %Update handles structure guidata(hObject,handles);
4、实验效果图
作者:SoaringLee_fighting
来源:CSDN
原文:https://blog.csdn.net/SoaringLee_fighting/article/details/89853323
版权声明:本文为博主原创文章,转载请附上博文链接!
THE END!
-
MATLAB用倒谱提取语音信号的声音周期
2018-02-28 04:05:561.我想知道为什么要抽帧处理,因为我觉得他设置一个范围要是有用的信号不在呢部分上不是不能提取么 2.设置基音搜索范围是什么意思,这个FS/500和FS/70是什么 3.设置门限,找到峰值位置是什么意思,这个0.08怎么来的 -
中国数字地面播DTMB帧结构介绍
2020-08-17 19:36:27为了实现快速稳定的同步,国标DTMB采用了分级帧结构,它具有周期性,并且与自然时间保持同步。数据帧结构的基本单元为信号帧,信号帧由帧头和帧体两部分组成。超帧定义为一组信号帧。分帧定义为一组超帧。帧结构的... -
帧同步系统的FPGA设计与实现
2021-01-19 22:49:451 引言 数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“帧”进行传输,因此帧...所用的帧同步码为巴克码,巴克码是一种具有特殊规律的非周期序列,其局部自相关函数具有尖锐的单峰特性, -
论文研究-基于遗传算法的剪纸图案创新设计.pdf
2019-09-13 01:57:46实现了玻璃检测中的图像采集与打标分级处理之间的帧同步与版同步,分析了作为同步信号的帧周期信号与版周期信号,判定玻璃切割的落刀信号(版周期信号)具有更高的优先级。该技术研究已经成功应用于工业现场。 -
10 GHz全光帧时钟提取的理论和实验研究
2021-02-13 10:48:22提出了一种新型的10 GHz全光帧时钟提取的提取方案。...实验中,用上述方案对10.075 GHz的帧信号进行了全光帧时钟提取,得到了建立时间为8个信号周期,消失时间为22个信号周期,抖动为2.35 ps的帧时钟信号。 -
【数字语音处理】Part3 语音信号的短时时域分析:短时平均、短时自相关、语音端点检测、基音周期估值
2020-04-08 14:12:22Part3 语音信号的短时时域分析一、帧和加窗的概念二、短时平均能量三、短时平均幅度函数四、短时平均过零率五、短时自相关分析六、基于能量和过零率的语音端点检测七、基音周期估值八、总结 一、帧和加窗的概念 1.短... -
帧同步系统的工作原理及如何基于FPGA实现其设计
2021-01-20 06:27:431、 引言 数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“帧”进行传输,因此...所用的帧同步码为巴克码,巴克码是一种具有特殊规律的非周期序列,其局部自相关函数具有尖锐的单峰特性,这 -
EDA/PLD中的帧同步系统的FPGA设计与实现
2020-11-10 12:35:441 引言 数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“帧”进行传输,因此帧同步...所用的帧同步码为巴克码,巴克码是一种具有特殊规律的非周期序列,其局部自相关函数具有尖锐的单峰特 -
PCI
2018-07-30 16:38:52FRAME#:帧周期信号。Master驱动,表示一次访问的开始和持续时间。 FRAME#无效时,是传输的最后一个数据周期。 IRDY#:Master准备好信号。 TRDY#:Slave准备好信号。 当这两者同时有效时,才能进行完整的数据传输,... -
802.11的beacon帧
2019-09-10 14:49:24Beacon帧是802.11中一个周期性的帧,每隔一段时间就会向外界发出一个Beacon(信标)信号用来宣布自己802.11网络的存在。 概貌如下,下面逐个分析各个字段 MAC header 可以看到MAC header有23 byte Version: 802.11... -
PCI系统总线
2015-01-05 10:33:47FRAME#:帧周期信号。Master驱动,表示一次访问的开始和持续时间。 FRAME#无效时,是传输的最后一个数据周期。 IRDY#:Master准备好信号。 TRDY#:Slave准备好信号。 当这两者同时有效时,才能进行完整的数据... -
Android性能:通过Choreographer检测UI丢帧和卡顿
2018-07-20 11:27:38Android性能:通过Choreographer检测UI丢帧和卡顿 Android系统每隔16ms重绘UI界面,16ms是因为Android系统规定UI绘图的刷新频率60FPS。Android系统每隔16ms,发送一个系统级别信号VSYNC唤起重绘操作。1秒内绘制UI... -
数字信号处理--加窗
2020-09-08 19:36:14而且FFT是在一定假设下完成的,即认为被处理的信号是周期信号。因此,FFT之前会对这一帧数据进行周期扩展。 以CW信号为例,如果选取的这一帧数据不是信号周期的整数倍,则在周期扩展时会存在样点的不连续性,如下图... -
NPDCCH发送周期解析
2019-07-13 22:12:23有时看问题时,需要确认下行NPDCCH是否有漏解周期的情况,手动计算时间稍有麻烦,所以搞了个python脚本来产生...亦即NPDCCH按照周期映射到除了同步信号、MIB、SIB1、SI以外的子帧上。 NPDCCH的参数 NPDCCH 子帧... -
PCI接口
2017-04-05 14:04:59 转载自http://blog.chinaunix.net/uid-24148050-id-139443.html PCI接口 2011-02-25 15:52:22 分类: LINUX ...FRAME#:帧周期信号。Master驱动,表示一次访问的开始和持续时间 -
STM32 四轴无人机设计——遥控器PPM信号
2021-02-19 19:30:531、前言 由于时间原因,我使用的遥控器是直接买的成品,富斯I6x+IA6B接收机,据说是一代神控,富斯的遥控...因为一帧信号最多要2ms,信号周期为20ms,所以理论一次PPM信号可以发送10帧数据,但是由于要确定帧头信号,所 -
python自相关函数提取基音周期_基音周期的提取
2021-01-13 23:04:08基音周期的提取陈晓磊(苏州工业职业技术学院,江苏苏州215104)摘要自相关基音检测算法是语音信号处理的关键技术,算法的效率直接影响了语音信号的实时处理的质量。目前有许多较好的算法提高了基音检测算法的效率。而... -
主板诊断卡编码技术
2013-08-22 20:45:591、00、CO、CF、FF或D1 测BIOS芯片CS有无片选: ... (1)、有片选:换BIOS、测BIOS... (2)、无片选:测PCI的FRAME、测CPU的DBSY ADS#,如不正常则北桥坏、若帧周期信号不正常则南桥坏 2、C0 -
基音周期估计
2015-06-01 19:14:00这是语音信号的数字处理课程的课程作业,这里采用了自相关法对基音周期进行估计。语料采样率:8kHz;量化精度为16bits/sample; 1、 算法描述 本次实验选择了自相关方法对基音周期进行估计。算法主要包括以下几... -
(基于matlab自写代码)语音信号的倒谱分析
2020-07-14 16:55:232.分帧计算语音信号倒谱,并倒谱作FFT并加短时窗。 3.取大于25以上的样值,进行IFFT,得到基音周期的倒谱。 3.运用Levinson-Durbin计算一帧语音信号线形预测系数 4.进行逆滤波处理 5.对逆滤波后的信号进行倒谱... -
红外数据帧格式
2013-07-24 19:50:50但是其基本思想是相同的,即采用不同周期和不同占空比的脉冲分别表示逻辑0及1,只要根据期占空比及脉冲周期进行解析即可得到具体的按键码值。 2、协议种类: 市面上基本上有如下几大类协议: NEC with sim -
论文研究-基于IEEE 802.11a的改进帧同步算法.pdf
2019-09-12 01:41:56帧同步是OFDM的关键技术之一,传统的基于短训练符号周期帧同步算法互相关函数波动范围大。相关函数进行改进,利用互相关区间内所有信号的能量对相关函数进行归一化。通过改进互相关函数,明显减小了自相关函数的波动... -
统计信号处理知识点总结_常用信号特征提取方法总结(完善中...)
2020-12-30 14:46:47供大家参考:时域常见的特征指标有:波形指标:脉冲指标:峭度指标:裕度指标:峰峰值:过零率:短时能量:短时自相关函数:短时平均幅度差:假设x是加窗截断后的信号,短时平均幅度差定义:理论分析:音频具有周期特性... -
短时傅里叶变化分析语音信号
2020-05-15 23:24:55傅里叶是分析线性系统与平稳信号的有力工具,但是语音信号的本质是一个非平稳信号,研究表明可以认为在10毫秒到30毫秒之间认为语音信号平稳,因此利用短时分帧,然后傅里叶变化。 (总结:短时傅里叶变化分析语音...
-
mysqldump导出数据库结构
-
SparkStreaming怎么保存数据到关系型数据库
-
MusicRecorder:录制音乐作品的移动应用程序-源码
-
华为培训5G-上下行解耦.pptx
-
C/C++反汇编解密
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
C# 高级网络编程及RRQMSocket框架详解
-
qtvc混合编程
-
kds:多平台Kotlin 1.3的数据结构库-源码
-
BK2635_DesignKit_V0.2.zip
-
“链”间对话新方式,get!
-
Android ArrayList迭代崩溃
-
MySQL DML 语言(插入、更新与删除数据)
-
YOLOv5初探
-
SparkStreaming对象如何复用
-
World Hydropower Generation 世界水力发电-数据集
-
2021年软考系统规划与管理师-上午历年真题解析视频课程
-
美SEC:数字资产合规将入《2021优先审查事项》,有5大关注点
-
零基础极简以太坊智能合约开发环境搭建并开发部署
-
MySQL 设计基础(数据库概论、初探)