% Define fs and time duration
fs = 10; % sample/second
duration = 1; % second
% Generate the time axis
t = 0:1/fs:duration-1/fs;
% the rectangular signal
x = ones(size(t));
% Plot the signal
subplot(2,1,1);
stem(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('orignal Signal x[n]');
% Convolve the signal with itself
y = conv(x, x);
% Generate the time axis for the convolved signal
t_conv = 0:1/fs:2*duration-1/fs;
% Plot the convolved signal
subplot(2,1,2);
stem(t_conv, y);
Error using stem
X must be same length as Y.
xlabel('Time (s)');
ylabel('Amplitude');
title('Convolved Signal y[n]');

3 个评论

i have a problem when i want to stem a function
(Error using stem
X must be same length as Y.)
The error is clear - The lengths of t_conv and y are not the same.
They should be the same.

请先登录,再进行评论。

 采纳的回答

Paul
Paul 2023-11-25

0 个投票

Because the first point in x corresponds to t = 0, so does the first point in y. t_conv has to have as many points as y. And the spacing in t_conv has to be fs. So the easiest way to construct the time vector that corresponds to y is
t_conv = (0:numel(y)-1)/fs

2 个评论

thank it work now
You're welcome.
Don't forget to divide y by fs if using conv, which computes the convolution sum, to approximate the convolution integral.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Chemical Process Design 的更多信息

产品

版本

R2023b

标签

Community Treasure Hunt

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

Start Hunting!

Translated by