Subplot function interfering with appropriate plot display
3 次查看(过去 30 天)
显示 更早的评论
When I try to use subplot to show impulse response and unit step response in the same figure, the impulse response plot displays incorrectly. Any idea why subplot is not plotting both the impulse response and unit step response appropriately? Uncomment the second section of code to see the problem. Thanks!
a = [1,-1,0.9];
b = [1];
n = [-20:120];
h = impz(b,a,n);
subplot(1,2,1); stem(n,h);
title('Impulse response'); xlabel('n'); ylabel('h(n)');
% %Plot unit step response ex. 2.11 b
% x = stepseq(0,-20,120);
% a1 = [1,-1,0.9]; b1 = [1];
% s = filter(b1,a1,x);
% n1 = [-20:120];
% subplot(1,2,2); stem(n1,s);
% title('Step response'); xlabel('n'); ylabel('s(n)');
1 个评论
采纳的回答
Star Strider
2017-8-23
The impulse and step responses are defined as beginning from 0, and do not exist for negative time. I can’t find ‘stepseq’ in the online documentation.
This works:
a = [1,-1,0.9];
b = [1];
n = [-20:120];
[h,t] = impz(b,a,n);
subplot(1,2,1); stem(t,h);
title('Impulse response'); xlabel('n'); ylabel('h(n)');
%Plot unit step response ex. 2.11 b
% x = stepseq(0,-20,120);
a1 = [1,-1,0.9]; b1 = [1];
s = stepz(b1,a1,120);
n1 = [-20:120];
subplot(1,2,2); stem(n1',[zeros(21,1); s]);
title('Step response'); xlabel('n'); ylabel('s(n)');
I would also stack them vertically rather than plot them horizontally, so use subplot(2,1,1) and subplot(2,1,2) instead.
更多回答(1 个)
Siambou Camara
2019-9-16
A well-known discontinuous function is impulse function that is defined as: δ(t) = 1 t = 0 0 otherwise. (1) In order to generate impulse function using matlab, follow the same steps as previous section, but this time using the following Matlab code.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subplots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!