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

Расчет петлевого фильтра ФАПЧ

11 hours ago, quato_a said:

Правильно понял, что при частоте дисретизации 30 МГц будет приходить сигнал полосой не более 60 кГц (2 символьной скорости) на любой из частот ПЧ в диапазоне частот 1-11 МГц? Если да, то у вас перед АЦП должен быть фильтр полосой на 11 МГц, хотя информационная полоса на много меньше. В таком случае вы сильно поднимаете шумовую полочку, чувствительность пострадает. Эффективнее, чтобы фильтр согласован на полосу информационную. А подстраиваться будете синтезатором несущей. 

Да, перед оцифровкой ПАВ фильтр с полосой 10 МГц. Оцифровка в зоне Найквиста, получается 5-я.

Чтобы не жевать весь фарш, после перемножителей CIC фильтры и компенсирующий КИХ. Вполне чисто получаются квадратуры на 250 киловыборок.

Пробовал их подавать на перемножитель Костаса, всё плохо. Полагаю что из-за CIC фильтров.

А так понимаю, что если не отфильровать квадратуры или полосу до перемножителей, ФАПЧ метаться будет туда-сюда.

13 hours ago, des00 said:

Она решается, но те такими простыми методами)

Да понял уже что просто не получается.

Склоняюсь прибавить ещё одно преобразование вниз для перестройки внутри 10МГц диапазона, его результаты фильтровать в полосе со снижением частоты выборок, а потом демодулятор с ФАПЧ Костаса.

Как вариант, можно попробовать первое преобразование в квадратуры, но не знаю как поведёт себя ФАПЧ при метаниях между положительными и отрицательными частотами.

Альтеровский NCO вроде адекватно работает при переходе через ноль...

 

Не было куме печали - купила баба порося.

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


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

Just now, escmar said:

Да, перед оцифровкой ПАВ фильтр с полосой 10 МГц. Оцифровка в зоне Найквиста, получается 5-я.

Чтобы не жевать весь фарш, после перемножителей CIC фильтры и компенсирующий КИХ. Вполне чисто получаются квадратуры на 250 киловыборок.

Вам фильтр нужен был полосой на 500 кГц + 30 кГц (отстройка) аналоговый перед АЦП, а не цифровой. Выбранный вами вариант реализации не обеспечит наилучшей чувствительности или избирательности по соседнему каналу. Грубо говоря, если поставить узкую палку мощностью +60 дБ больше вашего сигнала, отстоящую от вашего сигнала на 2-3 МГц, но находящуюся в полосе ПАВ, то АЦП просто уйдет в перегрузку и CIC с децимацией уже не помогут.

Хотя, к слову, не об этом спрашивали...)

Just now, escmar said:

Пробовал их подавать на перемножитель Костаса, всё плохо. Полагаю что из-за CIC фильтров.

CIC не должен мешать, если он не режет информационную полосу

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


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

11 hours ago, escmar said:

Склоняюсь прибавить ещё одно преобразование вниз для перестройки внутри 10МГц диапазона, его результаты фильтровать в полосе со снижением частоты выборок, а потом демодулятор с ФАПЧ Костаса.

Как вариант, можно попробовать первое преобразование в квадратуры, но не знаю как поведёт себя ФАПЧ при метаниях между положительными и отрицательными частотами.

Альтеровский NCO вроде адекватно работает при переходе через ноль...

Да хоть 5 дополнительных преобразований сделайте. Дополнительные вопросы я уже писал, но вы их похоже не заметили. У вас вопрос системный: нестабильность несущей больше ширины спектра. На типовых скруглениях, при BPSK ваши 30кБ/с, это 35-60КГц. А у вас перестройка +-40КГц. Костас, петля по решениям они все узкополосные. Порядка 10-15% от ширины спектра. А у вас 50-100%. При этом еще требования по избирательности, чувствительности, искажениям не описаны.

Тут надо смотреть в сторону оценки частоты, а не петлевых схем. Возьмите все же симулинк.

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


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

3 hours ago, des00 said:

Да хоть 5 дополнительных преобразований сделайте. Дополнительные вопросы я уже писал, но вы их похоже не заметили. У вас вопрос системный: нестабильность несущей больше ширины спектра. На типовых скруглениях, при BPSK ваши 30кБ/с, это 35-60КГц. А у вас перестройка +-40КГц. Костас, петля по решениям они все узкополосные. Порядка 10-15% от ширины спектра. А у вас 50-100%. При этом еще требования по избирательности, чувствительности, искажениям не описаны.

