14
7 FIR필터 설계 (C) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 IIR 필터설계에 흔히 사용되는 기술은 연속시간 IIR 시스템을 이산시간 IIR 시스템으로 변환하는 것이다. 그 이유는 이산 시간 필터가 연구되기 전에 연속 시간 필터의 설계기술이 개발되어 있었고, IIR 필터를 비반복적 직접 설계법으로 구현하는데 어려움이 있기 때문이다. 이와는 반대로, FIR 필터는 전적으로 이산 시간 구현으로 제한된다. FIR 필터의 설계 기술은 이산 시간 시스템의 주파수 응답을 직접 근사화하는 것을 바탕으로 한다. FIR 시스템의 크기 응답을 근사화하기 위한 대부분의 기술은 선형위상이라고 가정함으로서, IIR 필터의 직접 설계를 어렵게 하는 스펙트럼 분해문제를 피한다. FIR 필터설계의 가장 단순한 방법이 창함수법(window design technique)이다. 창함수 설계의 기본적인 생각은 다음과 같다. 먼저 언제나 인과적이지 않은 무한 임펄스 응답을 갖는, 적당한 이상적 주파수 선택적 필터를 고른다. 그리고 나서, 선형 위상 인과적 FIR 필터를 얻기 위해, 임펄스 응답을 잘라낸다(즉, 창을 만든다). 그러므로, 이 방법의 핵심은 적당한 창함수(windowing function) 와 적당한 이상적 필터(ideal filter) 를 고르는 것이다. 이상적인 주파수 선택적 필터를 라 하자. 이것은 통과대역에서는 크기 이득이 1 이고, 선형 위상 특성을 갖는다. 반면에 저지대역에서는 응답이 0 이다. 대역폭(bandwidth)이 < π 인 이상적 저역통과 필터(LPF) 는 다음과 같다 여기서 는 차단 주파수(cutoff frequency) 라고 하고, 는 샘플 지연이라고 한다(DTFT의 성질로부터, n 의 양의 방향으로의 이동, 즉 지연을 의미함을 주목하여라). 필터의 임펄스 응답은 무한이고, 다음과 같이 주어진다.

7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

제 7 장 FIR 필터 설계 (C)

7.3 창함수 설계 기법 (1)

다음 장에서 설명되겠지만 IIR 필터설계에 흔히 사용되는 기술은 연속시간 IIR 시스템을 이산시간 IIR 시스템으로 변환하는 것이다. 그 이유는 이산 시간 필터가 연구되기 전에 연속 시간 필터의 설계기술이 개발되어 있었고, IIR 필터를 비반복적 직접 설계법으로 구현하는데 어려움이 있기 때문이다.

이와는 반대로, FIR 필터는 전적으로 이산 시간 구현으로 제한된다. FIR 필터의 설계 기술은 이산 시간 시스템의 주파수 응답을 직접 근사화하는 것을 바탕으로 한다. FIR 시스템의 크기 응답을 근사화하기 위한 대부분의 기술은 선형위상이라고 가정함으로서, IIR 필터의 직접 설계를 어렵게 하는 스펙트럼 분해문제를 피한다.

FIR 필터설계의 가장 단순한 방법이 창함수법(window design technique)이다. 창함수 설계의 기본적인 생각은 다음과 같다. 먼저 언제나 인과적이지 않은 무한 임펄스 응답을 갖는, 적당한 이상적 주파수 선택적 필터를 고른다. 그리고 나서, 선형 위상 인과적 FIR 필터를 얻기 위해, 임펄스 응답을 잘라낸다(즉, 창을 만든다). 그러므로, 이 방법의 핵심은 적당한 창함수(windowing function)와 적당한 이상적 필터(ideal filter)를 고르는 것이다.

이상적인 주파수 선택적 필터를 라 하자. 이것은 통과대역에서는 크기 이득이 1 이고, 선형 위상 특성을 갖는다. 반면에 저지대역에서는 응답이 0 이다.

