waveFile='sunday.wav'; au=myAudioRead(waveFile); index1=9000; frameSize=512; index2=index1+frameSize-1; frame=au.signal(index1:index2); opt=frame2pdf('defaultOpt'); opt.pdf='amdf'; opt.maxShift=length(frame); opt.method=1; amdf=frame2pdf(frame, opt); amdf4pt=max(amdf)-amdf-max(amdf)*linspace(0,1,length(amdf))'; amdf4pt2=amdf4pt; maxFreq=1000; amdf4pt2(1:au.fs/maxFreq)=-inf; minFreq=40; amdf4pt2(au.fs/minFreq:end)=-inf; [maxValue, maxIndex]=max(amdf4pt2); fprintf('Pitch = %f Hz = %f semitone\n', au.fs/(maxIndex-1), freq2pitch(au.fs/(maxIndex-1))); subplot(2,1,1); plot(frame, '.-'); title('Input frame'); subplot(2,1,2); xVec=1:length(amdf); plot(xVec, amdf4pt, '.-', xVec, amdf4pt2, 'm.-', maxIndex, maxValue, 'ksquare'); title(sprintf('AMDF vector (method = %d)', opt.method)); legend('Original AMDF4PT', 'Truncated AMDF4PT', 'AMDF pitch point');