Проверка гипотезы Неймана-Пирсона

Цель проверки гипотезы

В приложениях с фазированной решеткой иногда нужно решить между двумя конкурирующими гипотезами, чтобы определить реальность, лежащую в основе данных, которые получает массив. Например, предположим, что одна гипотеза, называемая null hypothesis, утверждает, что наблюдаемые данные состоят только из шума. Предположим, другая гипотеза, называемая alternative hypothesis, утверждает, что наблюдаемые данные состоят из детерминированного сигнала плюс шум. Чтобы решить, вы должны сформулировать правило решения, которое использует указанные критерии для выбора между этими двумя гипотезами.

Поддержка проверки гипотезы Неймана-Пирсона

Когда вы используете программное обеспечение Phased Array System Toolbox™ для таких приложений, как радар и гидролокатор, вы обычно используете критерий оптимальности Неймана-Пирсона (NP), чтобы сформулировать свой тест гипотезы.

Когда вы выбираете критерий NP, вы можете использовать npwgnthresh определить порог для обнаружения детерминированных сигналов в белом Гауссовом шуме. Оптимальное правило принятия решений происходит от likelihood ratio test (LRT). LRT выбирает между ядром и альтернативными гипотезами на основе отношения условных вероятностей.

npwgnthresh позволяет вам задать максимальную вероятность ложного предупреждения в качестве ограничения. false alarm означает определение, что данные состоят из сигнала плюс шум, когда присутствует только шум.

Для получения дополнительной информации о статистических допущениях, npwgnthresh функция делает, смотрите страницу с описанием для этой функции.

Порог реального сигнала при белом Гауссовом шуме

Этот пример показывает, как эмпирически вычислить вероятность ложного предупреждения для реального сигнала в белом Гауссовом шуме.

Определите необходимый сигнал в шум (ОСШ) в децибелах для детектора NP, когда максимально допустимая вероятность ложного предупреждения 10 ^ -3.

Pfa = 1e-3;
T = npwgnthresh(Pfa,1,'real');

Определите фактический порог обнаружения, соответствующий желаемой вероятности ложного предупреждения, принимая, что отклонение равно 1.

variance = 1;
threshold = sqrt(variance * db2pow(T));

Эмпирически проверьте, что порог обнаружения приводит к желаемой вероятности ложного предупреждения при нулевой гипотезе. Для этого сгенерируйте 1 миллион выборок Гауссовой случайной переменной и определите долю выборок, которые превышают порог.

rng default
N = 1e6;
x = sqrt(variance) * randn(N,1);
falsealarmrate = sum(x > threshold)/N
falsealarmrate = 9.9500e-04

Постройте график первых 10 000 выборок. Красная горизонтальная линия показывает порог обнаружения.

x1 = x(1:1e4);
plot(x1)
line([1 length(x1)],[threshold threshold],'Color','red')
xlabel('Sample')
ylabel('Value')

Figure contains an axes. The axes contains 2 objects of type line.

Можно увидеть, что немногие значения выборки превышают порог. Этот результат ожидается из-за малой вероятности ложного предупреждения.

Порог для двух импульсов реального сигнала в белом гауссовом шуме

Этот пример показывает, как эмпирически проверить вероятность ложного предупреждения в системе, которая интегрирует два реальных импульса. В этом сценарии каждая интегрированная выборка является суммой двух выборок, по одной от каждого импульса.

Определите необходимый ОСШ для NP-детектора, когда максимально допустимая вероятность ложного предупреждения 10-3.

pfa = 1e-3;
T = npwgnthresh(pfa,2,'real');

Сгенерируйте два набора из одного миллиона выборок Гауссовой случайной переменной.

rng default
variance = 1;
N = 1e6;
pulse1 = sqrt(variance)*randn(N,1);
pulse2 = sqrt(variance)*randn(N,1);
intpuls = pulse1 + pulse2;

Вычислите долю выборок, которые превышают порог.

threshold = sqrt(variance*db2pow(T));
falsealarmrate = sum(intpuls > threshold)/N
falsealarmrate = 9.8900e-04

Эмпирическая частота ложных предупреждений очень близка к .001

Порог для комплексных сигналов при комплексном белом гауссовом шуме

Этот пример показывает, как эмпирически проверить вероятность ложного предупреждения в системе, которая использует когерентное обнаружение сложных сигналов. Когерентное обнаружение означает, что система использует информацию о фазе комплексных сигналов.

Определите необходимый ОСШ для NP-детектора в когерентной схеме обнаружения с одной выборкой. Используйте максимально допустимую вероятность ложного предупреждения 10-3.

pfa = 1e-3;
T = npwgnthresh(pfa,1,'coherent');

Тест, что этот порог эмпирически приводит к правильной скорости ложного предупреждения Достаточная статистическая величина в комплексном случае является действительной частью полученной выборки.

rng default
variance = 1;
N = 1e6;
x = sqrt(variance/2)*(randn(N,1)+1j*randn(N,1));
threshold = sqrt(variance*db2pow(T));
falsealarmrate = sum(real(x)>threshold)/length(x)
falsealarmrate = 9.9500e-04