How do I plot a 144000 sample sound file with 400 samples in different windows with for loop?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/579982/image.png)
I have a plot of an audio file with 144000 samples. I want to draw these 144000 sample sound files in 400 separate windows each. Each window will contain 400 instances of it, and I want to interpret it in every 400 windows. Can you help me?
2 comentarios
Jan
el 11 de Abr. de 2021
What does this mean: "Each window will contain 400 instances of it" - what is "it"?
Respuestas (1)
Star Strider
el 11 de Abr. de 2021
Editada: Star Strider
el 11 de Abr. de 2021
framelen = 400;
frames = buffer(y, framelen);
The ‘frames’ variable is a (400x360) matrix, and each column is a non-overlapping segment of ‘y’ that is 400 samples in length. It would also be possible to use the reshape function, however buffer is the easier option.
To plot them, simply plot each column.
EDIT —
The loop posted in the Comment would indicate that the plots would have 50% overlap, since the segment indices would be:
1 400
201 600
401 800
601 1000
801 1200
and so to the end of the file. The buffer function can also do that.
4 comentarios
Star Strider
el 11 de Abr. de 2021
There are at least two options:
for k = 1:size(frames,2)
figure
plot(frames(:,k)) % Plot Each In Separate Figure
end
or:
for k1 = 1:fix(size(frames,2)/10)
figure
for k2 = 1:10 % 36 Figures With 10 subplot Axes Each
subplot(5,2,k2)
plot(frames(:,k2+10*(k1-1)))
title(sprintf('Column %3d', k2+10*(k1-1)))
end
end
and any number of variations on the subplot version. Experiment to get the result you want.
Ver también
Categorías
Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!