대역폭(bandwidth)이 < π인 이상적 저역통과 필터(LPF)는 다음과 같다

여기서 는 차단 주파수(cutoff frequency)라고 하고, 는 샘플 지연이라고 한다(DTFT 의

성질로부터, 는 n 의 양의 방향으로의 이동, 즉 지연을 의미함을 주목하여라). 이 필터의 임펄스 응답은 무한이고, 다음과 같이 주어진다.

Page 2: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

이 α에 대해 대칭임을 주목하여라. 이 사실은 선형 위상 FIR 필터에 매우 유용한

것이다. 으로부터 FIR 필터를 얻기 위해서, 의 양쪽을 잘라내야 한다. 길이가 M 인 인과적 선형 위상 FIR 필터 h(n)은 다음과 같다.

이 연산을 창만들기( windowing )라 한다. 일반적으로 h(n)은 다음과 같이 과 창함수 ω(n)의 곱에 의해 만들어진다고 생각할 수 있다.

여기서,

위의 ω(n)을 어떻게 정의하느냐에 따라, 다른 창 설계를 얻을 수 있다. 예를 들면 위의 식

(7.20)에서

이면, 5 장에서 정의했던 직사각형 창(rectangular window)이 된다.

주파수 영역에서 인과적 FIR 필터 응답 는 와 창함수 응답 의 주기적 콘벌루션으로 주어진다. 즉,

그림 7.8 에 전형적인 창함수 응답에 대한 주기적 콘벌루션을 그림으로 나타내었다. 이것으로부터 다음과 같은 관찰 결과를 얻을 수 있다.

Page 3: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

1. 창함수 ω(n)은 M 의 유한 길이를 갖기 때문에, 이것의 응답은 1/ M 에 비례하는 폭을 가진, 높이 솟아있는 주엽(main lobe)과 높이가 작은 부엽들(side lobes)을 갖는다.

2. 식 (7.22)의 주기적 콘벌루션은 이상적인 응답 의 변형 를 만들어낸다.

3. 주엽은 에서 전이대역폭을 결정하는 전이대역을 만든다. 이 폭은 1/ M 에 비례한다. 주엽이 넓을수록, 전이대역폭도 넓어진다.

4. 부엽들은 통과대역과 저지대역 모두에 비슷한 모양을 갖는 리플(ripple)을 만든다.

그림 7.8 주파수 영역에서의 창함수 연산

기본적 창 설계 아이디어

주어진 필터의 사양에 대하여, 가능한 좁은 주엽폭과 작은 부엽 감쇠를 갖도록 필터의 길이 M 과 창함수 ω(n)을 선택한다.

위의 관찰결과 4 번으로부터, 통과대역 허용오차 δ₁과 저지대역 허용오차 δ₂는 독립적으로 주어질 수 없다는 것을 알 수 있다. 보통 δ₂에만 관심을 갖고, δ₂ = δ₁으로 한다. 이제 여러 종류의 잘 알려진 창함수들에 대해 알아보자. 주파수 영역에서의 동작을 공부할 예제로 직사각형 창함수를 사용할 것이다.

직사각형 창함수 (Rectangular window)

이것은 가장 간단한 창함수이다. 그러나 저지대역 감쇠의 관점에서 보면 가장 나쁜 성능을 나타낸다. 이 함수는 다음과 같이 정의된다.

Page 4: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

주파수 응답 함수는 다음과 같다.

이것은 진폭 응답이다. 식 (7.22)로부터 실제 진폭 응답 는 다음과 같이 주어진다.

이것은 전이대역폭과 저지대역 감쇠를 정확히 분석할 때, 창함수 진폭 응답의 이동 적분(누적된 진폭 응답)이 필요함을 의미한다. 그림 7.9는 직사각형 창함수 ω(n), 진폭 응답 , 진폭 응답 W(ω)의 dB 표현, 그리고 식 (7.24) 의 누적된 진폭 응답에 대한 dB 표현을 보여준다. 그림 7.9로부터 다음의 몇 가지 관찰 결과를 얻을 수 있다.

