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

4 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))

Kategorien

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

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by