Тут надо смотреть в сторону оценки частоты, а не петлевых схем. Возьмите все же симулинк.

Да, я поверхностно изложил то как пытался решить вопрос при помощи схемы Костаса. Исправляюсь.

Перед АЦП ПАВ фильтр с полосой пропускания 10МГц.

Оцифровка на 30 мегавыборок, после АЦП подчищаю полосу цифровым КИХ фильтром и два 12-ти битных перемножителя.

Опорные квадратуры делает альтеровский NCO. Частота задаётся извне, для перестройки внутри диапазона. Дополнительно у NCO объявил

вход частотной модуляции, на который подал отсчёты с выхода петлевого фильтра.

Теперь о фильтрах в каналах Q и I. Там сначала CIC с дециматором на 120, потом корректирующие КИХ фильтры с небольшим подъёмом у частоты среза.

Получилась полоса пропускания в каждом канале около 80кГц, при 250-ти киловыборках. В отладчике (Signal Tap) квадратуры выглядят замечательно, почти без шерсти (при приёме реального пакета из эфира).

А вот при подаче этих квадратур на перемножитель ФАПЧ, захвата не происходит. Вернее происходит, но в ооочень узкой полосе.

Организовал дополнительно два КИХ фильтра без децимации, для подачи персонально на перемножитель ФАПЧ. Полоса пошире, и уже не такая прямоугольная.

Захватывает, но только если входные пакеты жирные с векторного генератора подаю. Оно и понятно, в реальном сигнале помойка прилетит, всё испортит.

 

Вы предлагаете использовать не петлевую схему, а оценку частоты. Так я с этого и начал (первый пост)...

Подробно описал как определял частоту и фазу при помощи БПФ.

Что же это делается! В два этапа крутить принятый пакет, сначала грубо настраивать квадратурный генератор при помощи БПФ, а потом замыкать петлю ФАПЧ?

Симулинк говорят, удобно. Но голова пухнет от сочетания HFSS + Quartus + Altium

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

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


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

2 hours ago, escmar said:

Получилась полоса пропускания в каждом канале около 80кГц, при 250-ти киловыборках. В отладчике (Signal Tap) квадратуры выглядят замечательно, почти без шерсти (при приёме реального пакета из эфира).

при такой полосе фильтра, соседние каналы или помехи в соседних каналах, сделают квадратурам явно плохо.

но вообще, можно попробовать feed forward методы оценки.

Quote

А вот при подаче этих квадратур на перемножитель ФАПЧ, захвата не происходит. Вернее происходит, но в ооочень узкой полосе.

Организовал дополнительно два КИХ фильтра без децимации, для подачи персонально на перемножитель ФАПЧ. Полоса пошире, и уже не такая прямоугольная.

Захватывает, но только если входные пакеты жирные с векторного генератора подаю. Оно и понятно, в реальном сигнале помойка прилетит, всё испортит.

ну да, это проблема всех петлевых схем.

Quote

Вы предлагаете использовать не петлевую схему, а оценку частоты. Так я с этого и начал (первый пост)...

Читал, но не совсем понял как вы получали пик. Да и про сигнал вы ничего не написали, если там голый BPSK, без каких либо ПСП и прочего, то при таких расстройках это гиблое дело. Только поиск частоты, а в качестве детектора захвата какие нибудь статистики высших порядков. Если в сигнале есть что-то детерминированное, что можно выделить на СФ/корреляторе и пропустить через скользящее фурье, то все определится базой и формой этого что-то и накоплением результатов.

Если можно модернизировать передатчик, то при таких расстройках ИМХО стоит поискать что-то из ЛЧМ последовательностей для синхронизации.

2 hours ago, escmar said:

Что же это делается! В два этапа крутить принятый пакет, сначала грубо настраивать квадратурный генератор при помощи БПФ, а потом замыкать петлю ФАПЧ?

