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

Обработка сигналов с разными частотами дискретизации

Здравствуйте. Столкунлся с проблемой: имея один входной тракт (настроенный один FIR-фильтр с децимацией) возможно ли обрабатывать сигналы с разной частотой дискретизации? У меня имеются 2 FPGA-прошивки, которые обрабатывают сигналы 802.11b(DSSS) и 802.11g(OFDM). Необходимо объединить их в одну. Проблема в том, что сигналы DSSS для WiFi имеют частоту дискретизации кратной 11 Мгц, а сигналы OFDM 802.11g имеют частоту 20Мгц. В 802.11b-DSSS я сэмплирую сигнал с частотой 88Мгц, а в 802.11g-OFDM сэмплирую с частотой 100Мгц ну и далее идёт фильтрация с децимацией. Может быть кто-то сталкивался с подобными вещами? Или имеет ссылки/документацию на wifi-чипсеты 802.11g с более-менее детальным описанием.

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


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

Здравствуйте. Столкунлся с проблемой: имея один входной тракт (настроенный один FIR-фильтр с децимацией) возможно ли обрабатывать сигналы с разной частотой дискретизации? У меня имеются 2 FPGA-прошивки, которые обрабатывают сигналы 802.11b(DSSS) и 802.11g(OFDM). Необходимо объединить их в одну. Проблема в том, что сигналы DSSS для WiFi имеют частоту дискретизации кратной 11 Мгц, а сигналы OFDM 802.11g имеют частоту 20Мгц. В 802.11b-DSSS я сэмплирую сигнал с частотой 88Мгц, а в 802.11g-OFDM сэмплирую с частотой 100Мгц ну и далее идёт фильтрация с децимацией. Может быть кто-то сталкивался с подобными вещами? Или имеет ссылки/документацию на wifi-чипсеты 802.11g с более-менее детальным описанием.

 

Насколько я знаю нет. Можно использовать 22МГц сигнал 802.11b (надеюсь, что вы в курсе, что надо работать на удвоенной частоте дискретизации) для передискретизации его в 20 МГц каким-нить полифазным фильтром.

 

А вообще, советую уже сейчас задуматься от том, как ещё и 802.11n собираетесь принимать.

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


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

Насколько я знаю нет. Можно использовать 22МГц сигнал 802.11b (надеюсь, что вы в курсе, что надо работать на удвоенной частоте дискретизации) для передискретизации его в 20 МГц каким-нить полифазным фильтром.

 

А вообще, советую уже сейчас задуматься от том, как ещё и 802.11n собираетесь принимать.

 

Да можно было бы, но проблема в том , что еще один фильтр уже не влезет в прошивку. Без дополнительной фильтрации никак не получить 22 и 20 Мгц ?

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


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

Да можно было бы, но проблема в том , что еще один фильтр уже не влезет в прошивку. Без дополнительной фильтрации никак не получить 22 и 20 Мгц ?

 

У вас сейчас две дискретизации со скоростью 88 и 100 МГц, правильно? Оставьте только одну, например 88. Тогда может быть будет вместо второго дециматора влезет ресэмплер.

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


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

У вас сейчас две дискретизации со скоростью 88 и 100 МГц, правильно? Оставьте только одну, например 88. Тогда может быть будет вместо второго дециматора влезет ресэмплер.

 

Так точно, могу оставить частоту дискретизации либо 88 либо 100 Мгц. Например сэмплируем на 88мгц, проблем для DSSS не вижу (есть один децимирующий FIR-фильтр). Чтобы получить 20 мгц, нужно 88мгц сдецимировать в 22 раза, а потом интерполировать в 5 раз. Я прав? При этом что от сигнала останется после ресемплера при такой децимации и интерполяции? Но тут же опять фильтрация будет нужна, а я ограничен одним FIR фильтром, т.к. умножителей не хватит в плиске еще на один фильтр.Видимо светит только вариант ресемплера и применение CIC/IIR фильтров....

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


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

