Você não está fazendo nada de errado, mas também não está pensando cuidadosamente sobre o que deveria esperar, e é por isso que está surpreso com o resultado. Para a pergunta 1, sua conjectura está próxima, mas você realmente tem coisas ao contrário; é o ruído numérico que está atormentando o seu segundo, não o primeiro.
As imagens podem ajudar. Aqui estão gráficos da magnitude e da fase do primeiro teste:
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 o 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
k / 10010 ≤ k ≤ 1000200 / 1000k / 1001
Em geral, acho que os gráficos apenas do ângulo de fase são uma péssima ideia para transmitir informações, precisamente por esse motivo; primeiro, você não pode dizer se está olhando para a fase do lixo de baixa amplitude ou do sinal real; segundo, não é invariável à tradução e é fácil obter gráficos totalmente desconcertantes para entradas simples. Muito melhor, se você ainda está procurando algo que transmita informações de fase, é um gráfico que retrata simultaneamente as informações de fase e amplitude da mesma maneira visual, como um gráfico em que a fase é codificada como matiz e a magnitude como brilho.
ADENDO: Aqui estão algumas fotos do Mathematica que ilustram o princípio que afirmei no parágrafo 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]
Todas as três imagens são transformadas 2D de Fourier do mesmo sinal de entrada (um quadrado de de 1 preenchido com zeros para um comprimento de ), mas as entradas foram rotacionadas ciclicamente por 5, 4 e 0 e 200 pontos de dados. Os espectros de magnitude (codificados pelo brilho do pixel) são idênticos, mas os espectros de fase são completamente diferentes! A codificação de fase é feita para que 1 mapeie para vermelho, mapeie para verde, mapeie para ciano e11 × 11500 × 500 i- 1- eumapeia para roxo. É isso que quero dizer quando digo que os espectros de fase são invariantes sem mudança de turno e, portanto, não são passíveis de compreensão visual humana. Por exemplo, com um deslocamento cíclico de 200 pontos de dados, é completamente impossível dizer o que está acontecendo na fase, pois parece apenas estático, mas o sinal de entrada não é mais complicado do que os outros casos de entrada.