我有关于我使用以下自动关联的音轨的信息(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) 我期待创建一个功能,可以在五秒钟内在.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个样品做,但我试图修补和修改,但我无法得到它的工作.
有人有什么建议吗?谢谢.