Compute the fft of the record of my voice

18 Ansichten (letzte 30 Tage)
Riccardo Barbero
Riccardo Barbero am 15 Mär. 2016
Beantwortet: richard onipede am 10 Dez. 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!

Antworten (2)

Rick Rosson
Rick Rosson am 15 Mär. 2016
N = length(data);
Fs = 8000;
dt = 1/Fs;
t = dt*(0:N-1)';
figure;
plot(t,data);
  1 Kommentar
Riccardo Barbero
Riccardo Barbero am 15 Mär. 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...

Melden Sie sich an, um zu kommentieren.


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

Kategorien

Mehr zu Measurements and Spatial Audio finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by