How to change the pitch of a signal?

1 Ansicht (letzte 30 Tage)
i Venky
i Venky am 11 Okt. 2011
I think you might have seen Tom Cat apps of Iphone. In that it will speak what you speak but in a different pitch. How to change the pitch of the signal using matlab?

Antworten (3)

Walter Roberson
Walter Roberson am 11 Okt. 2011
fft(). Skip the first point (the DC offset), extract the values from there to the first quarter of the plot, and interweave before each one of them and write that back over the first half of the plot (so each each frequency that was in slot #N is now in slot #2N. Do the same thing but backwards working from the right-most part of the fft. Now fft() the result back.
In theory everything in the first half of the frequencies will have doubled in frequency (gone up an octave) and the second half of the frequencies will have been doubled out of existence. Que sera.

i Venky
i Venky am 12 Okt. 2011
I tried it but there doesn't seem to be any change in the pitch. Instead it was very fast and it played two times instead of one.
Is it possible for me to upload the .au file in this forum? If so I could show you.

i Venky
i Venky am 12 Okt. 2011
If possible provide me the code. Here's my code
load handel.mat
k=ifft(y);
k1=k(1:length(k)/4);
k2=k(3*length(k)/4:length(k));
k3=0;
for i=1:length(k1)
k3(2*i)=k1(i);
end
for i=1:length(k2)
k4(length(k3)+1+2*i-2)=k2(i);
end
k3(length(k3)+1:length(k4))=0;
k5=k3+k4;
k5(2)=0; %Made the dc component to be equal to zero.
y2=ifft(k5);
auwrite(y2,'newfile');

Kategorien

Mehr zu Simulation, Tuning, and Visualization finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by