2차 digital filter 설계
기본적인 DSP IIR 필터는 아날로그 필터에서 bilinear transform을 하여 IIR 필터를 구현하는 방식으로 구현됨. 따라서 IIR필터를 설계한다는것은 아날로그 필터에 대한 이해만 있으면 쉽게 구현이 가능함.
IIR filter
-
IIR filter는 'infinite impulse respons filter의 줄임말임. 즉 피드백 구조가 무한하게 이어진 구조로 코드로 구현하면 재귀 구조로 출력값을 불러오는 구조, 하지만 실제 구현에서는 DP로 구현하긴 함
-
따라서 이걸 대충 Biquad 구조로 설명하자면,
y[n]=b0x[n]+b1x[n−1]+b2x[n−2]−a1y[n−1]−a2y[n−2]
-
전달 함수는 다음과 같음
H(z)=1+a1z−1+a2z−2b0+b1z−1+b2z−2
-
이때 대략적인 설계 순서를 정리하면
- 원하는 특성주파수 ω0 와 Q 값을 설정
- 이를 바탕으로 a1 과 a2를 계산하고
- 해당값들은 기본적으로 모든필터에서도 똑같이 적용됨
- 고정된 a 계수를 사용하여 분자의 b 계수를 계산하면 됨
핵심 포인트
- 분모의 값은 특성주파수와 Q값에 의해서 결정됨, 즉 컷오프 영역에서의 주파스 응답특성에 따라서 결정된다고 보면된다.
- 분자의 계수는 필터의 특성 (Low pass, high pass, band pass) 등을 결정
-
여튼 IIR필터의 특징은 전에 입력된값을 계속해서 재귀적으로 불러온다는 점인데, 장단점을 요약하면 다음과 같음
- 장점
1.피드백 구조로 이어지기 떄문에 외부환경 변화에 둔감
2.비선형 왜곡을 줄이고
3.노이즈 효과를 줄여줌
- 단점
1.차수가 높을 수록 해석이 어렵고
2.위상응답이 비선형 적임
-
우선 여기 공통되는 a 값을 우선 계산
a1=1+α−2cos(ω0),a2=1+α1−α
이때 α=qsin(ω0) 이고, q=1/2Q 로 계산이 됨
-
그리고 계수에 따른 특성은 아래와같이 계산이 됨
lowpass:b0=b2=41+a1+a2,b1=2b0high−pass:b0=b2=41−a1+a2,b1=−2b0bandpass:b0=−b2=21−a2,b1=0allpass:b0=a2,b1=a1,b2=1
최종적으로 요약하면 위와 같이 정리가 된다고 볼 수 있음