왜 주파수 영역에서 신호를 조작 한 다음 시간 영역으로 복구하지 않고 대역 통과에 디지털 필터를 사용해야합니까?


15

나는 신호 처리에 대한 초보자이며이 질문이 너무 광범위하다는 것을 알고 있습니다. 그러나 나는 여전히 전문가들의 힌트를 듣고 싶습니다.

MATLAB에서 오프라인 (즉, 기록 완료 후)의 뇌파 (뇌파도) 신호의 대역 통과 필터링 을 위해 butter(버터 워스 필터 (최대 버터 크기 필터) 및 filtfilt제로 위상 디지털 필터링) 기능 을 사용하는 방법을 배웠습니다 . 이러한 방식으로 디지털 필터 (예 : 영 위상 필터링)로 인한 불가피한 "지연"을 피할 수 있습니다.

그런 다음 누군가가 fft(고속 푸리에 변환)을 사용 하여 신호의 주파수 영역 표현을 얻을 수없는 이유를 묻고 원하지 않는 주파수의 전력을 0으로 설정 한 다음 ifft(역 고속 푸리에 변환)에 따라 필터링 된 데이터를 제 시간에 복구 같은 목적으로 도메인. 주파수 영역에서의 이러한 조작은 나에게 더 단순하고 합리적으로 들렸으며, 그 이유를 실제로 대답 할 수 없었습니다.

fft/ifft대역 통과 필터링에 간단한 방법을 사용할 경우의 장단점은 무엇입니까 ? 사람들이 FIR 또는 IIR 디지털 필터를 선호하는 이유는 무엇입니까?

예를 들어, fft/ifft기존의 디지털 필터에 비해 스펙트럼 누출 또는 리플이 발생하기 쉬운 방법이 있습니까? 이 방법은 또한 위상 지연으로 고통 받습니까? 비교를 위해이 필터링 방법에 대한 임펄스 응답을 시각화하는 방법이 있습니까?


관련 (그러나 반드시 중복되지 않음) 질문 : electronics.stackexchange.com/questions/100348/why-use-a-filter/...
helloworld922

FFT를 사용하여 신호를 필터링하는 것은 절대적으로 유효하지만주의해야 할 사항이 몇 가지 있습니다. 자세한 내용은이 비슷한 질문 / 답변을 참조하십시오 : stackoverflow.com/a/2949227/565542
sbell

5
이와 같은 질문은 신호 처리 사이트에 더 적합 할 수 있습니다.
Jason R

2
나는 생각 과학자 및 엔지니어 가이드 디지털로 신호 처리함으로써 스티븐 W. 스미스는 대답을 가지고있다. 그는 샘플 인-샘플 아웃이 디지털 필터를 사용하면 훨씬 더 효율적이라고 말합니다. 그러나 freq 도메인에서 브릭 필터를 사용할 수있는 FFT 변환을 포함시키는 것이 더 적절한 경우 창 너비가 최소입니다 (64 샘플 이상, 정확하게 기억하지 못합니다). 효율성 만이 유일한 문제는 아닙니다. 브릭 필터는 미래의 샘플을 사용해야한다는 것을 의미하며 이는 실시간으로는 불가능합니다.
Val

고맙게도 Signal Processing 사이트와 같은 것을 찾고 있었지만 찾을 수 없었습니다.
Kouichi C. Nakamura

답변:


9

주파수 도메인 처리가 직접 수행되지 않는 주된 이유는 관련 대기 시간입니다. 예를 들어, 신호에 대한 FFT를 수행하려면 먼저 주파수 영역으로 변환하기 전에 전체 시간 영역 신호를 기록하고 끝까지 기록해야합니다. 그런 다음 처리를 수행하고 시간 도메인으로 다시 변환하여 결과를 재생할 수 있습니다. 중간에서 두 번의 변환과 신호 처리가 실제로 순간적으로 발생하더라도 마지막 입력 샘플이 기록 될 때까지 첫 번째 결과 샘플을 얻지 못합니다. 그러나 이것을 기꺼이 감수한다면 "이상적인"주파수 영역 결과를 얻을 수 있습니다. 예를 들어, 초당 44100 샘플로 녹음 된 3 분짜리 노래는 800 만 포인트 변환을 요구하지만 현대 CPU에서는 그다지 중요하지 않습니다.

시간 영역 신호를 더 작은 고정 크기의 데이터 블록으로 나누고 개별적으로 처리하여 블록 길이에 대한 대기 시간을 줄이려는 유혹을받을 수 있습니다. 그러나 "가장자리 효과"로 인해 작동하지 않습니다. 주어진 블록의 양쪽 끝에있는 샘플이 인접한 블록의 해당 샘플과 올바르게 정렬되지 않아 결과에 불쾌한 결과물이 생성됩니다.

이것은 시간 영역과 주파수 영역 사이에서 변환하는 과정에서 암시되는 가정 때문에 발생합니다. 예를 들어, FFT와 IFFT는 데이터가 주기적이라고 가정합니다. 다시 말해, 동일한 시간 영역 데이터의 블록은 블록이 처리되기 전후에 온다. 이것은 일반적으로 사실이 아니므로 아티팩트를 얻습니다.

시간 영역 처리에는 문제가있을 수 있지만 대기 시간을 제어 할 수 있고주기적인 인공물을 생성하지 않는다는 사실은 대부분의 실시간 신호 처리 응용 프로그램에서 확실한 승자가됩니다.

(이것은 내 이전 답변 의 확장 버전입니다 .)


