본문 바로가기
programming language/MATLAB

MATLAB OOP(Object-Oriented Programming) Filter Class

by __observer__ 2014. 7. 9.
반응형

아래 글에도 답변을 달았지만 MATLAB 에서도 linked list 를 구성 할 수 있습니다.

 

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=104&docId=194575538&page=1#answer1

 

위 글에서 소개한 바와 같이 MATLAB 에서 linked list 를 구성하고자 하는 경우 classdef 을 사용했는데요~

 

오늘은 간단하게 Filter Class 를 하나 만들어보죠.

 

Filter 함수는 아래 주소에서 소개하듯이 1차원 디지털 필터입니다.

 

http://www.mathworks.co.kr/kr/help/matlab/ref/filter.html

 

MATLAB filter() 함수에 대해서는 아래 포스팅에서도 소개한 바가 있습니다.

2013/09/21 - [programming language/MATLAB] - MATLAB filter() 함수의 고급 사용


2011/03/01 - [programming language/MATLAB] - conv(), filter(), 인수분해 전개

 

filter 함수를 루프 내에서 사용하고자 하는 경우 그 연속성을 위해 filter의 state 를 계속해서 출력했다 저장했다 해야 하는데~

 

이런 경우 Class 의 형태로 만들어서 사용하는 게 편리하다고 생각합니다.

 

제가 사용하고 있는 Filter Class 는 아래 코드의 filter_O.m 파일입니다. 


filter_O.m Class 는 굉장히 간단하게 구성되어 있는데요~

 

filter_O의 생성자에서 필터의 numerator b 값과 denominator a 값을 설정하고~

 

멤버 함수인 filtering() 함수를 사용해서 filtering 을 수행하면 됩니다.

 

Filter 의 state 인 zi 값은 멤버 변수로 만들었고, 멤버 변수 out 이 필터의 출력 값입니다.


아래 코드의 Filtertest.m 파일을 실행해 보시면~ 



아래 그림과 같이 기존 filter 함수와 동일한 결과를 나타내는것을 확인 할 수 있습니다. 



반응형

댓글