Page 5: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

1. 진폭 응답 는 ω = ω₁에서 처음으로 0 의 값을 갖는다. 여기서,

이다. 그러므로 주엽의 폭은 2ω₁ = 4π/M 이다. 따라서, 전이대역폭의 근사값은 4π/M 이다.

2. 부엽중에서 가장 큰 첫 번째 부엽의 크기는 대략 ω = 3π/M 에서 다음과 같은 값을 갖는다.

이것과 주엽 진폭 M 을 비교해보면, 최고 부엽 크기는 주엽 진폭의

이다.

3. 누적된 진폭 응답의 첫 번째 부엽 크기는 이다. 이로 인해 최소 저지대역 감쇠는 창의 길이 M 과 관계없이 이다.

4. 최소 저지대역 감쇠를 사용하면 전이대역폭을 정확하게 계산할 수 있다. 이것은 그림 7.9의 누적된 진폭 응답( accumulated amplitude response) 그래프에 나타내었다. 정확히 계산한 전이대역폭은

로, 대략 대역폭의 근사값 4π/M 의 반이다.

이것은 시간 영역에서의 간단한 창함수 연산이고, 주파수 영역에서 분석하기 쉬운 함수이다. 그러나 두 가지 주요한 문제가 있다. 첫째로, 의 최소 저지대역 감쇠는 실제 응용에서

충분하지 않다. 둘째로, 직사각형 창함수는 무한길이를 가진 를 직접 자르는 것이므로 깁스 현상(Gibbs phenomenon)이 발생한다. M 을 증가시키면 각 부엽의 폭은 줄어든다. 그러나, 각 부엽 아래의 면적은 변하지 않고, 최소 저지대역 감쇠도 여전히 이다.

Page 6: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

이것은 모든 리플(ripple)들이 대역끝 근처로 모임을 의미한다. 이 현상을 그림 7.10 에 나타내었다.

직사각형 창함수는 여러 응용 분야에서 실용적이지 못하므로, 다른 창함수를 생각해야 한다. 이런 창함수들의 대부분은 이를 처음 제안했던 사람의 이름을 딴 명칭을 갖는다. 다른 창함수들도 직사각형 창함수와 비슷하게 분석할 수 있지만, 여기서는 그 결과만을 제시하겠다.

바틀렛 창함수(Bartlett window)

직사각형 창함수는 0 에서 1, 또는 1 에서 0 으로 갑자기 전이하므로 깁스 현상이 발생한다. 이 때문에 바틀렛(Bartlett)은 아래의 식과 같이 삼각형 모양으로 천천히 전이하는 창함수를 제안했다.

이 창함수와 주파수 응답 그래프를 그림 7.11 에 나타내었다.

Page 7: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

해닝 창함수(Hanning window)

이것은 코사인 그래프를 올린 형태의 창함수이다. 그 식은 다음과 같다.

이 창함수와 주파수 응답 그래프를 그림 7.12 에 나타내었다

Page 8: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

해밍 창함수(Hamming window)

이 함수는 약간의 불연속성을 갖는 것을 제외하면 해닝 창함수와 거의 유사하다. 그 식은 다음과 같다.

이 창함수와 주파수 응답 그래프를 그림 7.13 에 나타내었다.

블랙맨 창함수(Blackman window)

이 함수는 2 차 조파(second harmonic) 항을 갖는 것을 제외하면 앞의 두 창함수와 거의 유사하다. 그 식은 다음과 같다.

이 창함수와 주파수 응답 그래프를 그림 7.14 에 나타내었다.

Page 9: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

표 7.1에 이 창함수들의 특성(M 의 함수로 나타낸 전이대역폭과 dB 로 표시한 최소 저지대역 감쇠)을 요약하였다. 정확한 전이대역폭뿐만 아니라 그 근사값도 표시하였다. 표의 아래쪽으로 갈수록 전이대역폭과 최소 저지대역 감쇠가 증가하는 것을 주목하여라. 이 중에서는 해밍 창함수가 가장 좋은 것임을 알 수 있다.

