%% Demonstrasjonsskript for kapittel 2 - Diskret-tid signaler og systemer % Verjson 0.1 - Sten Roar Snare, Aug. 2015 %Vi animerer konvolusjon av to rektangler %(OBS! Dette er en "tailored implementasjon for visualisering" % og IKKE en generell implementasjon av diskret konvolusjon!) clear all L = 5; %Rektangelets halvbredde N = 25; n = [-N:N]; rect1 = zeros(2*N+1,1); rect1(N+1-L:N+1+L) = 1; figure(1);clf for k = 1:2*(N-L) subplot(3,1,1) stem(n,rect1); axis([-20 20 0 1.5]);grid on subplot(3,1,2) rect2 = zeros(size(rect1)); rect2(k:k+2*L) = 1; stem(n,rect2,'r'); axis([-20 20 0 1.5]);grid on subplot(3,1,3) stem(n(k)+L,sum(rect1.*rect2)); axis([-20 20 0 20]);grid on hold on pause end %% Nullinnsetting signal1 = [1,2]; signal2 = [3,1,4] conv1 = conv(signal1, signal2); figure(2);clf subplot(3,1,1); stem([0,1],signal1); hold on; stem([0,1,2],signal2,'r*'); stem([0,1,2,3],conv1,'gx'); axis([0 5 0 10]) title('Original signal') legend('S1','S2','Conv') signal1_p = [1 0 0 2] signal2_p = [3 0 0 1 0 0 4] conv1_p = conv(signal1_p, signal2_p) subplot(3,1,2); stem(0:3,signal1_p); hold on; stem(0:6,signal2_p,'r*'); stem(0:(4+7-1-1),conv1_p,'gx'); axis([0 10 0 10]) title('Padding innimellom') legend('S1','S2','Conv') %Padding f?r og etter signal1_p2 = [1 2 0 0] signal2_p2 = [0 0 0 3 1 4 0] conv1_p2 = conv(signal1_p2,signal2_p2) subplot(3,1,3); stem(0:3,signal1_p2); hold on; stem(0:6,signal2_p2,'r*'); stem(0:(4+7-1-1),conv1_p2,'gx'); axis([0 10 0 10]) title('Padding f?r og etter') legend('S1','S2','Conv')