文档帮助中心文档
音频信号和听觉频谱图的频谱扩展
扩展=频谱扩展(x,f)
扩展=频谱扩展(x,f,名称,值)
[扩展,质心]=频谱扩展(___)
例子
传播= spectralSpread (x,f)返回信号的频谱扩展,x随着时间的推移。函数如何解释x取决于物体的形状f.
传播= spectralSpread (x,f)
传播
x
f
传播= spectralSpread (x,f,名称、值)使用一个或多个指定选项名称、值配对参数。
传播= spectralSpread (x,f,名称、值)
名称、值
[传播,重心]=频谱分布(___)返回光谱质心。
[传播,重心]=频谱分布(___)
重心
全部崩溃
读入音频文件,使用默认参数计算排列,然后绘制结果。
[audioIn,fs]=音频读取(“Counting-16-44p1-mono-15secs.wav”);传播= spectralSpread (audioIn, fs);t = linspace(0,大小(audioIn 1) / fs,大小(传播,1));情节(t,传播)包含(‘时间’)伊拉贝尔(“传播(赫兹)”的概念)
读入一个音频文件,然后计算mel声谱图使用melSpectrogram函数。计算mel谱随时间的扩散。策划的结果。
melSpectrogram
[audioIn,fs]=音频读取(“Counting-16-44p1-mono-15secs.wav”);(年代,cf, t) = melSpectrogram (audioIn fs);传播= spectralSpread(年代,cf);情节(t,传播)包含(‘时间’)伊拉贝尔(“传播(赫兹)”的概念)
读入音频文件。
[audioIn,fs]=音频读取(“Counting-16-44p1-mono-15secs.wav”);
计算功率谱随时间的扩展。计算重叠25 ms的50 ms汉明窗数据的扩展。使用62.5 Hz到fs/2用于价差计算。策划的结果。
fs
传播= spectralSpread (audioIn fs,...“窗口”汉明(圆(0.05 * fs)),...“OverlapLength”,圆形(0.025*fs),...“范围”, 62.5, f / 2);t = linspace(0,大小(audioIn 1) / fs,大小(传播,1));情节(t,传播)包含(‘时间’)伊拉贝尔(“传播(赫兹)”的概念)
创建一个dsp。AudioFileReader对象以逐帧读取音频数据。创建信号接收器记录光谱扩散计算。
dsp。AudioFileReader
信号接收器
fileReader = dsp。AudioFileReader (“Counting-16-44p1-mono-15secs.wav”);记录器= dsp.SignalSink;
在音频流循环中:
读入一帧音频数据。
计算音频帧的频谱传播。
为以后的绘图记录光谱扩散。
为了只计算给定输入帧的光谱扩展,指定一个与输入帧样本数目相同的窗口,并将重叠长度设为零。绘制记录的数据。
赢得=汉明(fileReader.SamplesPerFrame);虽然~isDone(fileReader) audioIn = fileReader();传播= spectralSpread (audioIn fileReader。SampleRate,...“窗口”赢...“OverlapLength”,0); 记录器(排列)结束plot(logger.Buffer)ylabel(“传播(赫兹)”的概念)
使用异步缓冲器如果
异步缓冲器
音频流循环的输入每帧有一个可变的采样。
音频流循环的输入与分析窗口的每帧采样数不一致光谱分布.
光谱分布
要计算重叠数据的光谱扩展。
创建一个异步缓冲器对象,重置记录器,然后释放文件读取器。
浅黄色= dsp.AsyncBuffer;重置(logger)释放(fileReader)
指定为具有25毫秒重叠的50毫秒帧计算频谱扩展。
fs=fileReader.SampleRate;samplesPerFrame=round(fs*0.05);samplesOverlap=round(fs*0.025);samplesPerHop=samplesPerFrame-samplesOverlap;win=hamming(samplesPerFrame);虽然~isDone(fileReader) audioIn = fileReader();写(浅黄色,audioIn);虽然buff.numReadSamples>=samplesPerHop audioBuffered=read(buff,samplesPerFrame,samplesOverlap);spread=spectralSpread(audioBuffered,fs,...“窗口”赢...“OverlapLength”,0); 记录器(排列)结束结束发行版(fileReader)
绘制记录的数据。
plot(logger.Buffer)ylabel(“传播(赫兹)”的概念)
输入信号,指定为向量、矩阵或三维数组。函数如何解释x取决于物体的形状f.
数据类型:单|双重的
单
双重的
采样率或频率向量,单位为Hz,分别指定为标量或向量。函数如何解释x取决于物体的形状f:
如果f是一个标量,x被解释为时域信号,并且f被解释为采样率。在这种情况下,x一定是实向量或实矩阵。如果x指定为一个矩阵,列被解释为单独的通道。
如果f是一个矢量,x被解释为频域信号,并且f被解释为频率,以Hz表示,对应于x.在这种情况下,x一定是真的l-借-米-借-N数组,l是给定频率下的光谱值的数量f,米是单个光谱的数目,和N为通道的数量。
的行数x,l,必须等于的元素数f.
指定可选的逗号分隔的对名称、值论据。的名字参数名和价值是对应的值。的名字必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:名称1,值1,…,名称,值.
的名字
价值
名称1,值1,…,名称,值
“窗口”,汉明(256)
请注意
下列名称-值对参数适用于x是时域信号。如果x是频域信号,则忽略名称-值对参数。
窗口
雷克特温(轮)(f* 0.03))
应用于时域的窗口,指定为逗号分隔对,由“窗口”一个实向量。向量中的元素个数必须在范围[1,大小(x,1)]。向量中的元素数也必须大于重叠长度.
“窗口”
大小(x,1)
重叠长度
圆(f*0.02)
相邻窗口之间重叠的样本数,指定为逗号分隔对,由“OverlapLength”和一个范围为[0,大小(窗口,1)).
“OverlapLength”
大小(窗口,1)
FFTLength
努梅尔(窗口)
用于计算窗口化输入样本DFT的容器数,指定为逗号分隔对,包括“FFTLength”和正标量整数。如果未指定,FFTLength默认值为中的元素数窗口.
“FFTLength”
范围
[0,f/ 2)
以Hz为单位的频率范围,指定为逗号分隔对,由“范围”以及在[0]范围内增加实值的两元素行向量,f/ 2)。
“范围”
SpectrumType
“权力”
“震级”
频谱类型,指定为逗号分隔对,由“光谱类型”和“权力”或“震级”:
“光谱类型”
“权力”——计算单边功率谱的谱宽。
“震级”–计算单侧幅度谱的频谱扩展。
数据类型:烧焦|字符串
烧焦
字符串
以Hz为单位的频谱扩展,以标量、矢量或矩阵形式返回。每行重心对应于一个窗口的光谱扩展x.每一列的传播对应一个独立的通道。
以Hz为单位的光谱质心,以标量、矢量或矩阵的形式返回。每行重心对应于光谱窗口的光谱质心x.每一列的重心对应一个独立的通道。
按照中所述计算频谱扩展[1]:
传播 = ∑ k = b 1 b 2 ( f k − μ 1 ) 2 年代 k ∑ k = b 1 b 2 年代 k
在哪里
fk频率Hz是否对应bink.
年代k光谱值在bin处吗k.
b1和b2是用于计算光谱扩展的带边(以箱为单位)。
μ1是光谱质心,按照spectralCentroid函数。
spectralCentroid
[1] Peeters,G.“CUIDADO项目中用于声音描述(相似性和分类)的大量音频特征”,技术报告;IRCAM:巴黎,法国,2004年。
spectralCentroid|光谱亮度|spectralKurtosis
光谱亮度
spectralKurtosis
您拥有此示例的修改版本。是否要用编辑打开此示例?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处
现在受审