Page 10: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

카이저 창함수(Kaiser window)

카이저 창함수는 아주 유용한 최적의 창함수 중 하나이다. 이것은 주어진 저지대역 감쇠하에서 가장 큰 주엽폭을 나타낸다는 점에서 최적의 창함수이다. 이는 전이대역폭이 매우 가파르다는 것을 의미한다. 이 창함수는 J. F. Kaiser 가 만들었고, 다음의 식으로 주어진다.

여기서 는 변형된 0 차 베셀(Bessel) 함수이다. β는 M 에 의해 결정되는 파라미터로, 다양한 전이폭과 최적에 가까운 저지대역 감쇠를 만들도록 값을 선택할 수 있다. 이 창함수는 같은 M 에 대해서 다른 전이대역폭을 나타낼 수 있는데, 이는 다른 창함수들이 갖지 못한 특성이다. 예를 들면,

만약 β = 5.658 이면, 전이대역폭은 이고, 최소 저지대역 감쇠는 60dB이다. 이것은 그림 7.15 에 나타내었다.

만약 β = 4.538 이면, 전이대역폭은 이고, 최소 저지대역 감쇠는 50dB이다.

창함수 설계법의 중요한 원리는 유한길이 창함수를 이용하여 이상 임펄스 응답을 절단하는 것이다. 주파수 영역에서 그 효과는 이상 주파수 응답이 창함수의 푸리에 변환과 콘벌루션된다는 것이다. 이상필터가 저역통과 필터라면, 창함수의 푸리에 변환의 주엽이 콘벌루션 과정에서 불연속 부분을 가로질러 움직일 때, 이상필터의 주파수응답의 불연속부분은 손상된다. 간략화된 근사화의 결과로 얻어지는 전이 대역의 폭은 창함수의 푸리에 변환의 주엽의 폭에 의해 결정되고, 통과 대역과 저지대역의 리플은 창함수의 부엽에 의해 결정된다. 통과대역과 정지대역의 리플은 창함수의 부엽의 적분에 의하여 생성하기 때문에, 저지대역과 통과대역의 리플은 거의 동일하다. 좋은 근사화의 결과에 따르면 통과대역과 저지대역의 최대편차는 M 에 의존하지 않고, 창함수의 형상을 변화시키므로써만 변경될 수 있다. 그러므로 카이저 창함수의 동작은 해밍 창함수의 동작과 비슷하다. 게다가 이 창함수는 유연한 전이대역폭을 갖는다. 그러나, 베셀 함수와 관련된 복잡성으로 인하여 이 창함수에 대한 설계 방정식의 유도는 쉽지 않다. 다행히도 카이저는 경험적인 설계 방정식을 만들었다. 이 식을 증명 없이 아래에 제시하였다.

Page 11: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

설계 방정식

가 주어지면,

설계 예제

여기서는 창함수 기법과 FIR 필터를 설계하는 몇 가지 예제를 소개하겠다.

예제 7.8 다음 사양을 가지고 디지털 FIR 저역통과 필터를 설계하여라.

Page 12: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

다음은 CEMTool 로 계산된 결과입니다. 예제 7.8 의 해

