Effacer les filtres
Effacer les filtres

How to change the pitch of a signal?

2 vues (au cours des 30 derniers jours)
i Venky
i Venky le 11 Oct 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?
  1 commentaire
Sean de Wolski
Sean de Wolski le 11 Oct 2011
Nope. I use a dumbphone.

Connectez-vous pour commenter.

Réponses (3)

Walter Roberson
Walter Roberson le 11 Oct 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 le 12 Oct 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 le 12 Oct 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');
  1 commentaire
Jan
Jan le 4 Nov 2011
Please use code formatting.

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB Mobile dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by