Non stai facendo nulla di male, ma non stai anche pensando attentamente a cosa dovresti aspettarti di vedere, motivo per cui sei sorpreso del risultato. Per la domanda 1, la tua congettura è vicina, ma in realtà hai le cose al contrario; è il rumore numerico che affligge il tuo secondo, non il tuo primo.
Le foto possono aiutare. Ecco i grafici della grandezza e della fase per la prima prova:
x = Cos[2.0 \[Pi] 200 Range[0, 1, 1/1000]];
fx = Fourier[x];
ListLinePlot[Abs[fx], PlotRange -> All]
ListLinePlot[Arg[fx], PlotRange -> All]
E il secondo:
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
k / 10010 ≤ k ≤ 1000200 / 1000k / 1001
In generale, penso che i grafici del solo angolo di fase siano una pessima idea per trasmettere informazioni, proprio per questo motivo; in primo luogo, non si può dire se si sta osservando la fase di immondizia a bassa ampiezza o segnale effettivo, e in secondo luogo, non è invariante per la traduzione ed è facile ottenere grafici assolutamente sconcertanti per input semplici. Molto meglio, se stai ancora cercando qualcosa che trasmetta informazioni di fase, è un grafico che ritrae simultaneamente informazioni di fase e ampiezza nello stesso modo visivo, come un diagramma in cui la fase è codificata come tonalità e la grandezza è codificata come luminosità.
ADDENDUM: Ecco un paio di foto di Mathematica che illustrano il principio che ho affermato nel paragrafo precedente:
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 × 500io- 1- ioè mappato al viola. Questo è ciò che intendo quando dico che gli spettri di fase sono invarianti non-shift e quindi non suscettibili alla comprensione visiva umana. Ad esempio, con uno spostamento ciclico di 200 punti dati, è completamente impossibile dire cosa sta succedendo nella fase, dato che sembra solo statico, ma il segnale di ingresso non è più complicato rispetto agli altri casi di input.