|
|
  |
Задержка в КИХ фильтре, Как посчитать изменение задержки КИХ фильтра |
|
|
|
Sep 3 2015, 06:06
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(des00 @ Sep 3 2015, 08:18)  интерполяторы лагранжа, синк и т.д. Полностью согласен. Если интересует литература, к примеру, есть статья 1996 года " Splitting the unit delay [FIR/all pass filters design]". Более того, авторы статьи выложили набор матлабовских скриптов для расчета фильтров, реализующих дробную задержку. Про структуры Фэрроу, ИМХО, хорошо написано в статье Гарднера из двух частей "Interpolation in digital modems". Хотя сейчас есть книги и т.п.
Сообщение отредактировал Evg - Sep 3 2015, 06:11
|
|
|
|
|
Sep 3 2015, 07:43
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(TSerg @ Sep 3 2015, 07:50)  >(сколько угодно малое)?
Полагаю, что в цифре - никак, либо вернуться в аналог.
Если на конечное, то уже говорили - передискретизация. Ну конечно не сколь угодно малое. Зависит от того каким выбрать шаг смещения характеристики. Я уже писал что задержку обеспечиваю впольть до пикосукунд (все это уже работает), но это измерение глазом по осциллографу. Мне нужно подогнать теорию и расчитать получившуюся задержку на бумаге.
|
|
|
|
Guest_TSerg_*
|
Sep 3 2015, 08:58
|
Guests

|
Цитата(ViKo @ Sep 3 2015, 11:16)  Проще отмерить кусок коаксиального кабеля...  Только hardcore - впаивать необходимое число вентилей с нужными задержками.
|
|
|
|
|
Sep 3 2015, 14:16
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(ViKo @ Sep 3 2015, 11:16)  Проще отмерить кусок коаксиального кабеля...  А если как раз и нужно компенсировать задержку в кабеле? Вставить еще один? А если кабель получается километр?
|
|
|
|
|
Sep 4 2015, 04:07
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(Serg76 @ Sep 3 2015, 19:22)  Если уже есть посчитанный КИХ фильтр, пересчитайте его ИХ через 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 МГц?
|
|
|
|
|
Sep 4 2015, 10:13
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(NikSave @ Sep 4 2015, 07:07)  А по-подробней? Например: Есть фильтр с характеристикой: [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
|
|
|
|
|
Sep 4 2015, 10:18
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(NikSave @ Sep 4 2015, 07:07)  Вопрос: на сколько я задержал сигнал если частота дискретизации 100 МГц? Про полифазные фильтры почитайте, там ответ на ваш вопрос. Можно даже ничего не читать, а рассмотреть процесс интерполяции КИХ ФНЧ фильтром, добавляем нулей между исходными отсчётами, фильтруем, на выходе фильтра децимируем, выбирая нужную фазу, значение задержки очевидно. Теперь если внимательно рассмотреть процесс вычислений в фильтре, можно заметить, что на нули умножать нет смысла, фильтр может работать на исходной частоте в виде несмкольких параллельных веток, выбирая нужную ветку, выбираем задержку, эта структура полностью эквивалентна вычислению в лоб, значение задержки также очевидно.
|
|
|
|
|
Sep 4 2015, 12:28
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(Evg @ Sep 4 2015, 13:13)  На 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 Толком ничего не понял. Но все равно спасибо. Нужно сверить с измерением "на глаз". Если не напрягает - пару слов в качестве комментария к формуле?
|
|
|
|
|
Sep 4 2015, 15:14
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(NikSave @ Sep 4 2015, 15:28)  Толком ничего не понял. Но все равно спасибо. Нужно сверить с измерением "на глаз". Если не напрягает - пару слов в качестве комментария к формуле? Идея такая. Задержка по времени приводит к появлению в ФЧХ сдвига фазы, линейно зависящего от частоты. Если мы знаем зависимость сдвига фазы от частоты, мы можем определить задержку по времени. Поэтому, вначале определяем разность фаз фурье-спектров импульсных характеристик фильтров a и b. Получая, таким образом, зависимость сдвига фаз от частоты. Потом по сдвигу фаз на одной из частот определяем задержку по времени. Собственно, это попытка ответить на конкретный вопрос, т.е., здесь нет претензий на универсальность метода для всех случаев жизни. Пардон, что не сделал описание сразу. Мне показалось, Вы знаете ответ.
|
|
|
|
|
Sep 5 2015, 07:11
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(Evg @ Sep 4 2015, 18:14)  Идея такая. Задержка по времени приводит к появлению в ФЧХ сдвига фазы, линейно зависящего от частоты. Если мы знаем зависимость сдвига фазы от частоты, мы можем определить задержку по времени. Поэтому, вначале определяем разность фаз фурье-спектров импульсных характеристик фильтров a и b. Получая, таким образом, зависимость сдвига фаз от частоты. Потом по сдвигу фаз на одной из частот определяем задержку по времени. Собственно, это попытка ответить на конкретный вопрос, т.е., здесь нет претензий на универсальность метода для всех случаев жизни. Пардон, что не сделал описание сразу. Мне показалось, Вы знаете ответ.  Теперь понятно. Спасибо. Напоследок: а вообще эта задержка зависит от промежуточной частоты оцифрованного сигнала? Например оцифровываю сигнал на промежуточной частоте 1 МГц или 10 МГц при одной и тойже частоте дискретизации? Тему можно практически закрывать.
|
|
|
|
|
Sep 5 2015, 09:08
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(NikSave @ Sep 5 2015, 10:11)  Теперь понятно. Спасибо. Напоследок: а вообще эта задержка зависит от промежуточной частоты оцифрованного сигнала? Например оцифровываю сигнал на промежуточной частоте 1 МГц или 10 МГц при одной и тойже частоте дискретизации? Тему можно практически закрывать. Насколько я понимаю, разброс значений задержки в полосе пропускания составляет  от значения 1 нс. Возможно, была использована плохая оконная функция. Наверное, не помешает дополнить нулями ИХ фильтров при расчете преобразования Фурье (я этого не делал). Если интересно, скрипт для матлаба (нужно переименовать в .m) + картинка с задержкой прилагается.
test4.txt ( 797 байт )
Кол-во скачиваний: 105
|
|
|
|
|
Sep 5 2015, 14:22
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(Evg @ Sep 5 2015, 12:08)  Насколько я понимаю, разброс значений задержки в полосе пропускания составляет  от значения 1 нс. Возможно, была использована плохая оконная функция. Наверное, не помешает дополнить нулями ИХ фильтров при расчете преобразования Фурье (я этого не делал). Если интересно, скрипт для матлаба (нужно переименовать в .m) + картинка с задержкой прилагается.
test4.txt ( 797 байт )
Кол-во скачиваний: 105
Спасибо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|