Перейти к содержанию
    

Задержка в КИХ фильтре

интерполяторы лагранжа, синк и т.д.

 

Полностью согласен.

 

Если интересует литература, к примеру, есть статья 1996 года "Splitting the unit delay [FIR/all pass filters design]". Более того, авторы статьи выложили набор матлабовских скриптов для расчета фильтров, реализующих дробную задержку.

 

Про структуры Фэрроу, ИМХО, хорошо написано в статье Гарднера из двух частей "Interpolation in digital modems". Хотя сейчас есть книги и т.п.

Изменено пользователем Evg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

181bec3dc4908924329016f17fd03a6d.pdf

2c66eb01ee97dc90b00edd29f82fbb8c.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>(сколько угодно малое)?

 

Полагаю, что в цифре - никак, либо вернуться в аналог.

 

Если на конечное, то уже говорили - передискретизация.

 

Ну конечно не сколь угодно малое. Зависит от того каким выбрать шаг смещения характеристики.

 

Я уже писал что задержку обеспечиваю впольть до пикосукунд (все это уже работает), но это измерение глазом по осциллографу. Мне нужно подогнать теорию и расчитать получившуюся задержку на бумаге.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще отмерить кусок коаксиального кабеля... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
Проще отмерить кусок коаксиального кабеля... :)

 

Только hardcore - впаивать необходимое число вентилей с нужными задержками. :bb-offtopic:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще отмерить кусок коаксиального кабеля... :)

 

А если как раз и нужно компенсировать задержку в кабеле? Вставить еще один? А если кабель получается километр?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну конечно не сколь угодно малое. Зависит от того каким выбрать шаг смещения характеристики.

 

Я уже писал что задержку обеспечиваю впольть до пикосукунд (все это уже работает), но это измерение глазом по осциллографу. Мне нужно подогнать теорию и расчитать получившуюся задержку на бумаге.

Если уже есть посчитанный КИХ фильтр, пересчитайте его ИХ через Sinc на требуемые фазы (смещения)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если уже есть посчитанный КИХ фильтр, пересчитайте его ИХ через Sinc на требуемые фазы (смещения)

 

А по-подробней?

Например:

Есть фильтр с характеристикой: [5 -8 -3 12 2 -14 1 15 -8 -18 19 25 -28 -28 39 11 -83 21 225 1 -553 -288 1432 3284

3284 1432 -288 -553 1 225 21 -83 11 39 -28 -28 25 19 -18 -8 15 1 -14 2 12 -3 -8 5]

 

Я сдвинул ее и получил следующие коэфф.: [6 -7 -4 11 4 -14 -2 15 -5 -19 15 28 -23 -33 34 20 -79 -1 216 50 -512 -384 1218 3157

3390 1648 -176 -585 -53 230 45 -85 1 43 -23 -33 21 23 -16 -11 14 3 -14 -1 12 -1 -8 3].

 

Вопрос: на сколько я задержал сигнал если частота дискретизации 100 МГц?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А по-подробней?

Например:

Есть фильтр с характеристикой: [5 -8 -3 12 2 -14 1 15 -8 -18 19 25 -28 -28 39 11 -83 21 225 1 -553 -288 1432 3284

3284 1432 -288 -553 1 225 21 -83 11 39 -28 -28 25 19 -18 -8 15 1 -14 2 12 -3 -8 5]

 

Я сдвинул ее и получил следующие коэфф.: [6 -7 -4 11 4 -14 -2 15 -5 -19 15 28 -23 -33 34 20 -79 -1 216 50 -512 -384 1218 3157

3390 1648 -176 -585 -53 230 45 -85 1 43 -23 -33 21 23 -16 -11 14 3 -14 -1 12 -1 -8 3].

 

Вопрос: на сколько я задержал сигнал если частота дискретизации 100 МГц?

 

На 1 нс.

 

Ts = 10; % ns
a = [5 -8 -3 12 2 -14 1 15 -8 -18 19 25 -28 -28 39 11 -83 21 225 1 -553 -288 1432 3284 3284 1432 -288 -553 1 225 21 -83 11 39 -28 -28 25 19 -18 -8 15 1 -14 2 12 -3 -8 5];
b = [6 -7 -4 11 4 -14 -2 15 -5 -19 15 28 -23 -33 34 20 -79 -1 216 50 -512 -384 1218 3157 3390 1648 -176 -585 -53 230 45 -85 1 43 -23 -33 21 23 -16 -11 14 3 -14 -1 12 -1 -8 3];

angles = angle(fft(a).*conj(fft(b)));
tau = length(a) * Ts * angles(2) / (2*pi)

 

Результат:

 

