이중 푸리에 변환을 수행하기위한 실용적인 응용 프로그램이 있습니까? … 또는 시간 영역 입력에서 역 푸리에 변환?


11

수학에서는 이중 도함수 또는 함수의 이중 적분을 취할 수 있습니다. 이중 미분 모델을 수행하는 것이 객체의 가속도를 찾는 것과 같은 실제 상황에서 많은 경우가 있습니다.

푸리에 변환은 실수 또는 복소수 신호를 입력으로 사용하고 복소수 신호를 출력으로 생성하므로, 해당 출력을 취하고 두 번째로 푸리에 변환을 적용하는 것을 막을 수있는 것은 없습니다. 이? 복잡한 실제 상황을 모델링하는 데 도움이됩니까?

동일한 논리를 사용하면 원래 시간 도메인 입력 신호의 역 푸리에 변환을 수행하는 데 방해가되지 않습니다. 이것이 유용할까요? 그 이유는 무엇?

답변:


9

"실용적인 응용 프로그램이 있습니까?" 적어도 코드를 확인하고 오류를 바인딩해야합니다.

"이론에서는 이론과 실제가 일치합니다. 실제로는 그렇지 않습니다." Matt의 대답에 따라 수학적으로는 아닙니다. (이미 답변 된대로), 에프(에프(엑스()))=엑스() (최대 잠재적 인 배율). 그러나 위의 방정식은 일반적으로 이산 푸리에 변환과 빠른 아바타 FFT를 통해 구현되므로 계산에 유용 할 수 있습니다.

첫 번째 이유는 다른 사람 또는 라이브러리에 의해 코딩 된 푸리에 구현이 데이터에서 수행해야하는 작업을 수행하는지 확인하려는 의지에서 비롯됩니다. 샘플 순서, 스케일링 계수, 입력 유형 (실제, 비트 심도)의 제한 또는 길이는 FFT와 같은 푸리에 구현에 대한 잠재적 인 후속 오류의 원인입니다. 따라서 온 전성 검사로서 구현 된 버전이 적어도 대략 이론적 인 속성을 상속하는지 확인하는 것이 좋습니다. 보시다시피, Machupicchu에서 볼 수 있듯이 실제 입력이 반대로 복구되지는 않습니다. 종종 가상 부분이 정확히 0이 아니며 실제 부분이 예상되는 부분이지만 컴퓨터의 불완전한 계산 으로 인해 상대적 오류가 작습니다. 기계 의존 공차 내 (부동 소수점). 이것은 다음 그림에서 볼 수 있습니다. FFT는 랜덤 32- 샘플 신호에 두 번 적용되고 플립됩니다. 보시다시피 배정 밀도 부동 소수점을 사용하면 오류가 적습니다.

데이터, 이중 뒤집힌 FFT 및 오류

오류가 상대적으로 작지 않으면 사용하는 코드에 실수가있을 수 있습니다.

두 번째는 단층 촬영과 같이 엄청난 양의 데이터 또는 대량의 반복 FFT 계산과 관련이 있습니다. 거기에서, 이전의 작은 상대 오차는 누적되고 전파 될 수 있으며, 심지어 계산의 발산 또는 오차를 유발할 수 있습니다 . 이것은 다음 그림에서 볼 수 있습니다. 그렇게하지 않은 긴 신호를 들면 엑스0 ( 1이자형6 : 샘플), 우리는 다음 반복을 수행

엑스케이+1=아르 자형이자형(에프(에프(에프(에프(엑스케이)))))
에프최대|엑스케이엑스0|

데이터, 4 배 FFT 및 반복에 대한 최대 오류

보시다시피, 신호의 크기 때문에 오류의 크기 순서가 변경되었습니다. 또한 최대 오차는 꾸준히 증가합니다. 회 반복 한 후에 는 충분히 작습니다. 그러나 -voxel 큐브와 수백만 반복하면이 오류는 무시할 수 없을 것입니다.10001000×1000×1000

오류의 경계를 정하고 반복에 대한 동작을 평가하면 이러한 동작을 감지하고 적절한 임계 값 또는 반올림을 통해이를 줄일 수 있습니다.

추가 정보:


1
나는이 답변을 정말 좋아하고 그것을 허용 된 답변으로 표시했을 것입니다. 그러나이 질문에 나오는 대부분의 사람들이 찾고있는 것은 Matt이 링크에서 제공 한 이론적 정보라고 생각합니다. 좋은 답변을 원하지만 +1.
tjwrona1992 3

1
당신의 의견에 정말 감사합니다. 그러나 이산 푸리에 구현의 오류가 중요하다는 것을 보여주기 위해 적절한 수치로 답변을 업데이트했습니다.
Laurent Duval

17

푸리에 변환을 두 번 취하는 것은 시간 반전 (또는 현재 차원의 반전)과 같습니다. 푸리에 변환에 사용하는 스케일링 유형에 따라 곱하기 상수를 얻습니다 .엑스()

시간 도메인 신호에 적용된 역 푸리에 변환은 주파수 반전을 가진 스펙트럼을 제공합니다. 한 번 봐 가지고 이 답변 자세한 내용을.


4
당신은 재귀 적으로 내 마음을 날려 버렸습니다.
tjwrona1992

매트가 무엇인지 설명해주세요. L은 내 코드로 2D로 말했습니까? 즉 우리는 f (-x, -y)를 얻는다.
Machupicchu

@Machupicchu, 맞아 보인다.
tjwrona1992

하하 그럼 당신은 내 대답 광고 최고 하나를 선택할 수 있습니다 ^^ (그는 53K 담당자가 그래서 그 하하를 막을 수 없습니다)
Machupicchu

내가 신호를 반전시키는 이중 푸리에 변환보다 더 쉬운 방법이 있다는 것을 깨달았다
고하자

16

푸리에 변환을 복용하는 동안 직접 당신에게 FT없이 구현하기가 훨씬 저렴 것이다 사소한 시간 반전을 제공하는 행에 두 번, 거기에 있다 다시 다음 다른 작업을 적용, 푸리에 변환을 복용에 의해 수행 될 수있는 유용한 물건 푸리에가 그 결과를 변화 시켰습니다. 가장 잘 알려진 예는 신호 자체와 일종의 컨볼 루션자기 상관 입니다. 순진하게 구현되면 컨볼 루션은 O ( n 2 )이지만 O ( n · log n 만) 푸리에 변환을 통해 우회를 할 때. 따라서 자기 상관은 일반적으로 신호를 FT하고 절대 제곱을 취한 후 시간 영역으로 다시 IFT를함으로써 수행됩니다.


2
또한, 푸리에 변환의 로그의 역 푸리에 변환 인 cepstrum이 있습니다. 주기적 신호를 감지하는 데 사용할 수 있습니다.
Olli Niemitalo

12

이미지는 2D 신호로 볼 수 있으므로 2D 푸리에 변환 (2D DFT)은 이미지 처리에 사용됩니다. 예를 들어, 회색조 이미지 , , 이는 좌표 및 에서 이미지의 강도 값 z를 의미합니다. 예를 들어 이것을보십시오 :나는나는(엑스,와이)=엑스와이

https://ch.mathworks.com/help/matlab/ref/fft2.html

이 시도:

x=imread('cameraman.tif');
X=fft2(fft2(x));
imagesc(abs(X));

다음과 비교하십시오.

x=imread('cameraman.tif');
X= ifft2(fft2(x));
imagesc(abs(X));

오히려 그렇게. fft2를 두 번째로 ifft2가 아닌 시간에 적용했습니다. 이것이 @Matt L.이 말한 것을 보여줍니다.

"푸리에 변환을 두 번 취하는 것은 시간 반전과 같습니다",

ifft ()에서 양수 대신 -i 허수 음수 때문에 이미지가 반전 된 것을 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오

또한 1D 신호 (예 : 시간)에 대해서도 수행했습니다.

여기에 이미지 설명을 입력하십시오


2D 푸리에 변환과 같은 것이 있다는 것을 알고 있지만 입력 신호를 가져 와서 알고리즘을 통해 실행 한 다음 해당 실행의 출력을 가져 와서 다시 실행하는 것과는 다릅니다.
tjwrona1992

1
푸리에 변환은 분리 가능합니다.
Machupicchu

