why the Real Cepstrum code doesn't give an accurate figure?

Hi, implementing a basic cepstral analysis, but there's a problem that we haven't got it; please look at ;
this's the saved voice of vowel 'e' and the basic code for real cepstrum is that;
eplot=find(abs(e)>0.01,1):length(e);
y=ifft(log(abs(fft(eplot))));
plot(y)
and getting this;
I think, we should have got a figure like that ;
What we miss? Thanks in advance.

4 Commenti

find returns the indices at which the condition you give it is true. I doubt you want to perform cepstrum analysis on this.
Maybe you meant
e( eplot )
although I would put some thought into naming your variables in a more representative way in that case.
I have already wanted to find it, ofc this's the first stage to move. The problem is owing to axis? Can we overcome with 'window' command? I doubt the 0.01,1 gap is true or false, what do you think about it?
If you aren't taking the fft of the indices rather than the data it would help if you show tha actual code you are using because what you posted is doing an fft on index values which is equivalent to something like this:
y = ifft( log( abs( fft( 200:20000 ) ) ) );
figure; plot( y )
which gives a plot similar to yours.
[Y,FS]=audioread('eee.wav');
N=length(Y);
T=(0:N-1)/FS;
eplot=find(abs(T)>0.3,1):length(T);
b=ifft(log(abs(fft(Y))));
figure;subplot(2,1,1);plot(T,Y);subplot(2,1,2);plot(b)
I have done smth like that, what do u think about it ? It may be true?

Accedi per commentare.

Risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by