오버랩-추가 방법

Overlap–add method

신호 처리에서 오버랩-add 방법은 다음과 같은 유한 임펄스 응답(FIR) h[ 을(를) 가진 매우 긴 x[ 의 이산형 콘볼루션을 평가하는 효율적인 방법이다

(Eq.1)

여기서 h[m] = 영역 밖에서 m경우 0 [1, M]This article uses common abstract notations, such as or in which it is understood that the functions should be thought of in their totality, rather than at specific instants (see Convolution#Notation).

그림 1: 5개의 그림 순서는 오버랩 추가 콘볼루션 알고리즘의 한 사이클을 나타낸다.첫 번째 플롯은 저역 통과 FIR 필터로 처리할 긴 데이터 시퀀스다.두 번째 그림은 조각처럼 처리되는 데이터의 한 부분이다.세 번째 그래프는 필터 상승 및 하강 과도현상을 포함하여 필터링된 세그먼트다.네 번째 그래프는 이전 세그먼트의 결과와 함께 새 데이터가 추가될 위치를 나타낸다.다섯 번째 플롯은 업데이트된 출력 스트림이다.FIR 필터는 M=16 샘플이 있는 박스카 로우패스(boxcar lowpass)이며, 세그먼트의 길이는 L=100 샘플이며 겹치는 샘플은 15개 샘플이다.

개념은 x[ 의 짧은 세그먼트를 가진 h[]의 다중 경련으로 문제를 나누는 것이다

여기서 L은 임의 세그먼트 길이입니다.다음:

그리고 y[n]는 짧은 경련의 합으로 쓸 수 있다.[1]

여기서 선형 컨볼루션 [ x k [ n h[ 은(는) 영역 외부에 0이다[1, L + M - 1].그리고 모든 파라미터 + M- ,에 대해 영역[A] [1, N]에서 h [ N 포인트 원형 콘볼루션과 동일하다.이점은 원형 콘볼루션 정리에 따라 원형 콘볼루션을 선형 콘볼루션보다 더 효율적으로 계산할 수 있다는 것이다.

(Eq.2)

여기서:

  • DFT와N IDFT는N 이산 푸리에 변환과 그 역(N개의 이산형 점들에 대해 평가)을 참조한다.
  • L은 N = L+M-1이 2의 정수 출력이고, 변환은 효율을 위해 FFT 알고리즘으로 구현된다.

가성음

다음은 알고리즘의 유사점이다.

(선형 콘볼루션에 대한 오버랩-add 알고리즘) h = FIR_impulse_response M = 길이(h) Nx = 길이(x) N = 8 x 2^ceiling(log2(M) ) (필터 길이 M보다  2개의 최소 전력의 8배)  See next section for a slightly better choice.) step_size = N - (M-1)  (L in the text above) H = DFT(h, N) position = 0 y(1 : Nx + M-1) = 0  while position + step_size ≤ Nx do     y(position+(1:N)) = y(position+(1:N)) + IDFT(DFT(x(position+(1:step_size)), N) × H)     position = position + step_size end

효율성 고려사항

그림 2: 비용 함수 N ⁡ N+ 1 )- + {\을 최소화하는 N 값(2의 정수 검정력)의 그래프.

DFT와 IDFT가 FFT 알고리즘에 의해 구현되는 경우, 위의 가성소드는 FFT, 어레이의 제품, IFFT에 대한 N(log2(N) + 1) 복합승수를 요구한다.[B]각 반복은 N-M+1 출력 샘플을 생성하므로 출력 샘플당 복잡한 곱의 수는 다음과 같다.

(Eq.3)

예를 들어, M=201과 N=1024일 때 Eq.3은 13.67인 반면 Eq.1의 직접 평가에는 출력 샘플당 최대 201개의 복잡한 승수가 필요한데, 가장 나쁜 경우x와 h가 모두 복합적으로 계산된 경우다.또한 주어진 M에 대해 Eq.3N에 대한 최소값을 가지고 있다는 점에 유의한다.그림 2는 다양한 필터 길이(M)에 대해 Eq.3을 최소화하는 N 값을 그래프로 나타낸 것이다.

Eq.1 대신 길이 긴 시퀀스에 Eq.2를 적용하는 것도 고려할 수 있다.복합 승수의 총 수는 다음과 같을 것이다.

비교적으로, 유사코드 알고리즘에 의해 요구되는 복잡한 승수의 수는 다음과 같다.

Hence the cost of the overlap–add method scales almost as while the cost of a single, large circular convolution is almost .이 두 가지 방법은 Matlab 시뮬레이션에 의해 만들어진 그림 3에서도 비교된다.등고선은 두 방법을 모두 수행하는 데 걸리는 시간의 일정한 비율의 선입니다.오버랩 애드 방식이 더 빠를 때 비율이 1을 초과하고, 3에 이르는 비율이 보인다.

그림 3: 단일 대형 원형 콘볼루션과 비교한 오버랩 추가 방법의 획득.축은 신호 길이 N과x 필터 길이 N의h 값을 나타낸다.

참고 항목

메모들

  1. ^ 이 조건은 x 세그먼트에 최소 M-1에 0이 추가되어 출력 상승 및 하강 과도현상이 순환 중복되지 않음을 의미한다.
  2. ^ N=2k needs (N/22) log(N)에 대한 Cooley-Tukey FFT 알고리즘 – FFT 정의속도 참조

참조

  1. ^ Rabiner, Lawrence R.; Gold, Bernard (1975). "2.25". Theory and application of digital signal processing. Englewood Cliffs, N.J.: Prentice-Hall. pp. 63–65. ISBN 0-13-914101-4.

추가 읽기

  • Oppenheim, Alan V.; Schafer, Ronald W. (1975). Digital signal processing. Englewood Cliffs, N.J.: Prentice-Hall. ISBN 0-13-214635-5.
  • Hayes, M. Horace (1999). Digital Signal Processing. Schaum's Outline Series. New York: McGraw Hill. ISBN 0-07-027389-8.