당신은 잘못된 일을하고 있지는 않지만, 당신이 볼 것으로 예상되는 것에 대해 신중하게 생각하고 있지 않기 때문에 결과에 놀랐습니다. 1 번 문제는 추측이 가까워 지지만 실제로는 거꾸로 있습니다. 그것은 첫 번째 것이 아니라 두 번째 것을 괴롭히는 수치 노이즈입니다.
사진이 도움이 될 수 있습니다. 첫 번째 시도의 규모와 단계에 대한 도표는 다음과 같습니다.
x = Cos[2.0 \[Pi] 200 Range[0, 1, 1/1000]];
fx = Fourier[x];
ListLinePlot[Abs[fx], PlotRange -> All]
ListLinePlot[Arg[fx], PlotRange -> All]
그리고 두 번째 것 :
x = Cos[2.0 \[Pi] 200 Range[0, 1 - 1/1000, 1/1000]];
fx = Fourier[x];
ListLinePlot[Abs[fx], PlotRange -> All]
ListLinePlot[Arg[fx], PlotRange -> All]
무슨 일이야? 두 번째는 가장 쉬운 설명입니다. 첫째, 두 번째 FFT는 크기 스펙트럼에서 볼 수있는 두 개의 피크를 제외하고 어디에서나 진폭이 0입니다. 1,000 개의 데이터 포인트를 사용하여 FFT를 정의하면 형식의 주파수가 반환되므로k / 1000 ...에 대한 0 ≤ k ≤ 999따라서 신호가 주파수 빈에 정확하게 떨어 집니다 . 결과적으로 다른 998 포인트에서 신호는 전적으로 부동 소수점 오류로 인한 기계 노이즈로 인한 것이므로 위상 스펙트럼은 말 그대로 의사 난수의 위상이기 때문에 넌센스입니다.
그러나 첫 번째 경우 FFT의 정의에는 다음과 같은 형식의 주파수가 포함됩니다. k / 1001 ...에 대한 0 ≤ k ≤ 1000신호 주파수는 200 / (1000)형식이 아닙니다. k / 1001. 결과적으로 신호가 스펙트럼 누출에 의해 넓어지고 거의 모든 곳에서 0이 아닙니다. 위상 플롯의 물리적 형태에 대해서는 언급하지 않지만 닫힌 분석 형태를 허용한다고 말할 것입니다.
일반적으로, 위상 각 그래프만으로는 정보를 전달하기에 정말 나쁜 생각이라고 생각합니다. 첫째, 저 진폭 가비지 또는 실제 신호의 위상을보고 있는지 여부를 알 수 없으며 둘째, 변환 불변성이 아니며 간단한 입력을 위해 완전히 어리둥절한 그래프를 쉽게 얻을 수 있습니다. 위상 정보를 전달하는 것을 찾고 있다면 위상과 진폭 정보를 동일한 시각적 방식으로 동시에 나타내는 그래프 (예 : 색조가 색조로 인코딩되고 크기가 밝기로 인코딩 된 플롯)가 훨씬 더 좋습니다.
부록 : 다음은 Mathematica의 몇 가지 그림으로, 이전 단락에서 언급 한 원칙을 보여줍니다.
hue = Compile[{{z, _Complex}}, {(1.0 Arg[-z] + \[Pi])/(2 \[Pi]),
Exp[1 - Max[Abs[z], 1]], Min[Abs[z], 1]},
CompilationTarget -> "C", RuntimeAttributes -> {Listable}];
L = 500;
data = Table[Boole[x <= 11 && y <= 11], {x, L}, {y, L}];
Image[hue@
RotateRight[
10 RotateRight[Fourier[RotateRight[data, {-5, -5}]], {L/2, L/2}]],
ColorSpace -> Hue, Magnification -> 1]
Image[hue@
RotateRight[
10 RotateRight[Fourier[RotateRight[data, {-4, -4}]], {L/2, L/2}]],
ColorSpace -> Hue, Magnification -> 1]
Image[hue@
RotateRight[
10 RotateRight[Fourier[RotateRight[data, {0, 0}]], {L/2, L/2}]],
ColorSpace -> Hue, Magnification -> 1]
세 이미지 모두 동일한 입력 신호의 2D 푸리에 변환입니다 ( 11 × 11 1의 제곱은 0에서 길이로 채워집니다. 500 × 500), 입력은 5, 4, 0 및 200 데이터 포인트 씩 주기적으로 회전되었습니다. 크기 스펙트럼 (픽셀 밝기로 인코딩)은 동일하지만 위상 스펙트럼은 완전히 다릅니다! 위상 인코딩은 1이 빨간색으로 매핑되도록 수행됩니다.나는 녹색으로 매핑 − 1 청록색에 매핑하고 − 나는자주색으로 매핑됩니다. 이것이 위상 스펙트럼이 변하지 않고 변하지 않기 때문에 인간의 시각적 이해가 불가능하다는 것을 의미합니다. 예를 들어, 200 개의 데이터 포인트를 주기적으로 이동 시키면 위상이 어떻게 진행되는지 알 수 없습니다. 정적 인 것처럼 보이지만 입력 신호는 다른 입력 사례보다 더 복잡하지 않습니다.