主要内容

Spectralswess.

音频信号和听觉谱图的光谱偏斜

描述

例子

歪斜= Spectralswe(XF返回信号的光谱偏斜,X, 随着时间的推移。该功能如何解释X取决于形状F

例子

歪斜= Spectralswe(XF名称,价值使用一个或多个指定选项名称,价值对论点。

[歪斜传播封面] = SpectralsWness(___返回光谱扩展和光谱质心。

例子

全部收缩

在音频文件中读取,使用默认参数计算Skewness,然后绘制结果。

[AudioIn,FS] = audioread('Counting-16-44p1-mono-15secs.wav');skewness = spectrancewness(AudioIn,FS);t = linspace(0,尺寸(audioin,1)/ fs,尺寸(skewness,1));绘制(t,偏斜)xlabel('时间'')ylabel('歪斜'

图包含轴。轴包含类型线的对象。

在音频文件中读取,然后使用该音频文件计算MEL频谱图MELSPectRoge.功能。随着时间的推移计算MEL谱图的偏斜线。绘制结果。

[AudioIn,FS] = audioread('Counting-16-44p1-mono-15secs.wav');[S,CF,T] = MELSPectRoge(AudioIn,FS);skewness = spectrancewness(s,cf);绘制(t,偏斜)xlabel('时间'')ylabel('歪斜'

图包含轴。轴包含类型线的对象。

在音频文件中读取。

[AudioIn,FS] = audioread('Counting-16-44p1-mono-15secs.wav');

随着时间的推移计算功率谱的偏斜。计算使用25毫秒重叠的数据的50毫米汉纯窗口的偏差。使用62.5 Hz的范围FS./ 2对于偏斜计算。绘制结果。

skewness = spectranskewness(Audioin,FS,......'窗户',汉明(圆形(0.05 * fs)),......'overlaplencth',圆形(0.025 * fs),......'范围',[62.5,FS / 2]);t = linspace(0,尺寸(audioin,1)/ fs,尺寸(skewness,1));绘制(t,偏斜)xlabel('时间'')ylabel('歪斜'

图包含轴。轴包含类型线的对象。

创建一个dsp.audiofilereader.对象以逐帧中读取的音频数据。创建一个dsp.signalsink.记录光谱偏斜计算。

filereader = dsp.audiofilereader('Counting-16-44p1-mono-15secs.wav');logger = dsp.signalsink;

在一个音频流循环中:

  1. 读入音频数据帧。

  2. 计算音频帧的光谱偏斜。

  3. 记录稍后绘图的光谱偏斜。

为了仅计算给定的输入框的频谱偏移,请指定具有与输入相同数量的样本数量的窗口,并将重叠长度设置为零。绘制记录的数据。

win = haming(filereader.samplesperframe);尽管〜ISDONE(FILEREADER)AUDION = FILEREADER();skewness = spectranskewness(isainin,filereader.samplerate,......'窗户',赢,......'overlaplencth',0);记录器(偏斜)结尾plot(logger.buffer)ylabel('歪斜'

图包含轴。轴包含类型线的对象。

dsp.asyncbuffer.如果

  • 对音频流循环的输入具有每个帧的变量样本。

  • 对音频流循环的输入与分析窗口的每个帧具有不一致的样本Spectralswess.

  • 您希望计算重叠数据的光谱偏斜度。

创建一个dsp.asyncbuffer.对象,重置记录器,然后释放文件读取器。

buff = dsp.asyncuffer;重置(记录器)释放(Filereader)

指定使用25毫秒重叠的50 ms帧计算光谱偏差。

fs = filereader.samplerate;SamplesPerframe = ROUNG(FS * 0.05);Samplesoverlap = ROUNG(FS * 0.025);Samplesperhop = SamplesPerframe  -  SamplesOverlap;WIN =汉明(样品框架);尽管〜ISDONE(FILEREADER)AUDION = FILEREADER();写(buff,audioin);尽管buff.numunReadsamples> = samplesperhop audiobuffered = read(buff,samplesperframe,samplesoverlap);skewness = spectrancewness(有obiobuffered,fs,......'窗户',赢,......'overlaplencth',0);记录器(偏斜)结尾结尾发布(Filereader)

绘制记录的数据。

plot(logger.buffer)ylabel('歪斜'

图包含轴。轴包含类型线的对象。

输入参数

全部收缩

输入信号,指定为向量,矩阵或3-D阵列。该功能如何解释X取决于形状F

数据类型:单身的|双倍的

Hz中的采样率或频率矢量分别指定为标量或向量。该功能如何解释X取决于形状F

  • 如果F是标量,X被解释为时域信号,和F被解释为采样率。在这种情况下,X必须是真正的矢量或矩阵。如果X被指定为矩阵,列被解释为单独的通道。

  • 如果F是矢量,X被解释为频域信号,和F被解释为频率,在Hz中,对应于行的行X。在这种情况下,X必须是一个真实的L.-经过-m-经过-N阵列,其中L.是给定频率的频谱值的数量Fm是单独的频谱数量,还有N是渠道的数量。

  • 行的数量XL.,必须等于元素的数量F

数据类型:单身的|双倍的

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'窗口',汉明(256)

笔记

以下名称值对参数适用X是一个时域信号。如果X是频域信号,忽略名称值对参数。

在时域中应用的窗口,指定为逗号分隔对组成'窗户'和一个真正的矢量。向量中的元素数必须在范围[1,尺寸(X1)]。矢量中的元素数量也必须大于overtaplenth

数据类型:单身的|双倍的

在相邻窗口之间重叠的样本数,指定为包括的逗号分隔对'overlaplencth'并且范围内的整数[0,尺寸(窗户1))。

数据类型:单身的|双倍的

用于计算DFT的窗口输入样本的频体数量,指定为逗号分隔对'fftlength'和一个正标量整数。如果未指定,FFTLENG默认为默认值的元素数窗户

数据类型:单身的|双倍的

Hz的频率范围,指定为逗号分隔对组成'范围'和一个增加范围内真实值的两个元素行向量[0,F/ 2]。

数据类型:单身的|双倍的

频谱类型,指定为逗号分隔对组成'spectrumtype''力量'或者'震级'

  • '力量'- 针对单面功率谱计算光谱偏斜。

  • '震级'- 针对单面幅度谱计算光谱偏斜。

数据类型:char|细绳

输出参数

全部收缩

光谱偏斜,作为标量,向量或矩阵返回。每一排歪斜对应于窗口的光谱偏斜X。每列歪斜对应于独立频道。

光谱扩展,作为标量,向量或矩阵返回。每一排传播对应于窗口的频谱传播X。每列传播对应于独立频道。

Hz中的光谱质心,作为标量,向量或矩阵返回。每一排封面对应于窗口的频谱质心X。每列封面对应于独立频道。

算法

如下所述计算光谱偏斜性[1]

歪斜 = σ. K. = B. 1 B. 2 F K. - μ. 1 3. S. K. μ. 2 3. σ. K. = B. 1 B. 2 S. K.

在哪里

  • FK.是Hz的频率对应于箱K.

  • S.K.是垃圾箱的光谱值K.

  • B.1B.2频带边缘,在箱中,用于计算光谱偏斜。

  • μ.1是光谱质心,如下所述计算Spectralcentroid.功能。

  • μ.2是光谱展开,如下所述计算光谱覆盖功能。

参考

[1] PEETERS,G.“CUIDADO项目中的声音描述(相似性和分类)的大量音频功能。”技术报告;Ircam:巴黎,法国,2004年。

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

GPU阵列
使用并行计算工具箱™在图形处理单元(GPU)上运行,加速代码。

在R2019A介绍