반응형

분류 전체보기 147

[푸리에 변환 이해하기 - 9] Discrete Fourier Transform (DFT) [컴공과고씨]

자 이제 푸리에 변환의 마지막 파트 입니다. 앞에 CTFT DTFT를 잘 따라오셨다면 이 부분도 쉽게 이해할 수 있습니다. 들어가기 앞서서 전체적으로 정리를 한번 하고 가겠습니다. 자 보시면 연속된 신호에서 주파수 도메인으로 -> CTFT 연속된 신호에서 sampling을 해주고 DTFT를 해주면 주파수는 CTFT의 값에서 주기반복을 시켜주는 것. 문제는 우리는 컴퓨터에서 어떤 작업을 하기 위해서는 연속해서는 안됩니다. 그래서 DTFT의 결과 값을 sampling을 해주어야합니다. 그러면 time-domain에서는 주기 반복이 일어나고 우리는 반복된 주기가 필요한게 아니라 한 주기만 있으면 되기 때문에 주기반복되는 time - domain 신호에서 한 주기만 뽑아낸 주파수 도메인에서의 값이 필요하게 됩니..

CS/영상처리 2022.05.30

[푸리에 변환 이해하기 - 8] Discrete Time Fourier Transform (DTFT) [컴공과고씨]

자 앞에서 배웠듯 x(t) = Acos(ωt + φ) x[n] = x(nTs) = Acos(ωnTs+φ) = Acos(ŵn + φ) 이렇게 변형 할 수 있다. 그렇다면 f/fs을 f햇으로 정의를 해주면 위와 같은 범위를 얻을 수 있다. 즉, 샘플링 된 신호의 주파수 도메인에서의 주기는 2π를 넘지 않는 것을 볼 수 있다. 그래서 CTFT 와 DTFT를 비교해보면 이런식입니다. DTFT에서의 x[n]을 구할 때 적분 범위를 보면 -π ~ π 까지인 이유는 위에서 설명해드렸습니다. 또한 주파수 도메인으로 바꿀때 시그마를 취하고 있는데 이유는 이산신호들의 합이기 때문에 당연히 적분이 아닌 시그마를 써주고 있습니다. 근데 여기서 이제 우리가 샘플링 주파수로 나누어 주면 f^ 도메인으로 바꾸어주면 주기가 1으로 ..

CS/영상처리 2022.05.29

[푸리에 변환 이해하기 - 7] Sampling & Reconstruction & shannon Sampling Theorem [컴공과고씨]

C-to-D conversion : sampling (연속신호 -> 이산신호) D-to-C conversion : Reconstruction(interpolation) (이산신호 -> 연속신호) Uniform Sampling 기본 적으로 samping은 연속 신호에 일정한 간격마다 값을 매겨주는 것입니다. 자 그럼 n을 sampling index라고 하면 x[n] = x(nTs) -∞ < n < ∞ 로 나타낼 수 있습니다. 그리고 여기서 sampling rate는 fs = 1/Ts samples/s 로 나타 낼 수 있겠죠? Ideal Reconstruction(D to C) 우리는 이제 이산신호를 연속신호로 바꾸기 위해서는 그 사이 값을 Interpolation(보간)을 해주어야 합니다. 그 식은 바로 ..

CS/영상처리 2022.05.28

[푸리에 변환 이해하기 - 6] Continuous Fourier Transform (CTFT) [컴공과고씨]

이제 드디어 푸리에 변환에 대해 알아보겠습니다. Continuous Fourier Transform 앞에 continuous이기 때문에 연속된 신호를 frequency domain으로 바꾸어 주는 것을 말합니다. 여기서 앞의 푸리에 급수와 다른 것은 비주기성을 가진 신호를 sinusoids들의 적분한 것으로 나타낸다는 것입니다. 자 그럼 비주기성 신호를 어떻게 만들면 될까요? 원래 신호의 주기를 무한대로 보내는 것입니다. 이것을 그림으로 표현하자면 위와 같은 x(t) 는 T0라는 주기를 가진다고 했을 때 이 T0를 무한대로 보내면 이 신호는 비주기성 함수가 됩니다. 자 그럼 이것을 CTFT를 해주면 어떻게 될까요? 푸리에 급수에서 보았듯이 원래는 discrete하게 신호가 나와야 합니다. 이때 각 ak의..

CS/영상처리 2022.05.28

[푸리에 변환 이해하기 - 5] Continuous-Time Fourier Series(CTFS 푸리에 급수)

이제 본격적으로 푸리에 변환에 대해서 다루겠습니다. 푸리에 변환는 기본적으로 우리가 time domain에서 다루던 신호를 frequency domain으로 변환하는 것 입니다. 이 말은 우리는 어떤 주파수 성분이 있는지 분석할 수 있고 이것을 토대로 높은 주파수는 뺄 수도 낮은 주파수를 빼거나 등 주파수 성분들을 조작할 수 있게 됩니다. 앞에서 말했듯이 자연 신호는 sinusoid들의 합으로 나타낼 수 있습니다. 또한 이 sinusoids들은 기본 주파수의 배수로 만들 수 있습니다. Continuous-Time Fourier Series 어떤 주기 함수든 우리는 harmonic frequencise(기본 주파수의 배수)의 sinusoids의 합으로 표현이 가능하다는 것이다. *기본 주파수의 배수 : w..

