Как определить, насколько «белый» шум? Существуют ли какие-либо статистические меры или какие-либо другие меры (например, БПФ), которые могут количественно определить, насколько близок к белому шуму конкретный образец?
Вас интересуют предложения о том, как сравнивать различные источники / сигналы шума, или вы ищете показатель «промышленного стандарта», который применяется к количеству «цвета» в источнике шума? Мне неизвестна общая метрика, которая применима, но вы можете сравнить количество окраски, посмотрев на распределение мощности шума в БПФ или PSD (более плоский = более белый) или вы можете сравнить фукситоны автокорреляции (более узкий = более плоский).
user2718
Если я вас правильно понимаю, вы ищете автоматический калькулятор черного ящика "белизны", правильно?
Спейси
1
+1 для вычисления спектральной плотности мощности источника. Для записи, я хотел бы добавить, что белый шум не может быть выбран на практике, так как его PSD является плоским в -∞ <f <∞.
Серж
@ Мохаммед - не обязательно черный ящик для расчета. Мне просто любопытно, есть ли математическая оценка белизны.
Китчи
1
@BruceZenone - Для реальной выборки данных, как отметил Серж, PSD никогда не будет абсолютно плоским, нет? Но я все еще догадываюсь, что чем он более плоский, тем ближе он становится к "истинному" белому шуму.
Китчи
Ответы:
12
Вы можете сформировать статистический тест, основанный на автокорреляции потенциально белой последовательности. В Руководстве по цифровой обработке сигналов предлагается следующее.
Это может быть реализовано в scilab, как показано ниже.
Запуск этой функции для двух шумовых последовательностей: белый шумовой и слегка фильтрованный белый шумовой, затем получается следующий график. Скрипт для генерации каждой реализации шумовых последовательностей находится в конце.
Среднее значение статистики для белого шума составляет 9,79; среднее значение статистики для отфильтрованного шума составляет 343,3.
Глядя на стол хи-квадрат для 10 степеней свободы, мы получаем:
р = 0,01
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)];
Я не большой статистик ... Но меня беспокоит общая достоверность вышеупомянутого теста для процессов негауссовского белого шума: насколько я понимаю, белый шум означает только то, что нет корреляции во времени и, таким образом, автокорреляция импульс при 0 лаг. Белый цвет не обязательно означает, что амплитуды нормально распределены, что и предполагает тест ... Таким образом, насколько я понимаю, тест действителен для белого гауссовского шума (поскольку сумма квадратов гауссовых распределений является хи-квадрат), а не для общего белого шума? Прав ли я или есть что-нибудь написанное
Фабиан
@Fabian: да и нет. Вы правы в том, что тест предполагает, что значения автокорреляции являются гауссовыми. Если исходный шум почти равен любому распределению, то центральная предельная теорема означает, что распределение оценок автокорреляции будет гауссовым. Есть некоторые патологические случаи, когда коэффициенты автокорреляции не будут гауссовыми, но они, как правило, немногочисленны и далеко друг от друга (и, возможно, автокорреляционный анализ не является лучшим вариантом в этих случаях).
Питер К.
@ PeterK.Не может ли быть более сложный тест для определения плоскостности PSD? Таким образом, не делается никаких предположений, и распределение образцов шума не имеет значения.
Envidia
@ Envidia: два эквивалентны, не так ли? PSD - это просто ДПФ автокорреляционной последовательности.
Петр К.
@PeterK. В вашем примере да, они по сути эквивалентны. Однако процедура предполагает, что, как правило, образцы могут быть распределены любым способом. Я понимаю, что теорема о центральном пределе вступает в силу и действует, поэтому я использую термин «сложнее». Может быть, лучшим термином будет «общий».
Envidia
5
Я бы использовал автокорреляционные свойства сигнала или плоскостность PSD, чтобы определить это. Автокорреляция теоретического белого шума является импульсом при запаздывании 0. Кроме того, PSD преобразования Фурье функции автокорреляции PSD теоретического белого шума является постоянной величиной.
Любой из них должен дать вам хорошее представление о белизне вашего шума.
Во втором томе полунитумных алгоритмов Кнута есть раздел о генентаторах и тестировании случайных чисел.
Проблема с тестами на основе DFT состоит в том, что имеется небольшая спектральная утечка, методика вводит некоторую корреляцию, которой, если вы делаете ваши преобразования "длинными", обычно можно пренебречь.
В NIST также есть тесты для случайных битовых потоков.
Ответы:
Вы можете сформировать статистический тест, основанный на автокорреляции потенциально белой последовательности. В Руководстве по цифровой обработке сигналов предлагается следующее.
Это может быть реализовано в scilab, как показано ниже.
Запуск этой функции для двух шумовых последовательностей: белый шумовой и слегка фильтрованный белый шумовой, затем получается следующий график. Скрипт для генерации каждой реализации шумовых последовательностей находится в конце.
Среднее значение статистики для белого шума составляет 9,79; среднее значение статистики для отфильтрованного шума составляет 343,3.
Глядя на стол хи-квадрат для 10 степеней свободы, мы получаем:
источник
Я бы использовал автокорреляционные свойства сигнала или плоскостность PSD, чтобы определить это. Автокорреляция теоретического белого шума является импульсом при запаздывании 0. Кроме того, PSD преобразования Фурье функции автокорреляции PSD теоретического белого шума является постоянной величиной.
Любой из них должен дать вам хорошее представление о белизне вашего шума.
источник
Белизна эквивалентна независимости.
Вы можете посмотреть на несгибаемый https://en.m.wikipedia.org/wiki/Diehard_tests
Во втором томе полунитумных алгоритмов Кнута есть раздел о генентаторах и тестировании случайных чисел.
Проблема с тестами на основе DFT состоит в том, что имеется небольшая спектральная утечка, методика вводит некоторую корреляцию, которой, если вы делаете ваши преобразования "длинными", обычно можно пренебречь.
В NIST также есть тесты для случайных битовых потоков.
источник