文档帮助中心文档
音频信号和听觉频谱图的频谱流量
通量= spectralFlux (x, f)
通量=光谱通量(x,f,初始条件)
通量=光谱通量(___、名称、值)
[通量,finalCondition] = spectralFlux (___)
实例
通量= spectralFlux (x,F)返回信号的光谱通量,x随着时间的推移。谱通量是对谱随时间变化的量度。函数如何解释x取决于形状F.
通量= spectralFlux (x,F)
通量
x
F
通量= spectralFlux (x,F,初始条件)指定以前的频谱状态。此语法仅支持频域输入。金宝app
通量= spectralFlux (x,F,初始条件)
初始条件
通量= spectralFlux (___,名称、值)使用一个或多个指定选项名称、值对参数。
通量= spectralFlux (___,名称、值)
名称、值
例如,通量= spectralFlux (x, f, NormType, 1)使用范数类型1计算光谱通量。
通量= spectralFlux (x, f, NormType, 1)
[通量,finalCondition]=光谱通量(___)还返回最终的光谱状态。
[通量,finalCondition]=光谱通量(___)
finalCondition
全部崩溃
读取音频文件,使用默认参数计算通量,然后绘制结果。
[audioIn, fs] = audioread (“计数-16-44p1-mono-15秒波形”);通量=频谱通量(audioIn,fs);t=linspace(0,大小(audioIn,1)/fs,大小(通量,1));绘图(t,通量)xlabel(‘时间’) ylabel (“通量”)
读入音频文件,然后使用melSpectrogram函数。计算mel谱图随时间变化的通量。策划的结果。
melSpectrogram
[audioIn, fs] = audioread (“计数-16-44p1-mono-15秒波形”);(年代,cf, t) = melSpectrogram (audioIn fs);通量= spectralFlux(年代,cf);情节(t,通量)包含(‘时间’) ylabel (“通量”)
读入音频文件。
[audioIn, fs] = audioread (“计数-16-44p1-mono-15秒波形”);
计算功率谱随时间的通量。计算具有25 ms重叠的50 ms汉明窗数据的通量。使用62.5 Hz到50 Hz的范围财政司司长/2为通量计算。策划的结果。
财政司司长
通量=频谱通量(音频输入,fs,...“窗口”,汉明(圆形(0.05*fs)),...“OverlapLength”而圆(0.025 * fs),...“范围”, 62.5, f / 2);t = linspace(0,大小(audioIn 1) / fs,大小(通量,1));情节(t,通量)包含(‘时间’) ylabel (“通量”)
频谱流量测量连续频谱的变化。要计算流式音频的频谱流量,可以将状态传入和传出函数。
创建一个音频文件读取器对象以逐帧读取音频数据。创建dsp。AsyncBuffer对象缓冲音频输入到重叠帧中。创建第二个dsp。AsyncBuffer目的记录光谱通量计算。
音频文件读取器
dsp。AsyncBuffer
fileReader=dsp.AudioFileReader(“计数-16-44p1-mono-15秒波形”);inputBuffer = dsp.AsyncBuffer;记录器= dsp.AsyncBuffer;
在音频流循环中:
从你的源读取一帧音频数据。
将音频数据写入输入缓冲区。
如果缓冲区中有一跳数据可用,则读取一帧有重叠的数据。
计算单边幅度短时间傅里叶变换。
计算光谱通量。
记录谱通量,以便日后绘图。
fs = fileReader.SampleRate;samplesPerFrame =圆(fs * 0.05);samplesOverlap =圆(fs * 0.025);samplesPerHop = samplesPerFrame - samplesOverlap;赢得=汉明(samplesPerFrame,“周期性”);Sprev = [];虽然~isDone(fileReader)audioIn=fileReader();写入(输入缓冲区、音频输入);虽然inputBuffer.NumUnreadSamples>=samplesPerHop audioBuffered=read(inputBuffer,samplesPerFrame,samplesOverlap);[S,f]=stft(audioBuffered,fs,“窗口”,赢了,“重叠长度”,样本重叠,“FrequencyRange”,“片面的”);[flux,Sprev]=光谱通量(abs(S),f,Sprev);写入(记录器,flux);终止终止发布(文件阅读器)
绘制记录的数据。
情节(读(logger)) ylabel (“通量”)
输入信号,指定为向量、矩阵或三维数组。函数如何解释x取决于形状F.
数据类型:单|双
单
双
以Hz为单位的采样率或频率矢量,分别指定为标量或矢量。函数如何解释x取决于形状F:
如果F是一个标量,x被解释为时域信号,并且F为采样率。在这种情况下,x一定是实向量或实矩阵。如果x指定为矩阵时,列被解释为单个通道。
如果F是一个矢量,x被解释为频域信号,并且F被解释为频率,以Hz表示,对应于x.在这种情况下,x一定是真的L——- - - - - -M——- - - - - -N数组,L在给定频率的谱值的数目是多少F,M是个别光谱的数量,和N是通道数。
[]
先前的光谱状态,指定为L——- - - - - -N矩阵,其中:
L在单侧谱表示法中箱子的数目是否等于努梅尔(F).
努梅尔(F)
N音频数据的通道数,等于多少大小(x3).
大小(x3)
如果初始条件,或指定为空,光谱通量将第一个频谱视为重复频谱。即第一个频谱通量输出为零。
光谱通量
此输入参数仅在以下情况下有效:x,是音频的频域表示。这个光谱通量函数解释输入的域x根据大小F.
指定可选的逗号分隔的字符对名称、值参数。的名字是参数名和价值是对应的值。的名字必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
“窗口”,哈明(256)
“正常类型”
2.
1.
用于计算通量的范数类型,指定为逗号分隔对,由“正常类型”和2.或1..
笔记
下列名称-值对参数适用于x是时域信号。如果x是频域信号,将忽略以下名称-值对参数。
“窗口”
雷克特温(轮)(F*0.03))
窗口应用于时域,指定为逗号分隔对,由“窗口”和一个实向量。向量中的元素数必须在[1,大小(x, 1)].向量中的元素数也必须大于OverlapLength.
大小(x, 1)
OverlapLength
“OverlapLength”
圆的(F* 0.02)
相邻窗口之间重叠的样本数,指定为由逗号分隔的对组成“OverlapLength”和一个范围为[0,大小(窗口, 1)).
大小(窗口, 1)
窗口
“FFTLength”
努梅尔(窗口)
用于计算窗口化输入样本DFT的容器数,指定为逗号分隔对,包括“FFTLength”一个正的标量整数。如果未指定的,FFTLength属性中的元素数量默认为窗口.
FFTLength
“范围”
[0,F/ 2)
频率范围(以Hz为单位),指定为逗号分隔对,包括“范围”以及在[0]范围内增加实值的两元素行向量,F/2].
“SpectrumType”
“权力”
“级”
谱类型,指定为逗号分隔对,由“SpectrumType”和“权力”或“级”:
“权力”——计算单侧功率谱的谱通量。
“级”——谱通量计算为单边幅值谱。
数据类型:字符|字符串
字符
字符串
以赫兹为单位的光谱通量,以标量、矢量或矩阵返回。每一行的通量对应于某窗口的光谱通量x.每一列的通量对应一个独立的通道。
最终光谱状态,返回为L——- - - - - -N矩阵,其中:
这个输出参数只有在输入,x,是音频的频域表示。这个光谱通量函数解释输入的域x根据大小F.
光谱通量的计算如中所述[1]:
通量( T ) = ( ∑ K = B 1. B 2. | s K ( T ) − s K ( T − 1. ) | P ) 1. P
在哪里
sK是bin处的光谱值K.
B1.和B2.是用于计算光谱通量的带边(以箱为单位)。
P是标准类型。可以使用以下命令指定规范类型NormType.
NormType
Scheirer, E.和M. Slaney。鲁棒多特征语音/音乐鉴别器的构建与评估。IEEE声学、语音和信号处理国际会议.第2卷,1997年,1221-1224页。
acousticFluctuation|综合响度|spectralCentroid|飞溅计
acousticFluctuation
综合响度
spectralCentroid
飞溅计
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。
与当地办事处联系
现在受审