|
Задержка в КИХ фильтре, Как посчитать изменение задержки КИХ фильтра |
|
|
|
Sep 2 2015, 05:52
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(ViKo @ Sep 2 2015, 08:33)  А какие у вас есть предположения?  Если отвод посередине, то для чего нужна вторая половина фильтра? Или отвод - это не выход? Тогда что? Немного недопонял Вашего вопроса. Например: есть первый фильтр фильтр с какой либо характеристикой. Есть второй фильтр с такой же характеристикой но сдвинутой по отводам фильтра влево или вправо. Вопрос как изменилась задержка второго фильтра относительно первого?
|
|
|
|
Guest_TSerg_*
|
Sep 2 2015, 06:40
|
Guests

|
Странные вопросы.
|
|
|
|
|
Sep 2 2015, 07:05
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Alex_vod @ Sep 2 2015, 09:40)  при изменении положения центрального отвода у вас измениться характеристики фильтра, полоса пропускания и т д, так делать нельзя. Всегда хотел понять как умножение комплексного числа на exp(j*phi) изменяет его модуль. Вообще сдвиг ИХ на отсчет вправо-влево соотвествует умножению комплексной передаточной характеристики (complex frequency response) на exp(j*w*Ts), соответственно, групповая задержка фильтра (которая - производная ФЧХ по частоте) изменяется на плюс-минус один отсчет. Это все применимо к случаю, когда в несдвинутой ИХ справа слева есть по одному нулю хотя бы.
|
|
|
|
|
Sep 2 2015, 07:17
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(Alex_vod @ Sep 2 2015, 09:40)  Как посчитать задержку вносимую фильтром Реакция Ких фильтра 1-2 такта частоты дискретизации
при изменении положения центрального отвода у вас измениться характеристики фильтра, полоса пропускания и т д, так делать нельзя. Так делать можно. Два сигнала оцифровываются, пропускаются через фильтры с целью выравнивания фаз и подаются на цапы. Сейчас определение сдвига фаз осуществляется на глаз по осциллографу. Хотелось бы математически. Ну то есть я сдвинул характеристику фильтра на столько то- а это соответствует столько то наносекундам.
|
|
|
|
|
Sep 2 2015, 14:37
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(petrov @ Sep 2 2015, 12:48)  Непонятно при чём здесь фильтры, например чем вас не устраивает обычная задержка на несколько отсчётов в одной из ветвей? задержка на один или несколько отсчетов это фиксированное время кратное периоду частоты дискретизации - слишком грубо. Перерасчет характеристики фильтра дает сколько угодно мелкую временную дискрету (совмещение с точностью до фазы). Я так понимаю либо я вопрос сформулировал криво, либо ответить просто некому. Придется, видимо, разбираться самому.
|
|
|
|
|
Sep 2 2015, 19:44
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(NikSave @ Sep 2 2015, 17:37)  задержка на один или несколько отсчетов это фиксированное время кратное периоду частоты дискретизации - слишком грубо. Перерасчет характеристики фильтра дает сколько угодно мелкую временную дискрету (совмещение с точностью до фазы).
Я так понимаю либо я вопрос сформулировал криво, либо ответить просто некому. Придется, видимо, разбираться самому. Давайте мысленно заменим КИХ фильтр на аналоговый эквивалент, и будем обсуждать отклик цепочки ЦАП + аналоговый фильтр на единичный цифровой импульс. Тогда мы сможем описать задержку фильтра вещественным числом. Если КИХ фильтр содержит n коэффициентов a_1, ... a_n, то отклик цепочки будет описываться функцией h(t) = sum{ a_i * sinc(t - i*Ts) } для i от 1 до n, где Ts -- период частоты дискретизации, а sinc(x) = sin(pi*x)/(pi*x). Наглядный пример -- если взять КИХ фильтр с коэффициентами a_i = [0, 0, 0, 0.7, 0.7], то максимум функции отклика h(t) придется на t = 3.5*Ts (сплошная линия на рис. 1). Т.е., вполне корректно говорить про задержку, не кратную периоду частоты дискретизации.  Рис. 1. Отклик h(t) (сплошная линия) и отдельные слагаемые в сумме (штриховые линии).
|
|
|
|
|
Sep 3 2015, 04:10
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(Evg @ Sep 2 2015, 22:44)  Давайте мысленно заменим КИХ фильтр на аналоговый эквивалент, и будем обсуждать отклик цепочки ЦАП + аналоговый фильтр на единичный цифровой импульс. Тогда мы сможем описать задержку фильтра вещественным числом. Если КИХ фильтр содержит n коэффициентов a_1, ... a_n, то отклик цепочки будет описываться функцией h(t) = sum{ a_i * sinc(t - i*Ts) } для i от 1 до n, где Ts -- период частоты дискретизации, а sinc(x) = sin(pi*x)/(pi*x). Наглядный пример -- если взять КИХ фильтр с коэффициентами a_i = [0, 0, 0, 0.7, 0.7], то максимум функции отклика h(t) придется на t = 3.5*Ts (сплошная линия на рис. 1). Т.е., вполне корректно говорить про задержку, не кратную периоду частоты дискретизации.  Рис. 1. Отклик h(t) (сплошная линия) и отдельные слагаемые в сумме (штриховые линии). Совершенно верно. Я имел ввиду задержка на бональных регистрах. Может стоило поставить вопрос иначе: как задержать оцифрованный сигнал на произвольное время (сколько угодно малое)?
|
|
|
|
Guest_TSerg_*
|
Sep 3 2015, 04:50
|
Guests

