이산 푸리에 변환 자체가 원래 그런거다.. 라는 의미인가?

Because the discrete Fourier transform matches the input signal with complex exponentials and a cosine is the sum of two complex exponentials divided by 2. The same is true of a sine (except it's divided by 2i)
That is where the factor of 1/2 is coming from. Since you have a real-valued signal, if you are only interested in looking at the magnitude, you can just keep the "positive" frequencies and scale them by 2.
ThemeCopy

[링크 : https://kr.mathworks.com/matlabcentral/answers/84141-why-fft-function-returns-amplitude-divided-by-2]

 

수식을 흐린눈으로 봐도.. 모르겠다.

[링크 : https://en.wikipedia.org/wiki/Discrete_Fourier_transform]

 

fftw 가 실제로 계산하는 것이라는데 수식상으로는 e^-2 밖에 눈에 안띄는데 어떤 부분이 divide by 2 부분일까?

The forward (FFTW_FORWARD) discrete Fourier transform (DFT) of a 1d complex array X of size n computes an array Y, where:


.The backward (FFTW_BACKWARD) DFT computes:.

[링크 : https://www.fftw.org/fftw3_doc/The-1d-Discrete-Fourier-Transform-_0028DFT_0029.html]

 

 

+

2023.06.16

이해를 못하고 있었는데 아래글을 읽고 아! 싶어졌다.

 

Size of FFT in 1D is not half of the signal length. It's still the signal length (assuming FFT length was of the signal length). However for real data, due to conjugate symmetryhalf of this is redundant and can be dicarded to reduce storage. Note however that, when it's required to process the FFT data, you have to construct the full length from the half and proceed.

This is also the reason why spectral analysis software display only positive frequencies for real data; i.e, negative frequencies will be a mirror copy (of the magnitude) of positive frequencies.

But you don't have to discard the half. You can just retain it.

For image processing, the symmetry of FFT for real input data again exist and if you wish you can also dicard half of the image FFT data. Whether this will be employed or not depends on the intentions of the package.

아니요.

1D에서 FFT의 크기는 신호 길이의 절반이 아닙니다. 여전히 신호 길이입니다(FFT 길이가 신호 길이라고 가정). 그러나 실제 데이터의 경우 공액 대칭으로 인해 이 중 절반이 중복되며 저장 공간을 줄이기 위해 버려질 수 있습니다. 단, FFT 데이터 처리가 필요한 경우 절반에서 전체 길이를 구성하여 진행해야 합니다.

이것이 스펙트럼 분석 소프트웨어가 실제 데이터에 대해 양의 주파수만 표시하는 이유이기도 합니다. 즉, 음수 주파수는 양수 주파수의 (크기의) 거울 사본이 될 것입니다.

그러나 절반을 버릴 필요는 없습니다. 그대로 유지하시면 됩니다.

이미지 처리의 경우 실제 입력 데이터에 대한 FFT의 대칭이 다시 존재하며 원하는 경우 이미지 FFT 데이터의 절반을 버릴 수도 있습니다. 이것이 사용될지 여부는 패키지의 의도에 따라 다릅니다.

[링크 : https://dsp.stackexchange.com/questions/55239/why-is-the-size-of-results-from-fft-half-the-size-of-the-input-while-that-is-no]

[링크 : https://brianmcfee.net/dstbook-site/content/ch06-dft-properties/Conjugate-Symmetry.html]

 

예전 mathwork 에서 double sided amplitude 라는 그래프가 있었는데

실제로 FFT 변환은 -N/2 ~ 0 ~ N/2 대역에 대해서 나오지만

부호만 다를뿐 대칭된 정보이기에 메모리가 귀하던 시절 메모리 절약을 위해 절반을 휙~ 날려 버린 듯.

그래서 FFT 변환(? DFT?)을 하면 일반적으로 0~N/2 까지의 주파수가 나오고, 그걸 대칭시켜서 써야 하는 듯.

 

[링크 : https://kr.mathworks.com/help/matlab/ref/fft.html]

 

이해가 갈 듯.. 안 갈 듯 한데

복소수 공간에서 대칭적으로 나오기 때문에 한쪽만 계산하면 다른쪽 벡터가 없어서 절반 길이만 나온다고 보면 될 것 같기도?

[링크 : https://brianmcfee.net/dstbook-site/content/ch06-dft-properties/Conjugate-Symmetry.html]

 

+

켤례 복소수 하니 먼가 단어가 익숙한 느낌 (-_-)

실수를 복소수로 바꾸는건 허수가 0인 걸로 바꾸면 되는거고

켤레 복소수는 실수는 냅두고 허수부 부호만 뒤집으면 된다고.

공액(켤레) 복소수 

[링크 : https://kwon-jjing.tistory.com/40]

'프로그램 사용 > fft, fftw' 카테고리의 다른 글

fft window 함수  (0) 2023.07.03
pFFFT 사용법  (0) 2023.06.15
overlap kissfft  (0) 2023.06.12
fft size overlap window size  (0) 2023.06.12
fftw 라이브러리 사용 테스트  (0) 2023.06.12
Posted by 구차니