шаг

Системный объект: поэтапный. 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 может или быть M с действительным знаком-by-1 вектор-столбец или M с действительным знаком-by-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 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).

Примечание

Объект выполняет инициализацию в первый раз, когда объект выполняется. Эта инициализация блокирует ненастраиваемые свойства (MATLAB) и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете ненастраиваемое свойство или входную спецификацию, Системный объект выдает ошибку. Чтобы изменить ненастраиваемые свойства или входные параметры, необходимо сначала вызвать метод 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 th элемент, где N является значением свойства Rank.
    'SOCA'Выберите меньшие из средних значений в передних учебных ячейках и задних учебных ячейках.
  2. Умножьте шумовую оценку порогового фактора, чтобы сформировать порог.

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

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

Ссылки

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