Wavelet 변환은 어떤 시간-주파수 계수를 계산합니까?


26

푸리에 변환은 고속 얻어 그동안, 조작 웨이블렛 변환 고속이 얻어 O ( N을 ) . 그러나 구체적으로 FWT는 무엇을 계산합니까?O(NlogN)O(N)

그것들은 종종 비교되지만 FFT와 FWT는 사과와 오렌지처럼 보입니다. 내가 이해함에 따라 STFT (시간이 지남에 따라 작은 청크의 FFT)를 복잡한 Morlet WT 와 비교하는 것이 더 적절합니다 . 복잡한 정현파를 기반으로하는 시간-주파수 표현이기 때문에 (잘못되면 정정하십시오) ). 이것은 종종 다음과 같은 다이어그램으로 표시됩니다.

FFT 및 WT의 계수가 시간-주파수 평면에 어떻게 대응되는지를 보여주는 그리드

( 다른 예 )

왼쪽은 STFT가 시간이 지남에 따라 서로 위에 쌓여있는 FFT의 무리를 보여줍니다 (이 표현은 스펙트로 그램 의 원점입니다 ). 오른쪽은 고주파수에서 더 나은 시간 해상도를 가진 이진 WT를 보여줍니다. 낮은 주파수에서의 해상도 (이 표현을 스 칼로 그램 이라고합니다 ). 이 예에서, STFT위한 수직 열의 수 (6)과 싱글 O ( N 로그 N ) FFT 동작의 단일 행 산출 N의 행 계수 N의 샘플. 합계는 각각 6 포인트의 8 FFT 또는 시간 도메인에서 48 샘플입니다.NO(NlogN)NN

내가 이해하지 못하는 것 :

  • O(N)

  • 단일 계산으로 어떤 사각형이 채워 집니까?

  • 둘 다를 사용하여 동일한 면적의 시간-주파수 계수 블록을 계산하면 같은 양의 데이터를 얻습니까?

  • FWT가 FFT보다 여전히 더 효율적입니까?

PyWavelets 를 사용하는 구체적인 예 :

