Compute the fft of the record of my voice

17 次查看(过去 30 天)
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!

回答(2 个)

Rick Rosson
Rick Rosson 2016-3-15
N = length(data);
Fs = 8000;
dt = 1/Fs;
t = dt*(0:N-1)';
figure;
plot(t,data);
  1 个评论
Riccardo Barbero
Riccardo Barbero 2016-3-15
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...

请先登录,再进行评论。


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

类别

Help CenterFile Exchange 中查找有关 Measurements and Spatial Audio 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by