내 질문은 2D 푸리에 변환에도 적용됩니다. 이론적으로 2D 입력 신호를 가져 와서 2D 푸리에 변환을 적용한 다음 2D 출력 신호를 받아 입력으로 사용하여 2D 푸리에 변환을 다시 적용 할 수 있습니다.
tjwrona1992

다음 작업을 수행하면 Matlab에서 어떤 일이 발생하는지 확인하십시오. cf. 답변을 업데이트했습니다
Machupicchu

1
난 당신이 대신 절대 값의 실제 부분을 사용하는 것이 좋습니다 것
로랑 듀발

6

두 번째 질문에 답하기 위해, 디지털 통신에는 현재 시간 영역 신호에 IFFT를 적용하는 데 유용하게 사용되는 기술이 핸드폰에있다 . OFDM 은 송신기에서 데이터의 시간 영역 시퀀스에 IFFT를 적용한 다음 수신기에서 FFT와 역전시킨다. 문헌은 IFFT-> FFT를 사용하는 것을 좋아하지만 실제로 어느 것이 먼저 나오는지는 차이가 없습니다.

OFDM 송신기 다이어그램

여기서 중요한 이점은 좌파의 답변과 크게 관련이 있습니다. 다중 경로 페이딩 ( multipath fading ) 이라고하는 왜곡 유형이 있으며 , 밀도가 높은 도시 지역의 휴대폰은이를 많이 처리해야합니다. 우리는 다중 경로 페이딩을 알려지지 않은 계수를 가진 컨볼 루션으로 모델링하는 것을 좋아합니다. 이벤트 체인은 IFFT-> 전송-> 다중 경로 적용-> 수신-> FFT와 유사하기 때문에 다중 경로 페이딩은 FFT를 거쳐 알 수없는 값을 가진 간단한 포인트 단위 곱셈이됩니다. 이 값은 컨볼 루션 계수보다 예측 및 수정하기가 훨씬 쉽습니다.

이 효과는 또한 전체 주파수 채널을 꺼낼 (또는 "널 (null)"수있는 멀티 패스 / 페이딩에 대한 신호를보다 탄력적으로 만듭니다. 이 기사 는 방법을 설명합니다

이러한 다중 경로 전파는 약간 다른 시간에 도달하는 신호의 두 카피의 파괴적인 간섭으로 인해 수신 된 무선 신호의 주파수 통과 대역에서 깊은 스펙트럼 널을 생성 할 수 있습니다. OFDM에서 널 (null)은 하나 이상의 서브 캐리어를 취할 수있다. 단일 반송파 QAM에서 동일한 널은 해당 순간의 특정 데이터 패턴에 따라 순차적으로 인접한 심볼의 버스트를 떨어 뜨릴 수 있습니다. 극단적 인 경우 신호 획득 손실이 발생할 수도 있습니다. 그런 다음 원래 데이터 시퀀스를 복구하기 위해 FEC의 힘을 얻습니다.


와우 이거 엄청 재미 있어요! 감사! :)
tjwrona1992 1

1

이 정보는 사용자 "Birdwes"에 의해 제공되었지만, 그 정보를 게시 할만한 평판이 충분하지 않았기 때문에 관련성 있고 유용 해 보이기 때문에 여기에 게시 할 것입니다.

"이 포럼에 의견을 추가 할만한 충분한 포인트가 없기 때문에 여기에서하고 있습니다 : Accord.Math Hilbert Transform의 소스 코드를 살펴 보시고 이것이 왜 실용적인 옵션이되는지 살펴보십시오 : https : //github.com/primaryobjects/Accord.NET/blob/master/Sources/Accord.Math/Transforms/HilbertTransform.cs

실제 용도로는 SSB 송신기 구축 또는 거의 모든 변조 계획이 있습니다. IQ 변조를 살펴보면 -90 도의 위상 편이가 왜 중요한지 알 수 있습니다. 삼각법 원리의 곱. 예 : https://user.eng.umd.edu/~tretter/commlab/c6713slides/ch7.pdf

힐버트 변환은 음의 성분을 0으로 만드는 FFT 사이의 중간 단계를 사용합니다. 다른 주파수도 필터링하기 위해 남용 할 수 있습니다. "

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