1
평범한 단어로 자세한 답변을 주셔서 감사합니다. 이제 내 질문에 내 직업이 주로 온라인 또는 실시간 처리가 아닌 오프라인 분석을위한 것이라고 언급했음을 알 수 있습니다. 질문을 편집하겠습니다. 요점은 분명합니다. FFT에는 전체 데이터 기간이 필요하기 때문에 기록이 끝날 때까지 기다려야합니다.
Kouichi C. Nakamura

1
알았어, 충분 해 문제가 될 수도 있고 그렇지 않을 수도있는 주파수 영역 필터링에 대해 한 가지 더 지적하겠습니다 . 시간 영역에서는 필터가 원인 이되지 않습니다 . 다시 말해, 임펄스 응답은 양의 시간과 음의 시간으로 확장됩니다. 잘 모르는 경우 놀라운 효과가있을 수 있습니다.
Dave Tweed

감사. Wikipedia에서 "Causal filter"를 찾았습니다. 정의에 따르면 FFT 박스 카는 시간에 신경 쓰지 않으므로 원인이 아닌 것을 알 수 있습니다. 이러한 특성으로 인해 실시간 필터링에 사용할 수없는 이유가 설명됩니다.
Kouichi C. Nakamura

3
@DaveTweed : 44.1 kHz로 샘플링 된 3 분 곡을 필터링하기 위해 8 백만 포인트 FFT가 필요하다는 주장이 잘못되었습니다. FFT 기반 컨볼 루션 알고리즘은 실제로 실제로 많이 사용됩니다. 오버랩 저장오버랩 추가 와 같은 방법을 사용하면보다 적당한 FFT 크기 (및 처리 대기 시간)가 필요합니다. 이 기법들은 두 번째 단락에서 제안하는 것과 정확히 일치합니다. 작은 블록을 사용하면서 그 사이에 발생하는 "가장자리 효과"를 처리하십시오.
Jason R

2
@DaveTweed : 동의하지 않습니다. 오버랩 저장 및 오버랩 추가와 같은 빠른 컨볼 루션 방법은 선형 컨벌루션을 지시하는 것과 같습니다 (즉, 시간 도메인에서 필터를 구현). 시간 도메인 처리와 비교하여 모든 종류의 경계 조건에서 성능이 저하되지 않으며 제한적인 대기 시간이 여전히 많은 실시간 응용 프로그램에 유용합니다. 주파수 도메인 필터링이 전체 입력 신호에서 하나의 큰 FFT를 필요로한다는 주장은 사실이 아니며,이 문맥에서 주파수 도메인 처리가 "순수한"것이 무슨 뜻인지 잘 모르겠습니다.
Jason R

2

주파수 영역에서 "boxcar"이상적인 필터를 사용할 수 있습니다. 이원성은 이것이 무한 길이의 sinc 함수와 관련이 있다고 말합니다. 길이를 유한하게 만드는 것과 관련된 아티팩트를 줄이기 위해 sinc 함수에 종종 창을 곱합니다. 해밍, 해닝 (실제로는 폰 한), 코사인 키우기 및 기타 윈도우 기술에 대해 들어 보셨을 것입니다. 컨벌루션은 fft / ifft aproach보다 계산 상 단순하지만 대답은 동일합니다.

모든 방법에는 플러스와 마이너스가 있습니다. 버터 워스는 IIR이고 박스 카는 FIR입니다. 버터 워스는 아마도 통과 대역에서 더 평평하지만 아마도 IIR의 순서와 FIR의 너비에 따라 가파른 롤오프가 적을 것입니다. filtfilt는 실시간으로 구현하기가 더 어려울 것입니다.


1
윈도우 및 블록 필터링에 대한 명확한 설명을 보려면 RW Hamming의 Digital Filters 책을 참조하십시오 . Dover에서 구입할 수 있으므로 가격이 매우 저렴합니다. (실수로, Scott, 나는 이것이 창 이름을 짓는 Hamming이고 폰 한은 그의 이름을 그의 창 이름을 짓는 데 정복 한 사람이라고 생각한다)
Photon

또한 FFT로 구현 된 박스 카는 통과 대역에서 완전히 평평하다고 확신합니다. 버터 워스 필터가 "최대 편평하다"고 할 때, 인과 필터 만 사용하는 것에 대해서만 이야기하고 있다고 생각합니다. (위키도 버터 워스보다 평평한 역 체비 쇼프 필터를 만들 수 있다고 말합니다.)
광자

1
이상적인 무한 길이에 대해 동의했지만 절단 및 윈도 잉 후 확실하지 않음
Scott Seidman

@ThePhoton Hamming / von Hann 수정에 감사드립니다. 집에서 책장을 제대로 시각화하지 못했습니다.
Scott Seidman

@ 광자; 해밍의 디지털 필터 책에 감사드립니다 . 나는 그것을 보았고 특히 초등 학습자를 위해 쓰여진 것처럼 보였다. 희망으로 샀습니다. :)
Kouichi C. Nakamura

0

관련 질문

FFT 빈을 제로화하여 필터링하는 것은 왜 나쁜 생각입니까? /signals/6220/why-is-it-a-bad-idea-to-filter-by-zeroing-out-fft-bins

FFT 결과에서 필터링과 같은 값을 제거 하시겠습니까? /signals/11487/removing-values-from-fft-result-same-as-filtering?noredirect=1&lq=1

FFT가 스펙트럼을 수정하지 않고 역 FFT보다 시간 도메인에서 창을 사용하는 이유 /signals/8911/why-do-we-use-window-in-time-domain-rather -보다---------수정-스펙트럼 및-t? noredirect = 1 & lq = 1

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.