CEMTool>> wp = 0.2*pi; ws = 0.3*pi; CEMTool>> tr_width = ws - wp; CEMTool>> M = pinf(6.6*pi/tr_width) + 1 M = 67 CEMTool>> n=[0:M-1:1]; CEMTool>> wc = (ws+wp)/2; /* Ideal LPF cutoff frequency */ CEMTool>> hd = ideallp(wc,M); CEMTool>> w_ham = (hamming(M))'; CEMTool>> h = hd .* w_ham; CEMTool>> [db,mag,pha,grd,w] = mfreq_z(h,[1]); CEMTool>> delta_w = 2*pi/1000; CEMTool>> Rp = -(min(db(1:1:wp/delta_w+1))) /* Actual Passband Ripple */ Rp = 0.0394 CEMTool>>As = -round(max(db(ws/delta_w+1:1:501))) /* Min Stopband attenuation */ As = 52 CEMTool>> /* plots */ CEMTool>> subplot(1,1,1) CEMTool>> subplot(2,2,1); stem(n,hd); title("Ideal Impulse Response") CEMTool>> xtitle("n"); ytitle("hd(n)") CEMTool>> subplot(2,2,2); stem(n,w_ham);title("Hamming Window") CEMTool>> xtitle("n"); ytitle("w(n)") CEMTool>> subplot(2,2,3); stem(n,h);title("Actual Impulse Response") CEMTool>> xtitle("n"); ytitle("h(n)") CEMTool>> subplot(2,2,4); plot(w/pi,db);title("Magnitude Response in dB"); CEMTool>> xtitle("frequency in pi units"); ytitle("Decibels") 시간 영역과 주파수 영역에서의 (4번째 그래프의 y축 최소값을 -100으로 조정한) 그래프를 그림 7.16에 나타내었다.

표 7.1로부터 적당한 창함수를 선택하여라. 임펄스 응답을 구하고, 설계한 필터의 주파수 응답을 그려라.

해밍과 블랙맨 창함수가 50dB보다 큰 감쇠를 나타낼 수 있다. 여기서는 더 작은 전이대역폭을 나타내는, 즉 차수가 낮은 해밍 창함수를 골라 보자. 비록 설계할 때

통과대역 리플값 를 사용하지는 않지만, 설계한 후에 실제 리플값을 조사해서 진짜로 주어진 허용오차 안에 들어가는지 확인할 것이다.

Page 13: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

필터의 길이 M = 67, 실제 저지대역 감쇠는 52dB, 실제 통과대역 리플은 0.0394dB 임을 주목하여라. 이 설계는 통과대역 리플 조건을 만족시킨다. 이렇게 통과대역 리플을 확인하는 습관을 가져야 한다. 시간 영역과 주파수 영역에서의 (4 번째 그래프의 y 축 최소값을 -100 으로 조정한) 그래프를 그림 7.16 에 나타내었다.

다음은 MatLab 으로 계산된 결과입니다.

예제 7.8 의 해

>> wp = 0.2*pi; ws = 0.3*pi; >> tr_width = ws - wp; >> M = ceil(6.6*pi/tr_width) + 1 M = 67

>> n=[0:1:M-1]; >> wc = (ws+wp)/2 % Ideal LPF cutoff frequency wc = 0.7854

>> hd = ideal_lp(wc,M); >> w_ham = (hamming(M))'; >> h = hd .* w_ham; >> [db,mag,pha,grd,w] = freqz_m(h,[1]); >> delta_w = 2*pi/1000; >> Rp = -(min(db(1:1:wp/delta_w+1))) % Actual Passband Ripple Rp = 0.0394

As = -round(max(db(ws/delta_w+1:1:501))) % Min Stopband attenuation As = 52

Page 14: 7.3 창함수 설계 기법 (1) - ICDEVICE · 2007-04-17 · 제 7 장 fir 필터 설계 (c) 7.3 창함수 설계 기법 (1) 다음 장에서 설명되겠지만 iir 필터설계에

% plots >> subplot(1,1,1) >> subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') >> axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('hd(n)') >> subplot(2,2,2); stem(n,w_ham);title('Hamming Window') >> axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)') >> subplot(2,2,3); stem(n,h);title('Actual Impulse Response') >> axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('h(n)') >> subplot(2,2,4); plot(w/pi,db);title('Magnitude Response in dB');grid >> axis([0 1 -100 10]); xlabel('frequency in pi units'); ylabel('Decibels')

그림 예제 7.8의 저역통과 필터 그래프