How do i plot an audio file with an interval in ms?

75 Ansichten (letzte 30 Tage)
Michael Sugiarto
Michael Sugiarto am 22 Mär. 2022
Kommentiert: Scott MacKenzie am 22 Mär. 2022
Hi! I am currently using matlab 2021 version. I want to know how would I plot an audio file in the interval of 20 miliseconds of my choice for example the audio recording is 10 seconds long but, I want to plot only from 0 to 20 miliseconds. How would I do that? This is my code right now
recObj = audiorecorder;
Fs=8000;
filename = sprintf('myAudioData.wav');
disp('Start speaking.')
recordblocking(recObj, 10);
disp('End of Recording.');
doubleArray = getaudiodata(recObj);
audiowrite(filename,doubleArray,Fs);
[x,Fs] = audioread('myAudioData.wav');
[m,n]=size(x);
dt=1/Fs;
t=dt*(0:m-1);
idx = (t>=1.030) & (t<1.032);
selected_t = t(idx);
selected_x = x(idx,:);
plot(selected_t, selected_x);

Akzeptierte Antwort

Scott MacKenzie
Scott MacKenzie am 22 Mär. 2022
Bearbeitet: Scott MacKenzie am 22 Mär. 2022
Using the sample frequency of the audio data (Fs), this code will extract and plot the first 20 ms:
[x, Fs] = audioread('AudioSample.wav'); % test audio file
ts = 1 / Fs; % duration of each sample
n = round(0.02/ts); % number of samples in 1st 20 ms
plot(x(1:n)); % plot 1st 20 ms of audio file
  5 Kommentare
Michael Sugiarto
Michael Sugiarto am 22 Mär. 2022
Thank you so much!!
Scott MacKenzie
Scott MacKenzie am 22 Mär. 2022
@Michael Sugiarto, you're welcome. Good luck.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

KSSV
KSSV am 22 Mär. 2022
idx = t <= 20*10^-3 ;
plot(t(idx),x(idx))

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by