если нужно работать по одному пакету то можно и больше двух этапов крутить: грубая оценка частоты - коррекция, уточнение оценки - коррекция - уточнение фазы - коррекция - демодуляция. ИМХО задачу вашу нужно решать не с наблюдений в сигнал-тапе, а все же с моделирования высокого уровня. Симулинк, на примере моделей @petrov выложенных на форуме, осваивается дней за 5 максимум.

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


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

2 hours ago, des00 said:

Читал, но не совсем понял как вы получали пик. Да и про сигнал вы ничего не написали, если там голый BPSK, без каких либо ПСП и прочего, то при таких расстройках это гиблое дело. Только поиск частоты, а в качестве детектора захвата какие нибудь статистики высших порядков. Если в сигнале есть что-то детерминированное, что можно выделить на СФ/корреляторе и пропустить через скользящее фурье, то все определится базой и формой этого что-то и накоплением результатов.

Симулинк, на примере моделей @petrov выложенных на форуме, осваивается дней за 5 максимум.

О сигнале. Летят короткие пакеты длиной по несколько мс. В начале каждого, примерно на четверть длины нули, т.е. нет модуляции.

Я складывал в буфер начало пакета, где нет модуляции, примерно 500 отсчётов, дописывал до 4096 нулями, и на бОльшей скорости прогонял через БПФ.

На выходе преобразования после среднеквадратического из реальной и мнимой части, получался хорошо заметный пик. Номер отсчёта, на котором пик вылез - это частота. Арктангенс отношения im/re это фаза. Подсовывал полученные величины в NCO, и он генерировал почти то что мне нужно.

Поскольку преобразование дискретное, реальный пик в общем случае оказывается между двумя осчётами, всегда была ошибка по частоте, которая не позволяла использовать эту парочку для демодуляции.

Пробовал брать по три максимальных отсчёта, на лету пересчитывал их в параболу и уже в ней искал максимум. Уже где-то близко получалось, но устал, решил не умничать и взялся за Костаса. А тут своя засада...

Кстати, про способ с БПФ нигде не читал. Может окажется я его придумал и мне картофельную медаль дадут? :acute:

Что же, третий раз попробую за матлаб взяться. Посажу на цепь рядом студента - пусть учит дедушку.

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

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


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

On 4/26/2021 at 9:20 PM, quato_a said:

Грубо говоря, если поставить узкую палку мощностью +60 дБ больше вашего сигнала, отстоящую от вашего сигнала на 2-3 МГц, но находящуюся в полосе ПАВ, то АЦП просто уйдет в перегрузку и CIC с децимацией уже не помогут.

Во общем -то я не для войны свой демодулятор делаю, а как промежуточный вариант.

По условиям приёма, +60 не предвидится.

Хотелось изловчиться и упестить несколько независимых цифровых приёмных каналов в одной полосе.

Но ПАВ фильтры с полосой 350 кГц уже заказаны и едут.

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


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

19 hours ago, escmar said:

На выходе преобразования после среднеквадратического из реальной и мнимой части, получался хорошо заметный пик. Номер отсчёта, на котором пик вылез - это частота. Арктангенс отношения im/re это фаза. Подсовывал полученные величины в NCO, и он генерировал почти то что мне нужно.

используйте только значение полученной частоты и сносите сигнал с этой частоты, а потом уже ставьте следующим каскадом Костаса

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


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

59 minutes ago, escmar said:

Хотелось изловчиться и упестить несколько независимых цифровых приёмных каналов в одной полосе.

а эти независимые каналы приходят от разных передатчиков? АРУ единый для всего приемного тракта?

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


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

3 hours ago, quato_a said:

а эти независимые каналы приходят от разных передатчиков? АРУ единый для всего приемного тракта?

Здесь пока о действующем макете идёт речь. Регулировка усиления предусмотрена после входного МШУ, и первому аналоговому перемножителю можно рабочую точку двигать. Предусмотрел - и забил до поры - до времени. Пока разбираюсь с модуляцией. Там решу, чем усиление душить. Тоже заковыристая тема, если пакеты короткие и с разбросом уровня прилетают. Может разрядность увеличивать придётся, может ещё изврат какой...

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

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


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

4 hours ago, quato_a said:

используйте только значение полученной частоты и сносите сигнал с этой частоты, а потом уже ставьте следующим каскадом Костаса

Да, сначала попробую только частоту подтянуть к полосе захвата. Там возможно, крутой кувырок придётся схеме Костаса делать, чтобы фазу подтянуть.

