Обнаружение сигнала с использованием нескольких выборок

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

Введение

Пример, Signal Detection in Белый Гауссов Шум, представляет основную задачу обнаружения сигнала. В этом примере для выполнения обнаружения используется только одна выборка из принятого сигнала. Этот пример включает больше выборок в процесс обнаружения для улучшения эффективности обнаружения.

Как и в предыдущем примере, примите, что степень сигнала равна 1, и отношение один сигнал дискретизации к шуму (ОСШ) составляет 3 дБ. Количество испытаний Монте-Карло составляет 100000. Желаемая вероятность ложного предупреждения (PFA) составляет 0,001.

Ntrial = 1e5;             % number of Monte Carlo trials
Pfa = 1e-3;               % Pfa

snrdb = 3;                % SNR in dB
snr = db2pow(snrdb);      % SNR in linear scale
npower = 1/snr;           % noise power
namp = sqrt(npower/2);    % noise amplitude in each channel

Обнаружение сигнала с использованием более длинной формы волны

Как обсуждалось в предыдущем примере, порог определяется на основе PFA. Поэтому, пока выбран порог, PFA фиксируется, и наоборот. Между тем, безусловно, предпочитают иметь более высокую вероятность обнаружения (Pd). Один из способов достичь этого - использовать несколько выборок для выполнения обнаружения. Для примера в предыдущем случае ОСШ на одной выборке составляет 3 дБ. Если можно использовать несколько выборок, то согласованный фильтр может привести к дополнительному усилению в ОСШ и, таким образом, улучшить эффективность. На практике можно использовать более длинную форму волны для достижения этого усиления. В случае обработки сигнала в дискретном времени можно также получить несколько выборок путем увеличения частоты дискретизации.

Предположим, что форма волны теперь сформирована двумя выборками

Nsamp = 2;
wf = ones(Nsamp,1);
mf = conj(wf(end:-1:1));  % matched filter

Для когерентного приемника сигнал, шум и порог заданы как

% fix the random number generator
rstream = RandStream.create('mt19937ar','seed',2009);

s = wf*ones(1,Ntrial);
n = namp*(randn(rstream,Nsamp,Ntrial)+1i*randn(rstream,Nsamp,Ntrial));
snrthreshold = db2pow(npwgnthresh(Pfa, 1,'coherent'));
mfgain = mf'*mf;
threshold = sqrt(npower*mfgain*snrthreshold);   % Final threshold T

Если цель присутствует

x = s + n;
y = mf'*x;
z = real(y);
Pd = sum(z>threshold)/Ntrial
Pd = 0.3947

Если цель отсутствует

x = n;
y = mf'*x;
z = real(y);
Pfa = sum(z>threshold)/Ntrial
Pfa = 0.0011

Заметьте, что ОСШ улучшается согласованным фильтром.

snr_new = snr*mf'*mf;
snrdb_new = pow2db(snr_new)
snrdb_new = 6.0103

Постройте график кривой ROC с этим новым значением ОСШ.

rocsnr(snrdb_new,'SignalType','NonfluctuatingCoherent','MinPfa',1e-4);

Figure contains an axes. The axes with title Nonfluctuating Coherent Receiver Operating Characteristic (ROC) Curves contains 2 objects of type line, text.

На рисунке видно, что точка, заданная PFA и Pd, падает прямо на кривую. Поэтому ОСШ, соответствующий кривой ROC, является ОСШ одной выборки на выходе согласованного фильтра. Это показывает, что, хотя для выполнения обнаружения можно использовать несколько выборок, порог одной выборки в ОСШ (snrthreshold в программе) не меняется по сравнению с простым случаем выборки. Нет никакого изменения, потому что пороговое значение по существу определяется PFA. Однако конечный порог T действительно меняется из-за дополнительного согласованного усиления фильтра. Результат PFA остается неизменным по сравнению со случаем, когда для обнаружения используется только одна выборка. Однако дополнительный согласованный коэффициент усиления улучшил Pd с 0,1390 до 0,3947.

Можно запустить аналогичные случаи для некогерентного приемника, чтобы проверить отношение между Pd, PFA и ОСШ.

Обнаружение сигнала с использованием импульсного интегрирования

Радиолокационные и гидроакустические приложения часто используют импульсное интегрирование, чтобы еще больше улучшить эффективность обнаружения. Если приемник когерентен, импульсное интегрирование просто добавляет действительные части согласованных фильтрованных импульсов. Таким образом, улучшение ОСШ линейно, когда используется когерентный приемник. Если интегрируется 10 импульсов, то ОСШ улучшается в 10 раз. Для некогерентного приемника отношение не так просто. Следующий пример показывает использование импульсного интегрирования с некогерентным приемником.

Предположим интегрирование 2 импульсов. Затем создайте принятый сигнал и примените к нему согласованный фильтр.

PulseIntNum = 2;
Ntotal = PulseIntNum*Ntrial;
s = wf*exp(1i*2*pi*rand(rstream,1,Ntotal));  % noncoherent
n = sqrt(npower/2)*...
    (randn(rstream,Nsamp,Ntotal)+1i*randn(rstream,Nsamp,Ntotal));

