小编Vel*_*ity的帖子

如何从MATLAB中的自相关数据中提取峰值?

我有关于我使用以下自动关联的音轨的信息(20,000帧数据):

[r,lags] = xcorr(XX,XX,'biased');
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

alt text http://a.imageshack.us/img809/3775/plot.jpg

希望到目前为止这么好.理想情况下,我希望能够获取与第二个峰值的最高部分相对应的帧编号.我已经阅读并尝试了大量不同的方法,但我似乎无法让它为我检索信息.

是否有人能够阐明我必须做的事情?

非常感谢!


edit1: 我尝试过使用findpeaks,但它似乎对我不起作用.我不确定是不是因为我使用的是错误的数据.

edit2:我正在测试一种方法只用于这个音频轨道,但很快我想扩展它以便我可以在整个文件目录上执行这个方法,所以我需要一个可以检测峰值的脚本而不是自己找到信息.

edit3:我的.M文件:

[y, fs, nb] = wavread('Three.wav');                 %# Load the signal into variable y

frameWidth = 441;                                   %# 10ms
numSamples = length(y);                             %# Number of samples in y
numFrames = floor(numSamples/frameWidth);           %# Number of full frames in y
energy = zeros(1,numFrames);                        %# Initialize energy
startSample = zeros(1,numFrames);                   %# Initialize start indices
endSample = zeros(1,numFrames);                     %# Initialize end indices

for frame = 1:numFrames                             %# …
Run Code Online (Sandbox Code Playgroud)

audio matlab signal-processing correlation

4
推荐指数
1
解决办法
7071
查看次数

在MATLAB中创建淡入/淡出功能?

我期待创建一个功能,可以在五秒钟内在.wav文件上创建淡入/淡出功能.

我在MATLAB论坛上发现了这个代码,但似乎实现有些错误,尽管正确的想法就在那里.它适用于300毫秒的.WAV文件,淡入/淡出10毫秒:

tenmssamples = length(soundfile)*10/300;
fade1 = linspace(0,1,tenmssamples);
fadedsound = soundfile .* ...
  [fade1, ones(1,length(soundfile)-2*tenmssamples), fliplr(fade1)];


tenmssamples = length(soundfile)*10/300;
fade2 = sin(linspace(0,2*pi/4,tenmssamples));
fadedsound2 = soundfile .* ...
  [fade2, ones(1,length(soundfile)-2*tenmssamples), fliplr(fade2)];
Run Code Online (Sandbox Code Playgroud)

我可以看到他试图通过尝试扩展使用linspace的增函数读取波形的第10个样品做,但我试图修补和修改,但我无法得到它的工作.

有人有什么建议吗?谢谢.

audio matlab wav fadeout fadein

3
推荐指数
1
解决办法
8461
查看次数

标签 统计

audio ×2

matlab ×2

correlation ×1

fadein ×1

fadeout ×1

signal-processing ×1

wav ×1