Compute the fft of the record of my voice

19 ビュー (過去 30 日間)
Riccardo Barbero
Riccardo Barbero 2016 年 3 月 15 日
回答済み: richard onipede 2019 年 12 月 10 日
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 Center および File ExchangeDiscrete Fourier and Cosine Transforms についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by