stem a convolve signal
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohammed Alqahtany
am 25 Nov. 2023
Kommentiert: Paul
am 25 Nov. 2023
% 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);
xlabel('Time (s)');
ylabel('Amplitude');
title('Convolved Signal y[n]');
3 Kommentare
Dyuman Joshi
am 25 Nov. 2023
The error is clear - The lengths of t_conv and y are not the same.
They should be the same.
Akzeptierte Antwort
Paul
am 25 Nov. 2023
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 Kommentare
Paul
am 25 Nov. 2023
You're welcome.
Don't forget to divide y by fs if using conv, which computes the convolution sum, to approximate the convolution integral.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Fourier Analysis and Filtering finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
