Возможно ошибка где-то у Вас.
Первые куски последовательности совпадают с вашими.
Вместо abs можно использовать: angle, real, imag для вывода аргумента, действительной или минимой частей. Равномерность заполнения графика от этого не зависит.
Да, для аргумента у меня тоже равномерно получается. Но вот графики начальной половины массива, выдаваемого
Fourier в Mathematica, для 14-й итерации последовательности (
чисел):
МодульКвадрат модуляАргументReImМодуль ReМодуль ImПо виду последних двух можно судить, что даже действительные и мнимые части амплитуд спектра не очень-то равномерно распределяются по сравнению с аргументом или квадратом модуля (плотность больших по модулю значений не очень). Проблема с модулем без квадрата видна явно. Код для желающих проверить на ошибки — ниже:
(Код)
Код:
(* инверсия последовательности 0 и 1 *)
inverted[xs_] := Map[1 - # &, xs]
(* инверсия первой половины последовательности *)
withInvertedStart[xs_ /; EvenQ[Length[xs]]] :=
With[{n = Length[xs]/2}, Join[inverted@Take[xs, n], Drop[xs, n]]]
a268411step[xs_] := Join[xs, withInvertedStart@xs]
(* Убедимся, что получается что-то нужное: *)
stringify[xs_] := StringJoin[ToString /@ xs]
stringify /@ NestList[a268411step, {0, 1}, 5] // Column
(* Должны вывестись последовательные первые куски последовательности *)
(* Конец убеждения *)
(* Графики: *)
(* Итерация *)
n = 14;
(* Последовательность *)
seq = Nest[a268411step, {0, 0}, n] - 1/2;
(* Фурье *)
fseq = Fourier[seq];
(* а теперь его почти первая половина (без амплитуды нулевой частоты, с амплитудой частоты Найквиста) *)
fseq = fseq[[2 ;; Length[fseq]/2 + 1]];
(* Для удобства рисования одинаковых графиков *)
L[e___] := ListPlot[e, Axes -> False, Frame -> True, PlotRange -> All, PlotStyle -> {PointSize[Tiny]}]
L2[f_] := L[f /@ fseq, PlotLabel -> f[z]]
(* Рисуем *)
L2[Abs]
L2[Abs[#]^2 &]
L2[Arg]
L2[Re]
L2[Abs[Re[#]] &]
L2[Im]
L2[Abs[Im[#]] &]
В упоминаемых там функциях я уверен.
-- Пн июл 11, 2016 20:58:19 --Давайте лучше статистические показатели сравним. Сейчас дам среднее для модулей амплитуд.
-- Пн июл 11, 2016 21:07:54 --Для модулей среднее
, тогда как для квадратов модулей —
, это всё если нормировать модули/квадраты модулей на
.
P. S. Ой, я тут сделал путаницу с порядком последовательности. Сейчас везде сделаю одинаковый. [Сделал. 14-я итерация последовательности, как выше.]