CS/영상처리 2022.05.26

[푸리에 변환 이해하기 - 4] frequency spectrum (주파수 스펙트럼)

자 이제 frequency spectrum를 이해하기 위해서는 당연히 전 포스트에서의 오일러 공식을 알고 있어야합니다. 이전글(오일러 공식) -> https://hagisilecoding.tistory.com/89 sinusoid x(t) = Acos(ωt + Φ) 위 식을 이제 어떻게? 바로 오일러 공식으로 표현을 해보겠습니다. Z = ej(ωt + Φ) Z* = e-j(ωt + Φ) 코사인만 구하기 위해서는 (Z+Z*)/2를 해주면 됩니다. 일단 X(w) 라는 것은 w에 대한 식을 가르키는 것입니다. X(w)는 w에 대한 complex amplitude X(-w)는 -w에 대한 complex amplitude 입니다. 그래서 우리는 sinusoid를 두 개의 complex exponentials로 나..

CS/영상처리 2022.05.25

[푸리에 변환 이해하기 - 3] Euler's Identity (오일러 공식)

오일러 공식은 세상에서 가장 아름다운 공식이라고 불리는 공식입니다. 이것에 대한 수학적 증명은 유튜브에서 검색하여서 동영상으로 보는 것이 더욱 이해하기 쉽습니다. 여기서는 오일러 공식이 어떤 의미를 가지는지에 대해서 또 푸리에 변환을 이해하기 위해서 필요한 지식을 포스트 할 것입니다. 오일러 공식 ejθ = cos(θ) + jsin(θ) -> 이것은 꼭 익숙해 지도록 해야합니다. 위 그림을 보면 θ가 의미하는 것은 각도이고 크기는 1로 고정이 되어있습니다. 앞 포스트에서 이해했듯 Real part(실수부) = (Z+Z*)/2 Imaginary part(허수부) = (Z-Z*)/2 이기 때문에 Z = ejθ -> (ejθ + e-jθ)/2 = cos(θ) (실수부) Z = ejθ -> (ejθ - e-jθ..

CS/영상처리 2022.05.25

[푸리에 변환 이해하기 - 2] complex exponentials (복소지수) 복소평면 이해

일단 복소지수를 알아보기 전에 복소수라는 개념을 알아야 합니다. 그렇다면 복소평면을 알아보기 전에 수에 특징에 대해서 알고 가면 쉽게 이해할 수 있습니다. 수는 크기와 방향을 갖습니다. 여기서 방향이라는 것을 나타내기 위해 우리는 익숙한 음수를 사용합니다. 1×3×3 은 무엇을 뜻 할까? 1라는 위치에서 3배한 위치로 다시 그 위치에서 3배한 위치로 이동하라는 뜻이다. 그렇다면 1×(-3)×(-3) 는 무엇을 뜻 할까? 음수는 반대 방향을 말합니다. 1×(-1)×3×(-1)×3 으로 보면 1의 위치에서 반대 방향 위치로 이동 후 3배 이동 후 다시 반대 방향 위치로 간 후 다시 3배 이동 이라고 볼 수 있습니다. 자 그렇다면 x² = -1 이라는 것은 어떤 1을 두 번 변환시켜서 -1 위치로 이동시키려면..

CS/영상처리 2022.05.25

[푸리에 변환 이해하기 - 1] Sinusoids (정현파)

푸리에 변환을 이해하기 위해 알아할 기본적인 지식부터 하나씩 정리할 것 입니다. *각속도라는 개념에 대해서 좀 더 설명 해보자면 sin 그래프를 원에 붙인다고 생각하면 쉽습니다. 무슨 말이냐면 cos(2πt) 그래프에서 주기는 1sec 일 겁니다. 그 말은 똑같은 모양이 반복되어지는 시간이 1초라는 겁니다. 즉, 1초마다 똑같은 모양이 반복되는 것이죠. 360도는 2π이기 때문에 원으로 볼때 한 바퀴라는 것은 2π 만큼 각을 움직 인 것 입니다. 그래서 cos그래프에서 1초 동안 움직인 거리를 원으로 그렸을 때 몇 바퀴를 돌 수 있을까 라는 생각을 해보면 만약 주기가 2초라면 2초마다 반복이 일어나는 거고 1초 동안은 한 주기 그래프에서 1/2만 이동하는 것이죠. 그럼 원으로 그려서 봤을 때 전체 주기의..

CS/영상처리 2022.05.25

백준 14889 스타트와 링크 c++ [컴공과고씨]

https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 이 문제의 핵심은 두 가지로 볼 수 있다. 첫 번째는 팀을 어떤 식으로 구성하는 가. 두 번째는 구성한 팀에서 능력치를 구해 전 팀과 비교. 팀을 구성하는 방법은 중복을 고려해주어야 한다. 팀을 구성하는 방법 - 먼저 한 팀의 인원은 n/2이다. n이 4라고 할 때 한 팀의 인원은 2명 - 01 02 03 12 13 23 이런식으로 구성할 것이다. for (int i = start; i < n;i++){ // 중복 고..

알고리즘/백준 2022.05.05
반응형