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

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

Введение

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

Как в предыдущем примере, примите, что степень сигнала равняется 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 object. The axes object 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 дБ.

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

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 object. The axes object 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 object. The axes object 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 и уравнения Альберсхайма. Эффективность вычисляется с помощью симуляций Монте-Карло.

Для просмотра документации необходимо авторизоваться на сайте