exponenta event banner

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

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

Введение

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

Как и в предыдущем примере, предположим, что мощность сигнала равна 1, а отношение сигнал/шум одиночной выборки (SNR) равно 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). Одним из способов достижения этого является использование нескольких выборок для выполнения обнаружения. Например, в предыдущем случае SNR в одной выборке составляет 3 дБ. Если можно использовать несколько выборок, то согласованный фильтр может создать дополнительное усиление в SNR и, таким образом, улучшить рабочие характеристики. На практике можно использовать более длинную форму сигнала для достижения этого коэффициента усиления. В случае обработки дискретного временного сигнала множество выборок также может быть получено путем увеличения частоты дискретизации.

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

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 улучшается с помощью согласованного фильтра.

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

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

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, падает прямо на кривую. Следовательно, SNR, соответствующее кривой ROC, является SNR одной выборки на выходе согласованного фильтра. Это показывает, что, хотя можно использовать несколько выборок для выполнения обнаружения, порог одиночной выборки в SNR (snrthreshold в программе) не изменяется по сравнению с простым случаем выборки. Изменения отсутствуют, поскольку пороговое значение по существу определяется Pfa. Однако конечный порог T действительно изменяется из-за дополнительного коэффициента усиления согласованного фильтра. Полученный Pfa остается таким же по сравнению со случаем, когда для обнаружения используется только один образец. Однако дополнительное согласованное усиление улучшило Pd с 0,1390 до 0,3947.

Можно выполнить аналогичные случаи для некогерентного приемника, чтобы проверить связь между Pd, Pfa и SNR.

Обнаружение сигнала с помощью интеграции импульсов

Приложения радаров и гидролокаторов часто используют интеграцию импульсов для дальнейшего улучшения характеристик обнаружения. Если приемник когерентен, интегрирование импульсов просто добавляет реальные части согласованных отфильтрованных импульсов. Таким образом, улучшение ОСШ является линейным, когда используется когерентный приемник. Если объединить 10 импульсов, то SNR улучшается в 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) из всех импульсов, которые часто называют линейным детектором. Для малого SNR предпочтительным является детектор квадратного закона, в то время как для большого SNR предпочтительным является использование линейного детектора. Мы используем детектор квадратного закона в этом моделировании. Однако разница между двумя типами детекторов обычно находится в пределах 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 - количество импульсов, используемых для интегрирования импульсов. Используя детектор квадратного закона, можно вычислить порог SNR, включающий интегрирование импульсов, используя функцию 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, падает на кривую. Таким образом, SNR на кривой ROC определяет SNR одной выборки, используемой для детектирования из одного импульса.

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

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

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

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

Это вычисленное требуемое значение SNR соответствует новому значению SNR 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 и уравнением Альберсхайма. Производительность рассчитывается с помощью моделирования Монте-Карло.