tau =

    0.9982

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос: на сколько я задержал сигнал если частота дискретизации 100 МГц?

 

Про полифазные фильтры почитайте, там ответ на ваш вопрос. Можно даже ничего не читать, а рассмотреть процесс интерполяции КИХ ФНЧ фильтром, добавляем нулей между исходными отсчётами, фильтруем, на выходе фильтра децимируем, выбирая нужную фазу, значение задержки очевидно. Теперь если внимательно рассмотреть процесс вычислений в фильтре, можно заметить, что на нули умножать нет смысла, фильтр может работать на исходной частоте в виде несмкольких параллельных веток, выбирая нужную ветку, выбираем задержку, эта структура полностью эквивалентна вычислению в лоб, значение задержки также очевидно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 1 нс.

 

Ts = 10; % ns
a = [5 -8 -3 12 2 -14 1 15 -8 -18 19 25 -28 -28 39 11 -83 21 225 1 -553 -288 1432 3284 3284 1432 -288 -553 1 225 21 -83 11 39 -28 -28 25 19 -18 -8 15 1 -14 2 12 -3 -8 5];
b = [6 -7 -4 11 4 -14 -2 15 -5 -19 15 28 -23 -33 34 20 -79 -1 216 50 -512 -384 1218 3157 3390 1648 -176 -585 -53 230 45 -85 1 43 -23 -33 21 23 -16 -11 14 3 -14 -1 12 -1 -8 3];

angles = angle(fft(a).*conj(fft(b)));
tau = length(a) * Ts * angles(2) / (2*pi)

 

Результат:

 

tau =

    0.9982

 

Толком ничего не понял. Но все равно спасибо. Нужно сверить с измерением "на глаз".

Если не напрягает - пару слов в качестве комментария к формуле?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Толком ничего не понял. Но все равно спасибо. Нужно сверить с измерением "на глаз".

Если не напрягает - пару слов в качестве комментария к формуле?

Идея такая. Задержка по времени приводит к появлению в ФЧХ сдвига фазы, линейно зависящего от частоты. Если мы знаем зависимость сдвига фазы от частоты, мы можем определить задержку по времени. Поэтому, вначале определяем разность фаз фурье-спектров импульсных характеристик фильтров a и b. Получая, таким образом, зависимость сдвига фаз от частоты. Потом по сдвигу фаз на одной из частот определяем задержку по времени.

 

Собственно, это попытка ответить на конкретный вопрос, т.е., здесь нет претензий на универсальность метода для всех случаев жизни.

 

Пардон, что не сделал описание сразу. Мне показалось, Вы знаете ответ. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Идея такая. Задержка по времени приводит к появлению в ФЧХ сдвига фазы, линейно зависящего от частоты. Если мы знаем зависимость сдвига фазы от частоты, мы можем определить задержку по времени. Поэтому, вначале определяем разность фаз фурье-спектров импульсных характеристик фильтров a и b. Получая, таким образом, зависимость сдвига фаз от частоты. Потом по сдвигу фаз на одной из частот определяем задержку по времени.

 

Собственно, это попытка ответить на конкретный вопрос, т.е., здесь нет претензий на универсальность метода для всех случаев жизни.

 

Пардон, что не сделал описание сразу. Мне показалось, Вы знаете ответ. :)

Теперь понятно. Спасибо. Напоследок: а вообще эта задержка зависит от промежуточной частоты оцифрованного сигнала?

Например оцифровываю сигнал на промежуточной частоте 1 МГц или 10 МГц при одной и тойже частоте дискретизации?

Тему можно практически закрывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теперь понятно. Спасибо. Напоследок: а вообще эта задержка зависит от промежуточной частоты оцифрованного сигнала?

Например оцифровываю сигнал на промежуточной частоте 1 МГц или 10 МГц при одной и тойже частоте дискретизации?

Тему можно практически закрывать.

Насколько я понимаю, разброс значений задержки в полосе пропускания составляет ?\pm 2% от значения 1 нс. Возможно, была использована плохая оконная функция. Наверное, не помешает дополнить нулями ИХ фильтров при расчете преобразования Фурье (я этого не делал). Если интересно, скрипт для матлаба (нужно переименовать в .m) + картинка с задержкой прилагается.

 

test4.txt

post-88252-1441443892_thumb.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понимаю, разброс значений задержки в полосе пропускания составляет ?\pm 2% от значения 1 нс. Возможно, была использована плохая оконная функция. Наверное, не помешает дополнить нулями ИХ фильтров при расчете преобразования Фурье (я этого не делал). Если интересно, скрипт для матлаба (нужно переименовать в .m) + картинка с задержкой прилагается.

 

test4.txt

post-88252-1441443892_thumb.png

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...