How to change the pitch of a signal?

1 visualización (últimos 30 días)
i Venky
i Venky el 11 de Oct. de 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?

Respuestas (3)

Walter Roberson
Walter Roberson el 11 de Oct. de 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 el 12 de Oct. de 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 el 12 de Oct. de 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');

Categorías

Más información sobre Simulation, Tuning, and Visualization en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by