Фазу измерять тоже заковыристо оказалось. Если длина БПФ вся заполнена полезными отсчётами, например 256, то велика ошибка измерения частоы, но фаза однозначно определяется. Если для повышения точности определения частоты, увеличиваю БПФ до 4096 с кучей нулей, то фаза как-то странно получается, точнее хреново. Пока только догадываюсь отчего, не проверял.

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

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


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

1 minute ago, escmar said:

Может разрядность увеличивать придётся, может ещё изврат какой...

проблемы уже наблюдаются в таком подходе...

если на одном канале будет слабый сигнал, а на втором канале сильный, то как вы будете принимать решение по АРУ как усиливать? настроите АРУ по слабому каналу, то сильный канал перегрузит АЦП. настроите АРУ по сильному каналу, не увидите слабый. избирательность по соседнему каналу.

если хотите параллельно принимать несколько независимых каналов, то нужны независимые приемные тракты с АЦПшками.

29 minutes ago, escmar said:

Пока только догадываюсь отчего, не проверял

по давнему плачевному опыту коллеги разрабатывали приемник только симулируя RTL-код и смотря отладчиком ПЛИС в железе. вроде работало, а уходит какой-нибудь параметр вправо или влево и перестает работать, а понять сложно. тратили уйму времени и потом плюнули и начали изучать поведение в симулинке/матлаб, только тогда разобрались, а времени ушло уйма... лучше сразу беритесь за моделирование с теми же студентами, как вы говорите, и постепенно разберетесь

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


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

А всё же  по теме вопроса, на какие соотношения следует ориентироваться в схеме Костаса?

des00 намекнул что полоса петли Костаса не превышает 10-15% ширины спектра. Буду считать что он имел в виду полосу пропускания ФНЧ квадратур.

Что-то мне подсказывает, что полоса удержания может быть немного шире, а может и нет, в зависимости от злобности модуляции и помех.

Вопрос, из чего исходить при выборе полосы петлевого фильтра? Стоит ли изголяться с его АЧХ, или как упоминалось, хватит скользящего среднего?

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


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

10 hours ago, escmar said:

des00 намекнул что полоса петли Костаса не превышает 10-15% ширины спектра. Буду считать что он имел в виду полосу пропускания ФНЧ квадратур.

вообще я имел в виду полосу захвата замкнутой петли автоподстройки, куда входит детектор, петлевой фильтр и генератор. Ну т.е. грубо, на спектре 10МГц, можно как-то попробовать вытянуть 1МГц частотной расстройки, хотя ИМХО практическое значение будет порядка 250-500КГц. Для ваших цифр, сами посудите: символьная 30КГц это период 33мкс, при расстройке 40КГц, за период символа, фаза провернется на 40/30*360=480 градусов, для BPSK однозначность фазы 180 градусов, а с учетом шумов, желательно порядка 90-100. Это все не считая петлевого фильтра.

Quote

Что-то мне подсказывает, что полоса удержания может быть немного шире, а может и нет, в зависимости от злобности модуляции и помех.

А зачем широкая полоса удержания? Сигнал уже пойман, чем уже полоса удержания, тем меньше потери на демодуляцию. Кстати, только сейчас дошло что у вас пакетная передача с паузами. ИМХО петлевые схемы тут не очень работают.

Quote

Вопрос, из чего исходить при выборе полосы петлевого фильтра? Стоит ли изголяться с его АЧХ, или как упоминалось, хватит скользящего среднего?

я делаю практически. Использую классический петлевой фильтр второго порядка (lead/lag) и настраиваю его по переходной характеристике, по заветам книжки по ТАУ лохматых годов), коэффициенты фильтра задаются как 2^-N. Дешево и работает.

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


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

2 hours ago, des00 said:

 у вас пакетная передача с паузами. ИМХО петлевые схемы тут не очень работают.

Да была такая мысль. Скорость небольшая, пакеты редко летят. В ПЛИС только первично причесать, а потом по DMA сгрузить в ARM или вообще в компьютер, а там неспеша разгребать.

Петлевые схемы я в конце 80-х паяльником лудил, потому и попытался. Программирование для ARM или Дельфи для PC - только на любительском уровне, так что встрял немного.

 

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


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

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

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

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

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

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

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

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

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

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