I want to plot my results individually under each other like a row and not a continues impulse response . Something isn't correct when i try it, Can someone help please?
조회 수: 7 (최근 30일)
이전 댓글 표시
x = zeros(1, 20000);
x(1 : 4000 : 20000);
xresh = reshapex, 4000, 5);
So every 4000fs i want to plotted graph?
댓글 수: 0
채택된 답변
Star Strider
2019년 1월 18일
I am not certain what you want.
Try this:
x = linspace(0, 20000, 20000)'; % Create Column Vector
y = sin(x*pi/500); % Create Data
xresh = reshape(x, 4000, 5);
yresh = reshape(y, 4000, 5);
yresh = bsxfun(@plus, yresh, (0:2:2*(size(yresh,2)-1))); % Add Offsets
figure
plot(xresh, yresh)
grid
Experiment to get your desired result.
댓글 수: 9
Star Strider
2019년 1월 22일
As always, my pleasure.
Yes. You can probably make that dynamic by doing something like:
xresh = reshape(x, fix(x/5), 5);
However, you need to choose a recording tiime and sampling frequency that will produce a value for the length of your recorded sound vector that is an integer multiple of the number of segments you want. The reshape function will fail otherwise.
추가 답변 (2개)
codefanta
2019년 1월 23일
댓글 수: 3
Star Strider
2019년 1월 27일
As always, my pleasure.
That bsxfun (link) call multiplies each column of ‘yresh’ by the corresponding element of the ‘( 0 : size(yresh,2 ) -1) ) * 2’ vector. That vector is equivalent to ‘[0, 2, 4, 6, 8]’. The purpose is to separate the columns by multiples of 2. Since the sound vectors are limited to a magnitude of ±1, this guarantees that they will be separated, and not overlap in the plot.
참고 항목
카테고리
Help Center 및 File Exchange에서 Frequency Transformations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!