zerocrossrate
讨论二阶导数过零率
语法
描述
zerocrossrate (___)
没有输出参数的阴谋率
沿着y设在沿着数量和相应的窗口x设在。如果窗口长度等于完整的信号,那么该函数块窗户沿的长度x设在和十字路口中间的窗口。
例子
计数信号的零交叉
考虑一个向量的交替的迹象。图数据。
x = [1 1 1 1 1 1 1 1 1 1];情节(x)
计算的零交点速度x
。
r = zerocrossrate (x)
r = 0.9500
使用第三输出参数找到口岸发生的地点。情节x
和零交点位置。函数返回一个索引在下次样品在穿越之后,不一定准确的交叉位置。第一个示例是标记为一个交叉点,因为函数认为的初始状态x
默认为零。
[~,~,指数]= zerocrossrate (x);情节(x)在情节(x(指标),‘*’)举行从
计算的零交点速度x
使用比较法。率不同于使用差分法计算值。
rC = = zerocrossrate (x)方法“比较”)
rC = 0.9000
计算的零交点速度x
再次使用差分法和零指定为正数。速度等于使用比较法计算值。
rZ = zerocrossrate (x, ZeroPositive = 1)
rZ = 0.9000
现在指定的初始状态x
作为1
。速度等于前面的结果。
国际扶轮= zerocrossrate (x, InitialState = 1)
国际扶轮= 0.9000
计数水平过境点的温度数据
加载一组温度在摄氏度每小时在波士顿洛根机场为整个月1月,2011年。创建一个时间表
和使用调整时间
将数据聚合到日常的意思。
负载bostempt =小时(一24 * 31)';TT =时间表(t, tempC);rTT =调整时间(TT,“每天”,“的意思是”);
数的天数穿过月平均温度。图的数据,包括一条水平线的月平均温度可视化口岸的发生。
avg =意味着(TT.tempC)
avg = -1.3007
[~,计数]= zerocrossrate (rTT,水平= avg)
数= 9
情节(小时(rTT.t / 24), rTT.tempC) yline (avg)包含(2011年1月1日以来的时间(天))ylabel (“每日平均温度(\ circC)”)轴紧
识别语音浊音和清音的零交叉使用
语音特征可以作为有声的或无声的笑。表达了演讲中,如元音、声带振动时发生。在无声的演讲,如大多数辅音,声带不振动。您可以使用零交叉分类地区浊音和清音的音频信号。
一个音频信号加载到MATLAB®工作区。的声音说,“橡树强,也给阴影”。
(y, fs) = audioread (“oak.m4a”);%,类型soundsc (y, fs)
在44.1 kHz信号采样。计算零点交叉率为10 ms windows使用比较法。
赢得= f * 0.01;率= zerocrossrate (= y, WindowLength =赢,方法“比较”);
情节率
每段交叉率形象化。言论表示预计将有一个交叉率低,而清音预计将有交叉率高。
情节(率)
使用一个阈值0.1
对浊音和清音区分段。创建一个signalMask
对象有两个类别(“无声”和“表达”)和情节感兴趣的区域(roi)。比较区域语音浊音和清音的每个口语的位置。
IBM®沃森演讲文本API和音频工具箱™软件可以用来提取文字从一个音频文件。负载Transcription.mat
进入工作区。标记信号集包含音频信号,ROI限制,为每个口语和标签。有关详细信息,请参见标签口语单词音频信号。显示情节上的口语词汇。
h = 0.1;idu =找到(率> h);idu (1:2) = [];vi = [(idu-1)诱导器]*赢;m = sigroi2binmask (vi、长度(y));掩码= signalMask (= [[m ~ m],类别“无声”“表示”),SampleRate = fs);plotsigroi(面具,y)负载转录ln = getLabelNames (transcribedAudio);v = getLabelValues (transcribedAudio 1 ln);v。值=分类(v.Value v.Value);RL = v.ROILimits;六世= v.Value;持有在文本(意思是(RL, 2), -0.7 *(大小(重要的)),六世,HorizontalAlignment =“中心”,…字形大小= 11,FontWeight =“大胆”)举行从
讨论二阶导数过零率的流数据
加载一个原声吉他音乐的音频文件包含15秒。采样率是44.1 kHz。玩音乐,取消最后一行代码。
Fs = 44100;y = audioread (“guitartune.wav”);%的声音(y, Fs)
缓冲音频信号重叠的帧,每个国家都有4096个样本。使用一个重叠的512个样本。
winLength = 4096;重叠= 512;(yB ~) =缓冲区(y, winLength,重叠,“nodelay”);
得到每一帧的零交点。占帧重叠,指定初始状态的前一个值在每一帧首样。
init = winLength -重叠;国家= 0;zcr = [];为i = 1:尺寸(yB, 2) zcr = [zcr; zerocrossrate (yB (:, i), InitialState =状态)];我状态= yB (init);结束
情节的音频信号和覆盖每一帧的零交点。
图yyaxis左x = 0:1 / Fs:(元素个数(y) 1) / Fs;情节(x, y)包含(“秒”)ylabel (“振幅”)yyaxis正确的xx =(1:尺寸(yB, 2)) * ((winLength-overlap) / Fs);情节(xx”, zcr) ylabel (“零点交叉率”)
计算的零交点率无缓冲的信号。获得结果相当于零交点的缓冲信号,设置WindowLength
来4096年
和OverlapLength
来512年
。确定两个结果是相等的。
zcr_batch = zerocrossrate (y, WindowLength = winLength OverlapLength =重叠);isequal (zcr_batch zcr)
ans =逻辑1
输入参数
x
- - - - - -数据
实值向量|实值矩阵
数据,指定为一个实值向量或矩阵。如果x
是一个矩阵,函数返回零点交叉率作为一个行向量,每个值对应于一个列的数据。
数据类型:单
|双
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:zerocrossrate (x) =“比较”的方法,水平= 7,transitionEdge =“上升”)
使用比较法计算的速度x
积极转型跨越7
。
InitialState
- - - - - -以前的状态
0
(默认)|向量
以前的状态x
指定为一个向量,它的元素的数量等于输入通道的数量。
例子:zerocrossrate (x, InitialState = [1 0 1 3])
返回四通道输入信号的交叉率x
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
方法
- - - - - -计算方法讨论二阶导数过零率
“差异”
(默认)|“比较”
计算方法讨论二阶导数过零率,指定为“差异”
或“比较”
。如果你不指定方法
,该函数使用差分法来计算交叉率。
比较
——功能标志着指数
是真实的,一个穿越完全完成。区别
——功能标志着指数
是真实的,abs(符号(x我)‘(x我1))> 0。
例子:zerocrossrate (x,方法= "比较")
计算的交叉率x
使用比较法。
数据类型:字符
|字符串
WindowLength
- - - - - -窗口长度
正整数
窗口长度的计算交叉率,指定为一个正整数。默认的窗口长度的信号长度。
例子:zerocrossrate (x, WindowLength = 20)
返回20-sample windows的交叉率x
。
例子:zerocrossrate (x, WindowLength = f * 0.05)
返回50 ms windows的交叉率x
给定一个采样率fs
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
OverlapLength
- - - - - -重叠的样本数量
0
(默认)|正整数
相邻段之间的重叠的样本数量,指定为一个正整数。必须小于重叠窗口长度。
例子:zerocrossrate (x, OverlapLength = 0)
返回段的交叉率没有重叠。
例子:zerocrossrate (x, WindowLength = 20, OverlapLength = 5)
返回5个样品的交叉重叠的部分重叠。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
水平
- - - - - -信号电平
0
(默认)|真正的标量
信号电平交叉率的计算,指定为一个真正的标量。功能减去水平
从信号值,然后发现零交叉。如果你不指定水平
的函数使用默认值0
并返回讨论二阶导数过零率。
例子:zerocrossrate (x) = 1)
返回输入信号的速率x
十字架1
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
阈值
- - - - - -阈值
0
(默认)|真正的标量
阈值之上和之下水平
交叉率计算值,指定为一个真正的标量。函数设置中的所有的输入值范围(-阈值
,阈值
)0
然后发现零交叉。
例子:zerocrossrate (x,阈值= 0.1)
返回交叉率-0.1到0.1的公差。
请注意
当你指定水平
和阈值
首先,功能减去级别从输入然后设置的值0
由此产生的输入值的范围(-阈值
,阈值
]。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
TransitionEdge
- - - - - -转换
“两个”
(默认)|“下降”
|“上升”
转换包括计算零交叉时,指定为“下降”
,“上升”
,或“两个”
。如果您指定“下降”
,函数项只负向的转变。如果您指定“上升”
,函数项只有正向的转换。
例子:zerocrossrate (x, TransitionEdge = "上升")
返回的交叉率x
因为只有正向的转换。
数据类型:字符
|字符串
ZeroPositive
- - - - - -签署公约
0
或假
(默认)|1
或真正的
签署公约,指定为一个逻辑标量。如果您指定ZeroPositive
真的,考虑函数0
是积极的。如果您指定ZeroPositive
是假的,认为的函数0
,1
,+1
有明显的迹象的公约标志
函数。
例子:zerocrossrate (x, ZeroPositive = 1)
返回输入信号的交叉率x
并认为零是积极的。
数据类型:逻辑
输出参数
率
——讨论二阶导数过零率
矩阵行向量|
讨论二阶导数过零率,返回一个行向量或矩阵。当WindowLength
等于信号长度,率
行向量的元素的数量等于通道的数量x
或TT
。当WindowLength
小于信号长度,函数返回率
作为一个矩阵的地方我th行包含交叉率我th窗口和jth列对应jth输入通道。
数
——数量的口岸
N——- - - - - -米矩阵
数量的过境点,作为一个返回N——- - - - - -米矩阵Nwindows和数量吗米输入通道的数量。的我th行对应的交叉数我th窗口和jth列对应的交叉数jth通道。
指数
-逻辑指数
N——- - - - - -WindowLength
——- - - - - -米数组
逻辑信号位置口岸的指数发生,作为一个返回N——- - - - - -WindowLength
——- - - - - -米数组,Nwindows和数量吗米输入通道的数量。
请注意
指数可能不代表确切的信号交叉的位置。的zerocrossrate
函数返回下一个样本后十字路口一个索引。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
代码生成不支持禁用动态内存分配当窗口长度,输入指定金宝app多个频道。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。