In [2]: dwt([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[2]:
(array([ 0.70710678,  0.        ,  0.        ,  0.        ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ]))

4 개의 계수로 구성된 두 세트를 생성하므로 원래 신호의 샘플 수와 동일합니다. 그러나이 8 가지 계수와 다이어그램의 타일 사이의 관계는 무엇입니까?

최신 정보:

실제로, 나는 이것을 잘못하고 있었으며 wavedec()멀티 레벨 DWT 분해를 수행하는을 사용해야합니다 .

In [4]: wavedec([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[4]: 
[array([ 0.35355339]),
 array([ 0.35355339]),
 array([ 0.5,  0. ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ])]

2
이러한 웨이블릿 분해 작업이 하나의 유용한 도구가 실제 신호에 그것을 할 수있을 것입니다 방법을 더 잘 이해가하기 위해서는 : 예를 들어 오디오 신호를 (내가 여기이 방향에서 질문이 dsp.stackexchange.com/ questions / 12694 / stft-and-dwt-wavelets )
Basj

@endolith 질문이 계속 요청됩니까? 그렇다면 다른 힌트를 추가 할 수 있습니다
Laurent Duval

@LaurentDuval 예, 아직 열려 있으며 여전히 이해할 수 없습니다. CWT는 Morlet과 같은 것을 사용하고 DWT는 Haar 또는 Daubechies와 같은 것을 사용하기 때문에 혼란 스러울 수 있습니다. 빠른 FWT가 Haar 전용 인지 또는 다른 유형의 웨이블릿도 사용할 수 있는지 확실하지 않습니다 .
endolith

2
@ndolith 이것에 대한 주석 : 지속적인 CWT는 엄청난 양의 잠재적 웨이블릿 모양을 인정합니다. 그것들은 일부 "하이 센 버그"불평등을 존중하는 샘플링 패턴 (시간 또는 규모)으로 만 이산화 될 수 있습니다. 이 패턴은 웨이블릿에 따라 다릅니다. 대부분의 경우 패턴은 불연속 CWT를 만듭니다. 일부는 비 이중화 스케일을 가진 비 이중화를 원합니다. 아주 적은 잔물결 만 허용합니다. 당신이 다음 유한 수 웨이블릿 지원을 부과하는 경우, 하르 왜 Daubechies '사람이 만들어진 것으로, "자연 웨이블릿"/ w를 얻기가 거의 불가능 하나입니다
로랑 듀발

답변:


13

FWT가 FT보다는 STFT의 "사촌"으로 더 잘 생각된다는 것이 맞습니다. 실제로 FFT / DFT는 푸리에 변환의 이산 샘플링이므로 FWT는 CWT (연속 웨이블릿 변환)의 이산 샘플링 일뿐입니다. 이것은 미묘한 점처럼 보이지만 변환을 이산하는 방법을 선택할 때 관련이 있습니다.

CWT와 STFT는 신호의 중복 분석입니다. 다시 말해, 신호를 완전히 나타내는 데 필요한 것보다 더 많은 "계수"(이산 된 경우)가 있습니다. 그러나 푸리에 변환 (또는 하나의 스케일 만 사용하는 웨이블릿 변환)은-무한대에서 + 무한대까지의 신호를 통합합니다. 이것은 실제 신호에는 그다지 유용하지 않으므로 변환을 더 짧은 길이로 자릅니다 (즉, 창). 신호의 윈도우 화는 변환을 변경합니다. 시간 / 공간의 윈도우를 곱하면 변환 공간에서는 신호 변환과 윈도우 변환의 컨볼 루션이 생깁니다.

STFT의 경우, 윈도우는 (보통) 항상 같은 길이 (0이 아닌 범위)이며 주파수에 구애받지 않습니다 (10Hz 신호를 10kHz 신호와 같은 폭으로 창을 만듭니다). 그래서 당신은 당신이 그린 사각형 격자 스펙트로 그램을 얻을 수 있습니다.

CWT에는 스케일이 감소함에 따라 (높은 주파수와 같이) 웨이블릿이 더 짧아 지므로 (시간 또는 공간에서)이 윈도우가 내장되어 있습니다. 따라서 주파수가 높을수록 유효 기간이 짧아지고 FWT에 대해 그린 것과 같은 스케일로 끝납니다.

신호를 완전히 표현하기 위해 시프트와 스케일 모두에서 최소 샘플링이 있다고 생각하지만 CWT를 이산화시키는 방법은 다소 귀하에게 달려 있습니다. 일반적으로 (적어도 내가 어떻게 사용했는지) 가장 낮은 스케일 (높은 주파수)의 경우 모든 교대 위치 (시간 / 공간)에서 샘플링합니다. 스케일이 높을수록 (빈도가 낮을수록) 더 자주 샘플링 할 수 있습니다. 근거는 저주파가 빠르게 변하지 않는다는 것입니다 (심벌즈 크래시 대베이스 기타를 생각하십시오. 심벌즈 크래시는 매우 짧은 천이를 갖는 반면베이스 기타는 변경하는 데 더 오래 걸립니다). 실제로, 가장 짧은 스케일에서 (모든 시프트 위치에서 샘플링한다고 가정하면) 신호의 전체 표현을 갖습니다 (이 스케일의 계수 만 사용하여 신호를 재구성 할 수 있음). 스케일 샘플링의 이론적 근거가 확실하지 않습니다. 나는' ve는 이것이 더 작은 스케일 사이의 간격이 가까울수록 로그로 제안됨을 보았습니다. 더 긴 스케일의 웨이블릿이 더 넓은 푸리에 변환을 갖기 때문에 (더 많은 주파수를 "픽업") 생각합니다.

FWT를 완전히 이해하지 못한다는 것을 인정합니다. 필자는 실제로 시프트 / 스케일의 최소 샘플링이며 중복 표현이 아니라는 것입니다. 그러나 원치 않는 아티팩트를 유발하지 않고 짧은 시간에 신호를 분석하고 혼란시키는 기능을 잃어버린 것 같습니다. 나는 그것에 대해 더 많이 읽고, 유용한 것을 배우면 다시보고하십시오. 다른 사람들이 댓글을 달기를 바랍니다.


1
"실제로 시프트 / 스케일의 최소 샘플링이며 중복 표현이 아닙니다." 아! 나는 당신이 옳다고 생각하며, 이것이 왜 항상 FFT와 비교되는지 설명 할 것입니다.
endolith

3
FWT는 CWT의 중요한 샘플링입니다. 나는 아직도 그것을 더 잘 이해하려고 노력하고 있지만 STFT와 CWT는 둘 다 프레임이라는 것을 배웠다. 프레임 이론은 저를 넘어서고 있지만 흥미로운 한 가지 개념은 STFT의 경우 dw * dt> C (dw는 주파수 분해능, dt는 시간 분해능)라는 불확실성 공식입니다. 즉, 주파수를 더 잘 해결하려고하면 시간 해상도가 손실됩니다. CWT에는이 제한이 없습니다. 나는 머리 속으로 그것을 명확히하면 계속해서 위의 대답을 읽고 시도하고 명확하게 할 것입니다.

1
내가 이해 한 바에 따르면 CWT는 동일한 제한이 있지만 더 나은 균형을 사용합니다.
endolith 2009

1
"STFT는 신호의 중복 분석입니다". 나는 그것이 사실이라고 생각하지 않습니다. 100 포인트 신호가있는 경우 10 포인트 청크로 분할 한 다음 각각 10 포인트 FFT를 수행하면 동일한 양의 샘플에 동일한 정보가 저장됩니다.
endolith

11

Haar wavelet 사례를 고려하십시오. 빠른 웨이블릿 변환은 신호를 재귀 적으로 세분화하고 매번 두 반쪽의 합과 차이를 계산합니다. 차이는 현재 웨이블릿에 대한 변환의 크기이며, 합은 호출자가 주파수의 절반으로 확장 된 웨이블릿에 대한 변환의 크기를 계산하기 위해 반환됩니다. 따라서 FWT는 사용자가 제공 한 다이어그램에 설명 된 패턴을 사용하여 시간-주파수 평면을 커버합니다.

당신이 준 다이어그램은 약간 오도합니다. 그들이 실제로 말하려는 것은 가장 낮은 주파수에서 하나의 샘플, 그 주파수의 두 배로 된 두 개의 샘플, 그 주파수의 네 배로 된 네 개의 샘플 등을 얻는 것입니다. 각 웨이블릿의 시간-주파수 특성은 타일을 덮는 것이 아닙니다 . 실제로, 각 웨이블릿은 간결한 지원 기능을 갖추고 있기 때문에 무한 영역을 커버하므로 주파수 측면에서 완전히 비편 재화되어야합니다. 따라서 타일의 중심에 대해 생각해야합니다.

또한, FWT는 CWT의 연속 웨이블릿보다 훨씬 더 제한적인 허용 기준을 준수해야하는 이산 웨이블릿이 필요합니다. 결과적으로, 이산 웨이블릿의 시간-주파수 특성은 일반적으로 끔찍하며 (예를 들어 Daubechies 웨이블릿은 예리한 특징으로 가득 차거나 주파수가 변함) FWT와 관련하여 시간-주파수 평면의 유용성이 크게 줄어든다. 그러나 연속 웨이블릿은 신호의 시간-주파수 표현을 계산하는 데 사용됩니다.


예, 계수의 현지화를 이해합니다. FFT와 같습니다. "준수해야한다"고 할 때, 무슨 뜻입니까? 신호의 최소 / 비 중복 표현을 얻으려는 경우에만 필요한가요? 분석 / 시각화 만하면 어떻게 되나요? 질문에보다 구체적인 예를 추가하겠습니다.
endolith

1
허용 기준을 준수하면 동일성의 확인, 즉 모든 신호가 웨이블릿 변환에서 복구 될 수 있습니다. 이를 준수하지 않으면 변환에서 신호를 복구 할 수 없습니다.이 시점에서 분석중인 신호가 정확히 무엇인지 질문해야합니다 (신호에있는 정보도 반영합니까?!). 최소 / 비 중복 표현이 필요하지 않은 경우 CWT에서 더 여유로운 허용 기준을 사용할 수 있습니다 (보다 "이상적인"웨이블릿을 정의 할 수 있음).

1
제 박사 학위 논문이 정말 유용하다고 생각합니다. 나는 ... 당신을 위해 온라인을 놓을 게요

온라인에 넣었습니까? :)
endolith

2
나는 확실히했다 : flyingfrogblog.blogspot.com/2010/02/…

3

당신의 참고는 그것을 가지고 있습니다 :

작은 유한 파 또는 웨이블릿의 직교 기반을 기반으로하는 일련의 계수.

자세한 내용은 DWT 페이지를 참조하십시오 . 거기서 Haar 웨이블릿, Daubechies 웨이블릿 및 기타를 소개합니다. 어떻게 지적

  • 웨이블릿의 위치 – (1,1, –1, –1) 웨이블릿은“왼쪽”대“오른쪽”에 해당하는 반면 마지막 두 웨이블릿은 왼쪽 또는 오른쪽을 지원하며 하나는 변환입니다 다른 사람의.
  • 정현파는 위치가 없으며 전체 공간에 퍼져 있지만 위상이 있습니다. 두 번째와 세 번째 파는 서로 변환되어 코사인 및 사인과 같이 위상이 다른 90도에 해당합니다. .

불연속 웨이블릿 대신 연속 웨이블릿 또는 복잡한 웨이블릿을 원한다면 wavelet series로 시작할 수 있습니다 .

위키 백과 외에도 교과서와 코스가 도움이 될 수 있습니다.


이 답변을 이해하지 못합니다. 내 질문에 대답합니까? 무엇의 왼쪽과 오른쪽? 이것은 시간-주파수 표시와 어떤 관련이 있습니까?
endolith

"왼쪽 대 오른쪽"설명은 DWT 페이지의 발췌 된 미리보기로, 해당 페이지에 사인파 기준과 하르 웨이블릿 기준의 상대적인 장점을 설명하는 간단한 예가 포함되어 있음을 보여줍니다. 웨이블릿 변환에서 계수의 특성에 대해 묻고있었습니다. 당신이 직감을 찾고있는 것처럼 들렸습니다. 나는 그 예가 (원래의 맥락에서) 유용하다고 생각할 수 있다고 생각했다.

예,이 질문을 게시하기 전에 Wikipedia 기사를 여러 번 읽었습니다. 나는 당신의 대답이 시간-주파수 표현에 관한 나의 질문과 관련이 있는지 / 무엇인지 모르겠습니다. 그렇다면 점들을 연결할 수 있습니까? n 개의 샘플의 FFT는 n 개의 계수를 생성하여 STFT 스펙트로 그램의 단일 열을 구성합니다. WT와 스 칼로 그램에 의해 생성 된 계수 사이에 대응 관계가 있습니까? 그렇다면 무엇입니까? 오른쪽 하단 차트의 어느 상자가 FWT를 통한 단일 런으로 채워져 있습니까?
endolith

1
웨이블릿과 관련된 위키 백과 페이지의 거의 모든 것이 현재 잘못되었습니다.

3

O(N2)

O(N)O(Nlog(N))O()

일반 창 STFT (연속 양식) 에서 시작하십시오 . 단위 높이의 무한 창을 연결하면 푸리에 변환이 특별한 경우로 복구됩니다. 당신은 이산화하고 (DFT를 얻음) 빨리 만들 수 있습니다 (그리고 FFT를 얻음)

CWT (연속 양식) 에서 시작하십시오 . 연속적인 CWT는 엄청난 양의 잠재적 잔물결 모양을 허용합니다. 그것들은 일부 "Heisenberg"불평등을 존중하는 샘플링 패턴 (시간 또는 스케일)으로 만 이산화 될 수 있습니다 : 단위 표면 당 하나의 샘플. 이 패턴은 웨이블릿에 따라 다릅니다. 대부분의 경우, 패턴은 중복 된 이산화 CWT를 만들어 웨이블릿 프레임을 생성합니다.

일부는 DYA (Dyadic Scale)와 함께 비 이중화를 원했습니다. 아주 적은 잔물결 (아직도 무한대의 숫자이지만 우연히 찾을 수는 없습니다)이 허용합니다. 첫 번째는 Haar, Franklin 및 Meyer 잔물결이었습니다. 그런 다음 웨이블릿 지원을 유한하게 강요하면 Haar는 오랫동안 유일했습니다. "자연적인 연속 웨이블릿"으로부터 직교 웨이블릿을 얻는 것은 거의 불가능하기 때문에 Daubechies 의 것들과 나중에 SymmletsCoiflets 가 만들어졌습니다 . 이 이상한 모양의 웨이블릿에는 Morlet 웨이블릿과 같은 멋지고 간단한 수식이 없습니다.

O(N)

실제로 FWT는 CWT의 이산 샘플링 일뿐입니다.

DWT (또는 FWT)는 DFT / FFT와 같이 정확합니다. 대부분의 다른 이산화 CWT (웨이블릿 포함)는 거의 비슷합니다 (충분한 중복이있는 경우 큰 피해를주지 않음).

그래서:

  • kkk804T2×424[ω/2,ω]42×22[ω/8,ω/4][1,1,2,4]
  • k
  • +×O(N)

다음 그림은 Haar 웨이블릿의 연속 버전을 보여줍니다. 연속적인 하 얼릿

직교 이산 웨이블릿으로 샘플링 할 수 있습니다. 불연속적인 중요한 Haar 잔물결

일부 개별 웨이 브릿, 특히 긴 스플라인 (예 : 스플라인)은 때때로 FFT를 사용하여 계산됩니다.

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