No está haciendo nada malo, pero tampoco está pensando cuidadosamente sobre lo que debe esperar ver, por lo que está sorprendido por el resultado. Para la pregunta 1, su conjetura está cerca, pero en realidad tiene las cosas al revés; Es el ruido numérico el que afecta a su segundo, no al primero.
Las imágenes pueden ayudar. Aquí hay gráficos de la magnitud y fase para la primera prueba:
x = Cos[2.0 \[Pi] 200 Range[0, 1, 1/1000]];
fx = Fourier[x];
ListLinePlot[Abs[fx], PlotRange -> All]
ListLinePlot[Arg[fx], PlotRange -> All]
Y el segundo:
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]
k / 10000 ≤ k ≤ 999
Sin embargo, para el primero, la definición de la FFT abarca frecuencias de la forma para , mientras que la frecuencia de su señal es , que no es de la forma . Como resultado, su señal se amplía por la fuga espectral y será distinta de cero en casi todas partes. No comentaré la forma física del diagrama de fase, pero diré que admite una forma analítica cerrada.k / 10010 ≤ k ≤ 1000200 / 1000k / 1001
En general, creo que los gráficos de ángulo de fase por sí solos son una muy mala idea para transmitir información, precisamente por esta razón; primero, no puede saber si está viendo la fase de basura de baja amplitud o señal real, y segundo, no es invariante de traducción, y es fácil obtener gráficos completamente desconcertantes para entradas simples. Mucho mejor, si todavía está buscando algo que transmita información de fase, es un gráfico que retrata simultáneamente la información de fase y amplitud de la misma manera visual, como un gráfico donde la fase se codifica como tono y la magnitud se codifica como brillo.
ADENDA: Aquí hay un par de imágenes de Mathematica que ilustran el principio que dije en el párrafo anterior:
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]
11 × 11500 × 500yo- 1- yomapas a púrpura. Esto es a lo que me refiero cuando digo que los espectros de fase son invariables sin desplazamiento y, por lo tanto, no son susceptibles de comprensión visual humana. Por ejemplo, con un desplazamiento cíclico de 200 puntos de datos, es completamente imposible saber qué está pasando en la fase, ya que solo parece estático, pero la señal de entrada no es más complicada que los otros casos de entrada.