Чтобы получить 20 мгц, нужно 88мгц сдецимировать в 22 раза, а потом интерполировать в 5 раз.

 

Так херня получится. Если 88 МГц сдецимировать в 22 раза, то и получите полосу меньше 4 МГц. Её потом можно конечно в 5 раз проинтерполировать, но сигнала шире 4 МГц там уже никогда не появится.

 

Есть два варианта.

1) Пересэмплировать 22 -> 20. Нужно проинтерполировать его до 220 МГц и продецимировать в 11 раз.

2) Пересэмплировать 88 -> 20. Нужно проинтерполировать до 440 МГц и продецимировать в 22 раза.

 

Первый вариант страдает тем, что данные 20 МГц будут получаться с запозданием относительно 22 МГц.

 

Оба варианта звучат страшно, но если сделать полифазный фильтр, то накладных расходов будет едва ли больше чем у простого дециматора. Скажем, если у фильтра будет 66 отвода, то нужно только 6 умножителей, если я ничего не путаю. Правда они должны работать на 10-кратной частоте. Либо умножителей сделать побольше, а их частоту пониже.

 

Я (пока) не программирую ПЛИС, поэтому если что не так, то сорри.

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


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

Умножители в полифазном фильтре буду работать в любом случае на частоте рабочего клока. Вопрос только в количестве одновременно работающих умножителей, которые на данном рабочем клоке обеспечат нужную частоту обновления на выходе фильтра. Это с точки зрения технической обработки. Теперь с точки зрения математической - На 10 кратной частоте получаются коэффициенты фильтра, а сами полифазные подфильтры (в количестве 10 штук, в случае интерполяции в 10 раз) работают на исходной частоте.

Пример - частота дискретизации исходного сигнала fисх = 30 мгц, частота клока fclk = 100 Mhz. Надо получить сигнал с частотой дискритезации fк = 25 мгц. Получается коэффициент пересчета L=5 M =6 (5/6) Фильтр допустим получился на 1000 коэффициентов. Из этого фильтра получаем 5 подфильтров длиной 200 отводов каждый. Получаем на каждый выходной отсчет 200 умножений, при этом на каждый выходной отсчет у нас есть fclk/fк = 4 такта (если учесть что мы не собираемся считать те отсчеты, которые отбрасываются при децимации). Значит нужно 200/4 = 50 умножителей молотящих на частоте 100 мгц.

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


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

Умножители в полифазном фильтре буду работать в любом случае на частоте рабочего клока. Вопрос только в количестве одновременно работающих умножителей, которые на данном рабочем клоке обеспечат нужную частоту обновления на выходе фильтра. Это с точки зрения технической обработки. Теперь с точки зрения математической - На 10 кратной частоте получаются коэффициенты фильтра, а сами полифазные подфильтры (в количестве 10 штук, в случае интерполяции в 10 раз) работают на исходной частоте.

Пример - частота дискретизации исходного сигнала fисх = 30 мгц, частота клока fclk = 100 Mhz. Надо получить сигнал с частотой дискритезации fк = 25 мгц. Получается коэффициент пересчета L=5 M =6 (5/6) Фильтр допустим получился на 1000 коэффициентов. Из этого фильтра получаем 5 подфильтров длиной 200 отводов каждый. Получаем на каждый выходной отсчет 200 умножений, при этом на каждый выходной отсчет у нас есть fclk/fк = 4 такта (если учесть что мы не собираемся считать те отсчеты, которые отбрасываются при децимации). Значит нужно 200/4 = 50 умножителей молотящих на частоте 100 мгц.

 

Ну 1000 коэффицентов - это слишком хороший фильтр для таких нужд. Я думаю, что порядка 100 коллеге хватит. Соответственно, умножителей надо где-то на порядок меньше.

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


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

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

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

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

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

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

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

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

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

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