LTI시스템에 대해서 배우면서 이게 당최 뭔소리인가.. 싶었는데
마침 매트랩에서 실습했다!
...
conv 함수 (>> help conv)
∙ C = conv(A, B) convolves vectors A and B.
The resulting vector is length(A)+length(B)-1.
∙ 0과 1사이에 sample이 k개일 때, y축 크기는 실제의 k배이다.
0과 1사이를 잘게 나누어서 11111막 이래
적분했을때가아니라, 더하기했을때는 1*100 = 100이나옴
샘플이 100개이면, y축크기는 100개가 된다
(∵ MABLAB에서는 discrete signal의 convolution을 수행하기 때문)
∙ [Example 2.3.7]에서 y=conv(x,h)를 y=conv(x,h)*0.01로 바꾸어야 continuous convolution을 한 것으로 그려진다.
100개로 표현했으면 100으로 나누어주거나, 간격을 곱해주면 1/간격 = 가로축 1이라는 폭에서의 샘플의 개수
0과 1사이에 100개 있으니까 0.01 을 곱해줌
matlab의 상세한 설명
w = conv(u,v)는 벡터 u와 v의 컨벌루션을 반환합니다. u와 v가 다항식 계수의 벡터인 경우 컨벌루션은 두 다항식의 곱셈과 같습니다.
w = conv(u,v,shape)는 컨벌루션에서 shape로 지정되는 하위 섹션을 반환합니다. 예를 들어, conv(u,v,'same')은 크기가 u와 동일한, 컨벌루션의 중앙부만 반환하고, conv(u,v,'valid')는 모서리를 0으로 채우지 않고 계산한 컨벌루션의 부분만 반환합니다.
% Example 2.3.7
A=1 ; T=2 ;
t=0:0.01:5 ; %눈으로 보았을때continuous처럼 보이게
x=A*exp(-t) ;
h=1/T*fn_r(t).*fn_u(T-t) ;
y=conv(x,h)*0.01 ;%x와h가 discrete하게 저장됨 ,x나h길이보다 길어짐
%가로축 시간간격을 곱해서 원하는 값을 얻도록한다.
subplot(311),
plot(t,x), grid on
ylabel('x(t)')
title('Example 2.3.7')
subplot(312),
plot(t,h), grid on
ylabel('h(t)')
subplot(313),
plot(t,y(1:length(t))), grid on
ylabel('y(t)=conv(x(t),h(t))')
xlabel('time (t)')
% functions
function y=fn_u(t)
% unit step function
y=zeros(1,length(t));
for i=1:length(t)
if t(i)==0
y(i)=0.5;
elseif t(i)>0
y(i)=1;
end
end
end
function y=fn_r(t)
% unit ramp function
y=zeros(1,length(t));
for i=1:length(t)
if t(i)>0
y(i)=t(i);
end
end
end
% Example 2.3.8
a=1 ;
dt=1 ;
t=-3:dt:3 ;
x=fn_u(t+a).*fn_u(a-t) ;
h=x ;
y=conv(x,h)*dt ;
ty=-6:dt:6 ;%y를 그리기 위한 가로축, 평행이동한 만큼이 컨볼루션의 시작점
subplot(311),
plot(t,x), grid on
axis([-3 3 -0.2 1.2]),
ylabel('x(t)')
title('Example 2.3.8')
subplot(312),
plot(t,h), grid on
axis([-3 3 -0.2 1.2]),
ylabel('h(t)');
subplot(313),
plot(ty,y(1:length(ty))), grid on
axis([-3 3 -0.2 2.2]),
ylabel('y(t)=x(t)*h(t)')
xlabel('time (t)')
%사각형두개 컨볼루션하면 삼각형나옴
% functions
function y=fn_u(t)
% unit step function
y=zeros(1,length(t));
for i=1:length(t)
if t(i)==0
y(i)=0.5;
elseif t(i)>0
y(i)=1;
end
end
end
'✍2021,2022 > MATLAB' 카테고리의 다른 글
2. 실습 (0) | 2021.09.23 |
---|---|
MATLAB 실습 필기(신호 및 시스템) (0) | 2021.09.09 |