힐베르트 변환 문서 원본 보기
←
힐베르트 변환
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
{{위키데이터 속성 추적}} '''힐베르트 변환'''(Hilbert變換 (또는 힐버트 변환), {{llang|en|Hilbert transform}})은 수학과 [[신호처리]] 용어로, u(t) 라는 함수를 취하는 선형연산자인데, 이는 같은 domain상에서 H(u)(t) 함수를 만들어 낸다. 힐베르트 변환은 신호 u(t)의 해석적 표현을 유도하기 위해 사용되는 신호처리 영역에서 대단히 중요하다. 이는 [[실수]] 신호u(t)를 [[복소수]] 차원으로 확장한다는 것이다. 예로, 힐베르트 변환은 푸리에 해석에서 주어진 함수의 고조파 쌍([[:en:harmonic conjugate]])으로 만든다. 단일 적분 연산자와 푸리에 곱은 동등하다. (어떤 신호가 전달함수를 통과하면, 단일적분연산자인 [[합성곱]]의 결과와 전달함수의 주파수 함수인 푸리에 함수의 곱과 같다는 의미임) 힐베르트 변환은 원래 [[주기함수]], 즉 원에서 [[힐베르트 핵]]({{llang|en|Hilbert kernel}})과 [[합성곱]]에 의해 주어지는 함수를 위해 정의되었다. 그러나 일반적으로 힐베르트 변환은 실선 '''R'''(위상단의 영역)에 정의되는 함수인 코시 핵({{llang|en|Cauchy kernel}})과 [[합성곱]]을 취한다. 힐베르트 변환은 [[페일리-위너 정리]]({{llang|en|Paley–Wiener theorem}})와 연관되어 있다. 힐베르트 변환은 [[정칙 함수]]에 대해 [[리만-힐베르트 문제]]({{llang|en|Riemann–Hilbert problem}})의 특수한 경우를 풀기 위해 도입한 연산자로 이를 도입한 [[다비트 힐베르트]]에 의해 이름이 붙어졌다. [[파일:Hilbert transform.svg|섬네일|300px|파란색의 구형파에 대한 힐베르트 변환 (붉은 선)]] == 개요 == ''u(t)''의 힐베르트 변환은 함수 ''h''(''t'') = 1/(π''t'') 와 ''u''(''t'')의 [[합성곱]]으로 생각할 수 있다. ''h''(''t'')는 적분이 아니기 때문에, [[합성곱]]을 정의하는 적분은 수렴하지 않는다. 대신, [[코시 주요값]](여기에 p.v.라 표시)을 사용하여 힐베르트 변환을 정의한다. 이 경우 명시적으로, 함수 또는 신호 ''u''(''t'')의 힐베르트 변환은 다음과 같다. : :<math>H(u)(t) = \text{p.v.} \int_{-\infty}^{\infty}u(\tau) h(t-\tau)\, d\tau = \frac{1}{\pi} \ \text{p.v.} \int_{-\infty}^{\infty} \frac{u(\tau)}{t-\tau}\, d\tau</math> :<math>H(u)(t) = -\frac{1}{\pi}\lim_{\varepsilon\rightarrow 0}\int_{\varepsilon}^\infty \frac{u(t + \tau) - u(t - \tau)}{\tau}\,d\tau.</math> 힐베르트 변환이 함수 ''u''에 2번 연속 수행되면, 결과는 ''u'' 의 음의 값이 된다 : :<math>H(H(u))(t) = -u(t)</math> 역변환(inverse transform)은 −''H''이다. ''u''(''t'')의 푸리에 변환에서 힐베르트 변환의 영향을 고려함에 의해 이 효과는 쉽게 볼 수 있다. (참조 아래 푸리에 변환과의 관계). [[상반평면]](upper half-plane)에서 [[해석함수]]([[:en:analytic function]])에 대해, 힐베르트 변환은 경계값(boundary values)의 실수부와 허수부 사이의 관계를 설명한다. 즉, 만약 ''f''(''z'')이 영역 Im ''z'' > 0에서 해석적이고 ''u''(''t'') = Re ''f''(''t'' + 0·''i'' ) 라면, 힐베르트 변환이 존재한다는 조건으로 부가적인 값까지 Im ''f''(''t'' + 0·''i'' ) = ''H''(''u'')(''t'') 가 된다. === 특성 === 힐베르트 변환 필터의 특성은 모든 주파수에서 크기는 변하지 않고(all-pass filter) 위상만 음의 주파수에선 +90도, 양의 주파수에선 -90도로 변화시켜주는 필터이다. 즉 어떤 주파수의 cos wt 신호가 들어가면 항상 sin wt 신호가 나오는 것이다. 아래 푸리에 변환과의 관계 참조. === 표기 === [[신호처리]]에서 ''u''(''t'')의 힐베르트 변환은 <math>\widehat u(t)\,</math>로 일반적으로 표기된다 ({{harvnb|Brandwood|2003|loc=pg 87}}). 그러나 수학에선 이 표기를 이미 ''u''(''t'')의 [[푸리에 변환]]으로 광범위하게 사용하고 있다 ({{harvnb|Stein|Weiss|1971}}). 경우에 따라선, 힐베르트 변환은 <math>\tilde{u}(t)</math>라고 쓰기도 한다. 더욱이, 많은 문헌에선 여기에 정의한 것의 음으로 힐베르트 변환을 정의한다 ({{harvnb|Bracewell|2000|loc=pg 359}}). == 역사 == 힐베르트 변환은 [[리만-힐베르트 문제]](Riemann–Hilbert problem)이라고 알려진 해석적 함수({{harvtxt|Kress|1989}}; {{harvtxt|Bitsadze|2001}})에 관해 Riemann에 의해 제기된 문제에서 [[다비트 힐베르트]]의 1905년 작업에서 시작되었다. 힐베르트의 작업은 주로 원({{harvnb|Khvedelidze|2001}}; {{harvnb|Hilbert|1953}})에서 정의된 함수에 대한 힐베르트 변환에 관한 것이었다. == 푸리에 변환과의 관계 == 힐베르트 변환은 [[곱셈 연산자]]이다.{{harv|Duoandikoetxea|2000|loc=Chapter 3}} ''H''의 표기는 σ<sub>''H''</sub>(ω) = −''i'' sgn(ω) 인데 여기서 sgn 은 [[:en:sign function|signum function]] 함수이다. 그러므로 :<math>\mathcal{F}(H(u))(\omega) = (-i\,\operatorname{sgn}(\omega)) \cdot \mathcal{F}(u)(\omega)</math> 여기서 <math>\mathcal{F}</math>는 [[푸리에 변환]]을 의미한다. sgn(''x'') = sgn(2π''x'') 이므로, [[푸리에 변환]] <math> \mathcal{F}</math>의 세 가지 일반적인 정의에 적용되어 이 결과는 다음과 같다. [[오일러 공식]]에 의해, :<math>\sigma_H(\omega) = \begin{cases} i = e^{+\frac{i\pi}{2}}, & \mbox{for } \omega < 0\\ 0, & \mbox{for } \omega = 0\\ -i = e^{-\frac{i\pi}{2}}, & \mbox{for } \omega > 0 \end{cases}</math> 고로 ''H''(''u'')(''t'')은 ''u''(''t'')의 음의 주파수 성분은 +90° (π/2 radians)의 위상이 이동 되고, 양의 주파수 성분은 −90° 의 위상이동 효과를 나타낸다. 그리고 ''i''·''H''(''u'')(''t'') 은 양의 주파수 성분을 되살리고, 음의 주파수 성분은 추가로 +90° 위상이동시켜, 결론적으로 음으로 만든다. 힐베르트 변환을 2번 적용했을시, ''u''(''t'')의 음과 양의 주파수 성분은 각각 +180° 와 −180° 이동한다. 이 신호는 크기는 같고 부호만 반대로 된다. ''H''(''H''(''u'')) = −''u'', 그 이유는 다음과 같다. :<math>\big(\sigma_H(\omega)\big)^2 = e^{\pm i\pi} = -1 \qquad \text{for } \omega \neq 0</math> == 특정함수의 힐베르트 변환 == {| class="wikitable" |- ! 신호<br> <math>u(t)\,</math> !! 힐베르트 변환<ref group="fn">몇몇 저자들(예를 들어 Brace Well)은 앞의 변환의 정의로 -H를 사용한다. 결과적으로 이 표의 오른쪽 열(column)의 부호가 반대로 된다. </ref><br> <math>H(u)(t)</math> |- | align="center"| <math>\sin(t)</math><ref group="fn" name="ex02">''sin''과 ''cos'' 함수의 힐버트 변환은 그것들을 정의하는 적분이 경우에 따라서 수렴할 수 있는 우려가 있는 경우 분포적 의미로 정의 될 수 있다. 주기적인 설정에선, 이 결과는 아무런 어려움없이 유지된다.</ref> || align="center"| <math>-\cos(t)</math> |- | align="center"| <math>\cos(t)</math><ref group="fn" name="ex02"/> || align="center"| <math>\sin(t)\,</math> |- | align="center"| <math> \exp \left( i t \right) </math> || align="center"| <math> - i \exp \left( i t \right) </math> |- | align="center"| <math> \exp \left( -i t \right) </math> || align="center"| <math> i \exp \left( -i t \right) </math> |- | align="center"| <math>1 \over t^2 + 1</math> || align="center"| <math>t \over t^2 + 1</math> |- | align="center"| '''[[싱크 함수]]''' <br /> <math>\sin(t) \over t</math>|| align="center"| <math> 1 - \cos(t)\over t</math> |- | align="center"| '''[[구형함수|구형 함수]]''' <br /> <math> \sqcap(t)</math>|| align="center"| <math>{1 \over \pi} \log \left | {t + {1 \over 2} \over t - {1 \over 2}} \right |</math> |- | align="center"| '''[[디랙 델타 함수]]''' <br /><math>\delta(t) \, </math> || align="center"| <math> {1 \over \pi t}</math> |- | align="center"|'''[[지시 함수|특성 함수]]''' <br /> <math>\chi_{[a,b]}(t) \,</math> || align="center"| <math>{ \frac{1}{\pi} \left\vert \frac{t - a}{t - b}\right\vert }</math> |} 더 많은 함수에 대한 힐베르트 변환도 알 수 있다 ({{harvnb|King|2009}}). 상수에 대한 힐베르트 변환은 0임을 상기하라. == 정의 차원 == :<math>H(u)(t) = -\frac{1}{\pi}\lim_{\epsilon\downarrow 0}\int_\epsilon^\infty \frac{u(t + \tau) - u(t - \tau)}{\tau}\,d\tau</math> 이 수식은 거의 모든 ''t''에 존재한다. 무한접근 함수 또한 ''L''<sup>''p''</sup>('''R''')에 있고, 부적절한 적분의 수단으로 극한을 사용한다는 사실이다. 즉 다음과 같다. :<math>-\frac{1}{\pi}\int_\epsilon^\infty \frac{u(t + \tau) - u(t - \tau)}{\tau}\,d\tau\to H(u)(t)</math> <!-- ==속성== ==정의 차원의 확장== ==Conjugate functions== ==원에서의 힐베르트 변환== ==신호처리에서의 힐베르트 변환== ===무선통신에서의 SSB(single side band)=== --> == 이산 힐베르트 변환 == [[파일:Bandpass discrete Hilbert transform filter.tif|섬네일|400px|오른쪽|그림 1: 주파수 반응이 Nyquist 주파수의 약 95%로 Band 제한된 필터]] [[파일:Highpass discrete Hilbert transform filter.tif|섬네일|400px|오른쪽|그림 2: 고역통과 주파수 반응을 가진 힐베르트 변환 필터]] [[파일:DFT approximation to Hilbert filter.png|섬네일|400px|오른쪽|그림 3: 힐베르트 변환에 근사한 DFT]] [[파일:Effect of circular convolution on discrete Hilbert transform.png|섬네일|400px|오른쪽|그림 4. cos(wt)의 힐베르트 변환은 sin(wt)이다. 이 그림은 MATLAB 라이브러리 함수, hilbert(·)에 의해 계산된 근사 힐베르트 변환과 sin(wt)의 차이]] 아날로그 신호를 이산 신호로 바꾸면 주파수 축에서 아날로그 스펙트럼이 sampling 주파수마다 반복된다. [[이산시간 푸리에 변환]](discrete-time Fourier transform, DTFT), U(ω)에 대한 이산함수(discrete function) u[n]에 대해, 힐베르트 변환은 다음과 같다. :<math>H(u)[n] = \scriptstyle{DTFT}^{-1} \displaystyle \{U(\omega)\cdot \sigma_H(\omega)\}</math> 여기서: :<math>\sigma_H(\omega)\ \stackrel{\mathrm{def}}{=}\ \begin{cases} e^{+i\pi/2}, & -\pi < \omega < 0 \\ e^{-i\pi/2}, & 0 < \omega < \pi\\ 0, & \omega = -\pi, 0, \pi \end{cases}</math> 그리고 합성곱 정리(convolution theorem)에 의해, 등가 수식은 다음과 같다. :<math>H(u)[n] = u[n] * h[n]</math> 여기서: :<math>h[n]\ \stackrel{\mathrm{def}}{=}\ \scriptstyle{DTFT}^{-1} \big \{\displaystyle \sigma_H(\omega)\big \} = \begin{cases} 0, & \mbox{for }n\mbox{ even}\\ \frac2{\pi n} & \mbox{for }n\mbox{ odd} \end{cases}</math> 합성곱을 수치적으로 계산했을때, [[:en:finite impulse response|FIR]] 근사는 '''그림1'''에 보여주는 것처럼 ''h''[''n'']에 대해 치환된다. (다시말해 들어오는 신호와 그림 1의 첫번째 함수로 [[합성곱]]을 취하면 힐베르트 변환이 된다.) 그리고 밴드패스필터의 결과로 낮은 주파수와 높은 주파수 (0과 [[나이퀴스트 주파수]](Nyquist frequency))에서 통과대역이 0로 떨어지는 것을 볼 수 있다. '''그림 2'''에서 보여주는 것처럼, 높은 끝 주파수는 부드럽고, 연속시간함수인 ''h''(''t'')에 더욱 근사인 resembles samples의 FIR 에 의해 원위치될 수 있다. 그러나 실제적인 문제에 있어서, 적절히 sampling된 ''u''[''n''] 연속 data는 그 주파수에서 사용가능한 주파수를 가지고 있지 않다. 임펄스 반응을 더욱 길게 얻는다면, 낮은 끝 쪽 주파수 또한 잘 처리할 수 있다. <ref>힐베르트는 다음 이산 변환을 연구하였다. : <math>\frac{1}{n} * u[n] = \sum_{m=-\infty}^\infty \frac{u(m)}{n-m}\qquad m \neq n</math> 그리고 L<sup>2</sup>의 ''u''(''n'')에 대하여 순열 ''H''(''u'')[''n'']이 또한 L<sup>2</sup>임을 증명하였다.([[힐베르트의 부등식]] 참조). 이에 대한 기초적인 증명은 {{harv|Grafakos|1994}}에 있다. 이 변환은 E. C. Titchmarsh에 의하여 M. Riesz의 결과를 연속인 경우에 증명하기 위하여 사용되었으나({{harvnb|Titchmarsh|1926}}; {{harvnb|Hardy|Littlewood|Polya|1952|loc=¶314}}), 실용적인 신호처리에서는 사용되지 않는다.</ref> ''h''[''n'']에 근사 FIR 필터로, '''[[:en:Overlap-save method|overlap-save]]'''이라는 방법은 긴 ''u''[''n''] 연속 데이터로 [[합성곱]]을 수행하는게 효과적인 방법이다. 때때로 array FFT{''h''[''n'']}는 σ<sub>''H''</sub>(ω)의 상응 샘플에 대치된다. 그것은 다음의 [[:en:periodic summation]]으로 [[합성곱]]의 효과를 가진다. :<math>h_N[n]\ \stackrel{\text{def}}{=}\ \sum_{m=-\infty}^{\infty} h[n - mN]</math> '''그림 3'''은 ''h<sub>N</sub>''[''n'']의 반주기와 ''h''[''n'']의 상응 길이 부분의 비교이다. 그들 사이의 차이와 그들 세그먼트 길이 (''N'')보다 짧지 않다는 사실이 왜곡의 근원인데, 세그먼트 길이와 중첩 파라미터를 증가시킴으로써 왜곡을 관리하여 줄일 수 있다. 대중적인 [[매트랩]](MATLAB) 함수인 '''[http://www.mathworks.com/help/toolbox/signal/ref/hilbert.html;jsessionid=67ed4e69e9729363548abed31054 hilbert(u,N)]'''는 복소 출력 데이터의 허수부분으로 ''u''[''n'']의 근사 이산 힐베르트 변환을 해준다. 실수부분은 원래의 입력 연속 데이터이게되어, 복소출력은 ''u''[''n'']의 [[해석적 표현]](analytic representation)이 된다. 위에서 이야기한 것과 비슷하게, hilbert(u, N)함수는 sgn(ω)분포만을 사용하여 ''h<sub>N</sub>''[''n'']로 [[합성곱]]을 취하게 된다. 출력 데이터의 근사수를 무시하여 실제 ''u''[''n''] 연속 데이터보다 큰 ''N''값을 사용함에 의해 왜곡을 줄일 수 있다. 이 형태의 왜곡의 예는 '''그림 4'''에 있다. <!-- == 디지털 힐베르트 변환 응용 == === IQ 복조에 의한 디지털 수신기(Digital Receiver) === === 초음파진단기의 CW Doppler 신호 추출 === === 초음파진단기의 PW Doppler 신호 추출 === --> == 같이 보기 == * [[리스 변환]] == 각주 == {{각주}} === 내용주 === <references group="fn" /> {{전거 통제}} [[분류:신호 처리]] [[분류:다비트 힐베르트]] [[분류:적분 변환]] [[분류:조화 함수]]
이 문서에서 사용한 틀:
틀:Harv
(
원본 보기
)
틀:Harvnb
(
원본 보기
)
틀:Harvtxt
(
원본 보기
)
틀:Llang
(
원본 보기
)
틀:각주
(
원본 보기
)
틀:위키데이터 속성 추적
(
원본 보기
)
틀:전거 통제
(
원본 보기
)
힐베르트 변환
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보