Если цель присутствует

x = s + n;
y = mf'*x;
y = reshape(y,Ntrial,PulseIntNum);  % reshape to align pulses in columns

Можно интегрировать импульсы, используя любой из двух возможных подходов. Оба подхода связаны с приближением модифицированной функции Бесселя первого рода, которая встречается при моделировании теста отношения вероятностей (LRT) некогерентного процесса обнаружения с использованием нескольких импульсов. Первый подход - это сумма abs (y) ^ 2 через импульсы, которая часто упоминается как детектор квадратного закона. Второй подход состоит в том, чтобы суммировать abs (y) из всех импульсов, который часто упоминается как линейный детектор. Для малых ОСШ предпочтительным является детектор квадратного закона, в то время как для больших ОСШ предпочтительным является использование линейного детектора. Мы используем квадратный детектор закона в этой симуляции. Однако различие между двумя типами детекторов обычно находится в пределах 0,2 дБ.

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

y=|x1|2++|xn|2.

z = pulsint(y,'noncoherent');

Отношение между порогом T и PFA, учитывая эту новую достаточную статистику z, определяется как

Pfa=1-I(T2/(NM)L,L-1)=1-I(SNRL,L-1).

где

I(u,K)=0uK+1e-ττKK!dτ

является формой Пирсона неполной гамма-функции, и L является количеством импульсов, используемых для импульсного интегрирования. Используя детектор квадратного закона, можно вычислить порог ОСШ, включающий интегрирование импульсов, используя функцию npwgnthresh, как и прежде.

snrthreshold = db2pow(npwgnthresh(Pfa,PulseIntNum,'noncoherent'));

Получившийся порог для достаточной статистики, z, задается как

mfgain = mf'*mf;
threshold = sqrt(npower*mfgain*snrthreshold);

Вероятность обнаружения получается путем

Pd = sum(z>threshold)/Ntrial
Pd = 0.5343

Затем вычислите PFA, когда принятый сигнал является шумом, только используя некогерентный детектор с 2 интегрированными импульсами.

x = n;
y = mf'*x;
y = reshape(y,Ntrial,PulseIntNum);
z = pulsint(y,'noncoherent');
Pfa = sum(z>threshold)/Ntrial
Pfa = 0.0011

Чтобы построить график кривой ROC с импульсным интегрированием, необходимо задать количество импульсов, используемых в интегрировании в функции rocsnr

rocsnr(snrdb_new,'SignalType','NonfluctuatingNoncoherent',...
    'MinPfa',1e-4,'NumPulses',PulseIntNum);

Figure contains an axes. The axes with title Nonfluctuating Noncoherent Receiver Operating Characteristic (ROC) Curves contains 2 objects of type line, text.

Снова точка, заданная PFA и Pd, падает на кривую. Таким образом, ОСШ в кривой ROC задает ОСШ одной выборки, используемой для обнаружения из одного импульса.

Такое значение ОСШ может быть также получено из Pd и PFA с помощью уравнения Альберсхайма. Результат, полученный из уравнения Альберсхайма, является всего лишь приближением, но довольно хорошим для часто используемых PFA, Pd и области значений импульсного интегрирования.

Примечание: уравнение Альберсхайма имеет много допущений, таких как цель неколеблющаяся (Случай завихрения 0 или 5), шум сложный, белый Гауссов, приемник некогерентен и линейный детектор используется для обнаружения (детектор квадратного закона для неколеблющейся цели также в порядке).

Чтобы вычислить необходимый ОСШ одной выборки для достижения определенных Pd и PFA, используйте функцию albersheim как

snr_required = albersheim(Pd,Pfa,PulseIntNum)
snr_required = 6.0009

Это вычисленное необходимое значение ОСШ соответствует новому значению ОСШ 6 дБ.

Чтобы увидеть улучшение, достигнутое в Pd путем импульсного интегрирования, постройте график кривой ROC, когда не используется импульсное интегрирование.

rocsnr(snrdb_new,'SignalType','NonfluctuatingNoncoherent',...
    'MinPfa',1e-4,'NumPulses',1);

Figure contains an axes. The axes with title Nonfluctuating Noncoherent Receiver Operating Characteristic (ROC) Curves contains 2 objects of type line, text.

Из рисунка можно увидеть, что без импульсного интегрирования Pd может быть только около 0,24 с PFA в 1e-3. С 2-импульсным интегрированием, как проиллюстрировано в вышеописанной симуляции Монте-Карло, для той же PFA, Pd составляет около 0,53.

Сводные данные

Этот пример показал, как использование множественной выборки сигнала в обнаружении может улучшить вероятность обнаружения при сохранении желаемой вероятности ложного уровня тревоги. В частности, он показал использование либо более длинной формы волны, либо импульсного метода интегрирования для улучшения Pd. Пример иллюстрирует отношение между Pd, PFA, кривой ROC и уравнением Альберсхайма. Эффективность вычисляется с помощью симуляций Монте-Карло.