Найдите задержку между двумя сигналами
Служебные блоки
Блок Find Delay находит задержку между сигналом и задержанным, и возможно искаженный, версия себя. Это полезно когда это необходимо, чтобы сравнить переданный и полученный сигнал найти частоту ошибок по битам, но не знает задержку полученного сигнала. Этот блок принимает вектор-столбец или матричный входной сигнал. Для матричного входа блок выводит вектор - строку и находит задержку каждого канала матрицы независимо. Смотрите Задержки для получения дополнительной информации о задержках сигнала.
Входной порт sRef
получает исходный сигнал, в то время как входной порт sDel
получает задержанную версию сигнала. Эти два входных сигнала должны иметь те же размерности и шаги расчета.
Выходной порт маркировал delay
выходными параметрами задержка модулей выборок. Если вы выбираете Include "change signal" output port
, то выходной порт маркировал chg
, появляется. Выходные параметры выходного порта chg
1, когда существует изменение от задержки, вычисленной на предыдущей выборке, и 0, когда нет никакого изменения. Выходной порт delay
выходные сигналы, типа double, и выходной порт chg
выходные сигналы булевской переменной типа.
Параметр Correlation window length блока задает сколько выборок сигналов использование блока, чтобы вычислить взаимную корреляцию. Задержка вывод является неотрицательным целым числом меньше, чем Correlation window length.
Когда Correlation window length увеличен, надежность вычисленной задержки также увеличивается. Однако время вычислений, чтобы вычислить увеличения задержки также.
Можно заставить блок Find Delay прекратить обновлять задержку после того, как это вычислит то же значение задержки для конкретного количества выборок. Для этого выберите Disable recurring updates и введите положительное целое число в поле Number of constant delay outputs to disable updates. Например, если вы установите Number of constant delay outputs to disable updates на 20
, блок прекратит повторно вычислять и обновлять задержку после того, как это вычислит то же значение 20 раз по очереди. Отключение повторяющихся обновлений заставляет симуляцию запускаться быстрее после того, как целевое количество постоянных задержек произойдет.
Установите Correlation window length, достаточно большой так, чтобы вычисленная задержка в конечном счете стабилизировалась в постоянном значении. Когда это происходит, сигнал от дополнительного выходного порта chg
стабилизировался в постоянном значении нуля. Если вычисленная задержка не является постоянной, необходимо увеличить Correlation window length. Если увеличенное значение Correlation window length превышает длительность симуляции, то необходимо также увеличить длительность симуляции соответственно.
Если взаимная корреляция между двумя сигналами широка, то значение Correlation window length должно быть намного больше, чем ожидаемая задержка, или иначе алгоритм может стабилизироваться в неправильном значении. Например, сигнал CPM имеет широкую автокорреляцию, таким образом, он имеет широкую взаимную корреляцию с задержанной версией себя. В этом случае значение Correlation window length должно быть намного больше, чем ожидаемая задержка.
Если блок вычисляет задержку, которая больше, чем 75 процентов Correlation window length, sRef
сигнала, вероятно, задерживается относительно sDel
сигнала. В этом случае необходимо переключить сигнальные линии, ведущие в эти два входных порта.
Типичное использование этого блока должно определить правильный параметр Receive delay в блоке Error Rate Calculation. Это проиллюстрировано в Использовании Блок Задержки Находки. В том примере операция модуляции/демодуляции вводит вычислительную задержку в полученный сигнал, и блок Find Delay решает, что задержка является 6 выборками. Это значение 6 становится параметром в блоке Error Rate Calculation, который вычисляет частоту ошибок по битам системы.
Другой пример этого использования находится в Задержках.
Другое типичное использование этого блока должно определить, как выровнять контуры кадров с контурами кодовых комбинаций или другими типами блоков данных. Задержки описывают, когда такое выравнивание необходимо и также иллюстрирует в Выравнивающихся Словах обсуждения Блочного кода, как использовать блок Find Delay, чтобы решить проблему.
Следующий пример иллюстрирует, как сказать, когда Correlation window length не является достаточно большим. Загрузите эту модель путем ввода doc_find_delay_example в командной строке.
Модель использует блок Delay, чтобы задержать сигнал 10 выборками. Блок Find Delay сравнивает исходный сигнал с задержанной версией. В этой модели параметр Input processing блока Delay устанавливается to Columns as channels
. Модель затем отображает вывод блока Find Delay в осциллографе. Если Correlation window length является 15
, осциллограф показывает, что расчетная задержка не является постоянной в зависимости от времени, как вы видите в следующем изображении.
Этот результат говорит вам увеличивать Correlation window length. Если вы увеличиваете его до 50
, расчетная задержка стабилизировалась в 10, как показано ниже.
Количество выборок использование блока, чтобы вычислить взаимные корреляции двух сигналов.
Если вы выбираете эту опцию, то блок имеет дополнительный выходной порт, который испускает импульс, когда текущая вычисленная задержка отличается от предыдущей вычисленной задержки.
Выбор этой опции заставляет блок прекращать вычислять задержку после того, как это вычислит то же значение задержки для конкретного количества выборок.
Положительное целое число, задающее, сколько раз блок должен вычислить ту же задержку прежде, чем прекратить обновлять. Это поле появляется, только если Disable recurring updates выбран.
Блок Find Delay находит задержку путем вычисления взаимных корреляций первого сигнала с переключенными временем версиями второго сигнала, и затем нахождения индекса, в котором максимизируется взаимная корреляция.