step

Системный объект: фазированный. CFARDetector
Пакет: поэтапный

Выполните обнаружение CFAR

Синтаксис

Y = step(H,X,cutidx)
[Y,th] = step(___)
[Y,noise] = step(___)
Y = step(H,X,cutidx,thfac)
[Y,TH,N] = step(H,X,cutidx,thfac)

Описание

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Y = step(H,X,cutidx) выполняет обнаружение CFAR на заданных элементах входных данных, X. X может или быть вектор - столбец <reservedrangesplaceholder3>-by-1 с реальным знаком или с реальным знаком M N матрицей. cutidx является D вектором индексов, задающих входные элементы или камеры (CUT), на которых выполняется обработка обнаружения. Когда X является вектором, cutidx задает элемент. Когда X является матрицей, cutidx задает строку элемента. Тот же индекс применяется ко всем столбцам матрицы. Обнаружение осуществляется независимо вдоль каждого столбца X для индексов, указанных в cutidx. Можно задать входные параметры как одинарную или двойную точность.

Выходной аргумент Y содержит результаты обнаружения. Формат Y зависит от OutputFormat свойство.

  • Когда OutputFormat является 'Cut result', Y вектор D -by-1 или матрица D -by N, содержащая логические результаты обнаружения. D - длина cutidx и N количество столбцов X. Строки Y соответствуют строкам в cutidx. Для каждой строки, Y содержит 1 в столбце, если обнаружение в соответствующем столбце X. В противном случае Y содержит 0.

  • Когда OutputFormat является 'Detection report', Y - вектор 1 -by L или матрица 2-by L, содержащая индексы обнаружения. L - количество обнаружений, обнаруженных во входных данных. Когда X является вектор-столбец, Y содержит индекс для каждого обнаружения в X. Когда X является матрицей, Y содержит индексы строка и столбец каждого обнаружения в X. Каждый столбец Y имеет форму [detrow;detcol]. Когда NumDetectionsSource для свойства задано значение 'Property', L равняется значению NumDetections свойство. Если количество фактических обнаружений меньше этого значения, столбцы без обнаружений устанавливаются в NaN.

Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.

[Y,th] = step(___) также возвращает порог обнаружения, th, применяется к обнаруженным камерам.

  • Когда OutputFormat является 'CUT result', th возвращает порог обнаружения каждый раз, когда элемент Y является 1 и NaN каждый раз, когда элемент Y является 0. th имеет тот же размер, что и Y.

  • Когда OutputFormat является 'Detection index', th возвращает порог обнаружения для каждого соответствующего обнаружения в Y. Когда NumDetectionsSource для свойства задано значение 'Property', L равняется значению NumDetections свойство. Если количество фактических обнаружений меньше этого значения, столбцы без обнаружений устанавливаются в NaN.

Чтобы включить этот синтаксис, установите ThresholdOutputPort свойство к true.

[Y,noise] = step(___) также возвращает расчетную степень шума, noise, для каждой обнаруженной камеры в X.

  • Когда OutputFormat является 'CUT result', noise возвращает оценку степени шума, когда Y является 1 и NaN каждый раз, когда Y равен нулю. noise имеет тот же размер, что и Y.

  • Когда OutputFormat является 'Detection index', noise возвращает оценку степени шума для каждого соответствующего обнаружения в Y. Когда NumDetectionsSource для свойства задано значение 'Property', L равняется значению NumDetections свойство. Если количество фактических обнаружений меньше этого значения, столбцы без обнаружений устанавливаются в NaN.

Чтобы включить этот синтаксис, установите NoisePowerOutputPort свойство к true.

Y = step(H,X,cutidx,thfac), в сложение задает thfac как пороговый коэффициент, используемый для вычисления порога обнаружения. thfac должен быть положительная скалярная величина. Чтобы включить этот синтаксис, установите ThresholdFactor свойство к 'Input port'.

Можно объединить необязательные входные и выходные аргументы, когда заданы их разрешающие свойства. Необязательные входные и выходные параметры должны быть перечислены в том же порядке, как и порядок разрешающих свойств. Для примера, [Y,TH,N] = step(H,X,cutidx,thfac).

Примечание

Объект выполняет инициализацию при первом выполнении объекта. Эта инициализация блокирует нетронутые свойства и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете свойство nontunable или спецификацию входа, системный объект выдает ошибку. Чтобы изменить нетронутые свойства или входы, необходимо сначала вызвать release метод для разблокировки объекта.

Примеры

расширить все

Выполните среднее обнаружение CFAR ячейки на данном векторе Гауссова шума с желаемой вероятностью ложного предупреждения (pfa) 0,1. Предположим, что данные поступают от детектора квадратного закона, и никакое импульсное интегрирование не выполняется. Используйте 50 камеры для оценки уровня шума и 1 камеру для отделения тестовой камеры и обучающих камер. Выполните обнаружение всех камер входа.

detector = phased.CFARDetector('NumTrainingCells',50,...
    'NumGuardCells',2,'ProbabilityFalseAlarm',0.1);
N = 1000;
x = 1/sqrt(2)*(randn(N,1) + 1i*randn(N,1));
dets = detector(abs(x).^2,1:N);
pfa = sum(dets)/N
pfa = 0.1140

Выполните среднее обнаружение CFAR ячейки на данном векторе Гауссова шума с желаемой вероятностью ложного предупреждения (pfa) 0,005. Предположим, что данные поступают от детектора квадратного закона, и никакое импульсное интегрирование не выполняется. Выполните обнаружение всех камер входа. Используйте 50 камеры для оценки уровня шума и 1 камеру для отделения тестовой камеры и обучающих камер. Отобразите индексы обнаружения.

rng default;
detector = phased.CFARDetector('NumTrainingCells',50,'NumGuardCells',2, ...
    'ProbabilityFalseAlarm',0.005,'OutputFormat','Detection index');
N = 1000;
x1 = 1/sqrt(2)*(randn(N,1) + 1i*randn(N,1));
x2 = 1/sqrt(2)*(randn(N,1) + 1i*randn(N,1));
x = [x1,x2];
cutidx = 1:N;
dets = detector(abs(x).^2,cutidx)
dets = 2×11

   339   537   538   734   786   827   979   136   418   539   874
     1     1     1     1     1     1     1     2     2     2     2

Алгоритмы

phased.CFARDetector использует среднее значение камер в три этапа:

  1. Идентифицируйте обучающие камеры по входу и формируйте оценку шума. Следующая таблица указывает, как детектор формирует оценку шума, в зависимости от Method значение свойства.

    МетодОценка шума
    'CA'Используйте средние значения во всех камерах обучения.
    'GOCA'Выберите большее из средних значений в передних обучающих камерах и задних обучающих камерах.
    'OS'Отсортируйте значения в обучающих камерах в порядке возрастания. Выберите N элемент, где N является значением Rank свойство.
    'SOCA'Выберите меньшее из средних значений в передних обучающих камерах и задних обучающих камерах.
  2. Умножите оценку шума на пороговый коэффициент, чтобы сформировать порог.

  3. Сравните значение в тестовой камере с порогом, чтобы определить, присутствует ли цель или отсутствует. Если значение больше порога, целевое значение присутствует.

Для получения дополнительной информации см. раздел [1].

Ссылки

[1] Ричардс, М. А. Основы обработки радиолокационных сигналов. Нью-Йорк: McGraw-Hill, 2005.