How do I plot a 144000 sample sound file with 400 samples in different windows with for loop?
조회 수: 2 (최근 30일)
이전 댓글 표시
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
Jan
2021년 4월 11일
What does this mean: "Each window will contain 400 instances of it" - what is "it"?
답변 (1개)
Star Strider
2021년 4월 11일
편집: Star Strider
2021년 4월 11일
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
Star Strider
2021년 4월 11일
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Audio I/O and Waveform Generation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!