Как определить, насколько «белый» шум? Существуют ли какие-либо статистические меры или какие-либо другие меры (например, БПФ), которые могут количественно определить, насколько близок к белому шуму конкретный образец?
Как определить, насколько «белый» шум? Существуют ли какие-либо статистические меры или какие-либо другие меры (например, БПФ), которые могут количественно определить, насколько близок к белому шуму конкретный образец?
Ответы:
Вы можете сформировать статистический тест, основанный на автокорреляции потенциально белой последовательности. В Руководстве по цифровой обработке сигналов предлагается следующее.
Это может быть реализовано в scilab, как показано ниже.
Запуск этой функции для двух шумовых последовательностей: белый шумовой и слегка фильтрованный белый шумовой, затем получается следующий график. Скрипт для генерации каждой реализации шумовых последовательностей находится в конце.
Среднее значение статистики для белого шума составляет 9,79; среднее значение статистики для отфильтрованного шума составляет 343,3.
Глядя на стол хи-квадрат для 10 степеней свободы, мы получаем:
function R = whiteness_test(x,m)
N = length(x);
XC = xcorr(x);
len = length(XC);
lags = len/2+1 + [1:m];
R = N*sum(XC(lags).^2)/XC(len/2+1).^2;
endfunction
X = rand(1,1000,'normal');
Y = filter(1,[1 -0.5],X)
R = [R; whiteness_test(X,10)];
R2 = [R2; whiteness_test(Y,10)];
Я бы использовал автокорреляционные свойства сигнала или плоскостность PSD, чтобы определить это. Автокорреляция теоретического белого шума является импульсом при запаздывании 0. Кроме того, PSD преобразования Фурье функции автокорреляции PSD теоретического белого шума является постоянной величиной.
Любой из них должен дать вам хорошее представление о белизне вашего шума.
Белизна эквивалентна независимости.
Вы можете посмотреть на несгибаемый https://en.m.wikipedia.org/wiki/Diehard_tests
Во втором томе полунитумных алгоритмов Кнута есть раздел о генентаторах и тестировании случайных чисел.
Проблема с тестами на основе DFT состоит в том, что имеется небольшая спектральная утечка, методика вводит некоторую корреляцию, которой, если вы делаете ваши преобразования "длинными", обычно можно пренебречь.
В NIST также есть тесты для случайных битовых потоков.