conv() 함수와 filter() 함수의 차이를 알아보고자 한다.
다음과 같이 두 행벡터에 대하여
convolution 을 해보면 결과는 아래 와 같다.
그리고 x, y 에 대하여 filtering 을 해보면 결과는 아래와 같다.
딱 봐도 conv() 함수를 적용한게 더 길게 나온 것을 확인 할 수가 있다.
conv() 함수는 두 벡터의 길이를 더한 것 -1 만큼 길이의 결과가 나온다.
위 예에서는 x 의 길이가 3 이고 y 의 길이가 3 이므로 3+3-1 = 5 만큼의 결과가 나오는 것이다.
filter() 함수는 입력값이 길이만큼 출력이 나온다. filter() 함수의 입력 y 의 길이가 3 이므로 F 의 결과는 3 이 나오는 것이다.
filter() 함수를 이용하여 conv() 의 결과와 동일하게 나오게 하기 위해서는 입력값 y 에다 0 을 추가해 주면 된다.
식 (3) 과 같이 입력값 y 의 뒤에 0 을 두개 추가 해 주면 식 (1) 의 결과와 동일한 것을 확인 할 수 있다.
이제 conv() 함수와 인수분해 전개의 유사점에 대해 알아 보자.
(4)MATLAB 에서 이런 전개를 할 경우에 conv() 를 이용할 수 있다.
식 (4) 의 각 괄호 안에 있는 계수 값들을 차수의 순서 대로 묶어서 conv() 를 취하면 아래와 같은 결과가 나온다.
결과적으로 (6) 의 결과를 식 (5) 와 비교해 보면 계수 값이 같은 것을 알 수 있다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB 부분 분수 전개 residue() (0) | 2011.03.07 |
---|---|
MATLAB figure 창 위치를 바꿔보자 (4) | 2011.03.06 |
MATLAB 기본 함수들 (0) | 2011.03.02 |
[디지털 통신] Raised Cosine Filter (2) | 2011.03.02 |
Matlab Script coding tips, cell mode (0) | 2011.02.23 |
MATLAB tip, Shortcuts 을 이용해 보자 (0) | 2011.02.08 |
MATLAB movie() 함수를 이용하여 움직이는 그래프를 만들어보자 (12) | 2010.01.19 |
MATLAB String evaluation, eval() (4) | 2010.01.17 |
댓글