MATLAB Answers

Compute the fft of the record of my voice

109 views (last 30 days)
Riccardo Barbero
Riccardo Barbero on 15 Mar 2016
Answered: richard onipede on 10 Dec 2019
This is my starting code:
a=audiorecorder(8000,8,1);
record(a)
% recording for some seconds, don't remember how many...
stop(a)
data=getaudiodata(a);
plot(data)
I obtained this.
How can I know the duration of the recording (because on the x-axis there are not the seconds...)?
Onother question: how can I compute the fft and find the frequency spectrum of this signal?
Thank you!

  0 Comments

Sign in to comment.

Answers (2)

Rick Rosson
Rick Rosson on 15 Mar 2016
N = length(data);
Fs = 8000;
dt = 1/Fs;
t = dt*(0:N-1)';
figure;
plot(t,data);

  1 Comment

Riccardo Barbero
Riccardo Barbero on 15 Mar 2016
Perfect! Thank you Rick!
So, the following is the correct signal in time-domain:
(I called the signal "Emi" because is the name of my girlfriend and this is her voice ;))
However, for the fft, i did as follow:
datafft=fft(data);
datafft_abs=abs(datafft/N);
datafft_abs=datafft_abs(1:N/2+1);
f=Fs*(0:N/2)/N;
figure;
plot(f,datafft_abs)
Doing this, I obtained the follow spectrum:
Is it correct? I have doubts about the y scale representing the amplitude of spectrum...

Sign in to comment.


richard onipede
richard onipede on 10 Dec 2019
a=audiorecorder(8000,8,1);
record(a)
% recording for some seconds, don't remember how many...
stop(a)
data=getaudiodata(a);
plot(data)

  0 Comments

Sign in to comment.

Sign in to answer this question.

Tags