|
>(сколько угодно малое)?
Полагаю, что в цифре - никак, либо вернуться в аналог.
Если на конечное, то уже говорили - передискретизация.
|
|
|
|
|
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
Спасибо.
|
|
|
|
|
Sep 5 2015, 17:01
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(NikSave @ Sep 5 2015, 17:22)  Спасибо. Пожалуйста. В принципе, метод известный — оценка времени задержки по компоненте фурье-спектра широко используется в алгоритмах символьной синхронизации для модемов с пакетной передачей данных (burst modems). Другое дело, что есть масса способов устраивать задержку контролируемым образом в режиме реального времени. Например, как сказал petrov, с помощью полифазных фильтров.
Сообщение отредактировал Evg - Sep 5 2015, 17:02
|
|
|
|
|
Sep 6 2015, 05:54
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Цитата(petrov @ Sep 4 2015, 17:18)  Можно даже ничего не читать, а рассмотреть процесс интерполяции КИХ ФНЧ фильтром, добавляем нулей между исходными отсчётами, фильтруем, на выходе фильтра децимируем, выбирая нужную фазу, значение задержки очевидно А это не является вытягиванием себя за волосы? Я не уверен, но навскидку мне показалось, что выбор фазы при децимации даст ту же задержку, что и просто линия задержки на нужное число тактов сигнала до децимации. Ведь линия задержки проще и понятнее.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Sep 7 2015, 05:30
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Krys @ Sep 7 2015, 05:07)  Нам же необходима была задержка. Мы её можем получить, выбрав другую фазу (например, 3-ю от начала). А можем просто на 3 такта задержать сигнал по высокой частоте, до децимации. Разве задержка не будет эквивалентной? Вы говорите "очевидно". Мне почему-то нет )) Вы могли бы чуть больше объяснить? Как работает полифазный фильтр - представляю, реализовывал в ПЛИС. По условию задачи требуется лишь задержка , это была всего лишь иллюстрация, что задержку вычислять не нужно, она тривиально задаётся фазой децимации, соответсвует одной ветке полифазной декомпозиции.
|
|
|
|
|
Sep 7 2015, 06:05
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата В принципе, метод известный — оценка времени задержки по компоненте фурье-спектра широко используется в алгоритмах символьной синхронизации для модемов с пакетной передачей данных (burst modems). Есть ли у вас какая нибудь статья по этой теме? Спасибо.
|
|
|
|
|
Sep 7 2015, 14:36
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(Serg76 @ Sep 7 2015, 09:23)  +1, мне тоже стало интересно))), у меня это реализовано по-другому: вычисляю ВКФ между эталонной и принятой последовательностью с дальнейшей интерполяцией по трем точкам Например,
dengwei2000.pdf ( 381.5 килобайт )
Кол-во скачиваний: 156
|
|
|
|
|
Sep 8 2015, 13:35
|
Группа: Участник
Сообщений: 11
Регистрация: 2-09-15
Пользователь №: 88 252

|
Цитата(serjj @ Sep 8 2015, 10:56)  я бы делал оценку смещения по времени после оценки смещения по фазе, повернув выход коррелятора, чтобы привести к случаю когда фаза = 0. То, что они работают по одной квадратуре при смещении в 45 градусов даёт в шумах дополнительную ошибку эстиматора (половина энергии не используется), что и видно из графика (просаживается относительно CRB). Напишите об этом статью. Кроме шуток, я как-то видел статью китайцев про модификацию модифицированного детектора Гарднера ошибки символьной синхронизации. Вклад китайцев заключался в том, что если фаза несущей не произвольная, а болтается около нуля (т.е., уже сделана синхронизация с фазой несущей), то -- СЮРПРИЗ, СЮРПРИЗ -- можно упростить принятие решений о том, совпадают ли значения пары последовательных символов.
Сообщение отредактировал Evg - Sep 8 2015, 13:36
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|