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

Выбор разрядности на выходе фильтров

 

Добрый день. Реализую приемник прямого преобразования на ПЛИС. Сначала скидываю сигнал на ноль с помощью NCO, затем фильтрую CIC и FIR фильтрами. Что на вход каждого фильтра, что на выход, можно загонять сигнал любой разрядности. Как ее выбирать? исходя из чего? Динамический диапазон вроде обеспечил требуемый, а вот с избирательностью по соседнему каналу никак не получается. Получаемые значения очень сильно зависят от разрядности. Как ее грамотно выбрать? При учете того, что с АЦП идет 14 бит и на выходе FIR фильтра нужна конкретная разрядность 24 бита. Заранее спасибо.

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


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

Что на вход каждого фильтра, что на выход, можно загонять сигнал любой разрядности. Как ее выбирать? исходя из чего? Динамический диапазон вроде обеспечил требуемый, а вот с избирательностью по соседнему каналу никак не получается. Получаемые значения очень сильно зависят от разрядности. Как ее грамотно выбрать? При учете того, что с АЦП идет 14 бит и на выходе FIR фильтра нужна конкретная разрядность 24 бита. Заранее спасибо.

Разрядность сигнала на вход я выбирал исходя из разрядности АЦП, отбросив шумящие младшие разряды. В моём случае из 14 я брал только 8. Коэффициенты фильтра рассчитал в матлабе и далее округлил до целого значения в 16ти или 32 разрядной сетке. На выходе округлил значения до требуемой разрядности. Все действия проверял матлабом.

 

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


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

Разрядность сигнала на вход я выбирал исходя из разрядности АЦП, отбросив шумящие младшие разряды. В моём случае из 14 я брал только 8. Коэффициенты фильтра рассчитал в матлабе и далее округлил до целого значения в 16ти или 32 разрядной сетке. На выходе округлил значения до требуемой разрядности. Все действия проверял матлабом.

 

Я так понимаю, что за избирательность отвечает именно FIR фильтр?

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


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

Я так понимаю, что за избирательность отвечает именно FIR фильтр?

После АЦП фильтр. Его частотная характеристика зависит от разрядности при округлении.

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


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

считайте по эффектиной разрядности = разрядность на входе фильтра + log2(полоса на входе/полоса на выходе) и учтите требуемый вам динамический диапазон. Ну и сам фильтр, для подавления соседнего канала должен быть соотвествующим образом посчитан. Ну и в фильтре промежуточных округлений быть не должно.

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


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

считайте по эффектиной разрядности = разрядность на входе фильтра + log2(полоса на входе/полоса на выходе) и учтите требуемый вам динамический диапазон. Ну и сам фильтр, для подавления соседнего канала должен быть соотвествующим образом посчитан. Ну и в фильтре промежуточных округлений быть не должно.

 

 

Спасибо! А правила округления есть какие-либо? у меня на выходе FIR мегафункция предлагает 50 бит, мне нужно только 24.

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


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

Спасибо! А правила округления есть какие-либо? у меня на выходе FIR мегафункция предлагает 50 бит, мне нужно только 24.

Как по мне, если позволяет ресурс, то взять на 1-2 бит больше и банальный flour. Кстати, учите еще тот факт, что при сильных соседних каналах, АРУ тоже должно быть сделано соответствущим образом.

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


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

Из собственного опыта:

1. Везде использовать математическое округление, это сильно влияет на качество.

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

3. Если есть возможность - делайте разрядность по максимуму, на выходе ставите окно нужного размера (обязательно с округлением) - получаете цифровое АРУ.

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


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

Везде использовать математическое округление, это сильно влияет на качество.

Его нужно ставить там, где это нужно. Отсутствие математического округления порождает постоянку. Если схема игнорирует постоянку, то округлять не требуется. Также это критично при малых разрядностях, когда постоянка в 1 бит сопоставима с уровнем сигнала.

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

На каждой ступени обработки необходимая разрядность считается, как подсказывает des00 по формуле разрядность на входе фильтра + log2(полоса на входе/полоса на выходе). Независимо от структуры фильтра. Просто у первых CICов понижение частоты самое значительное, т.к. они как правило очень узкополосные (за тем их и ставят), поэтому на этой стадии влияние роста разрядности самое критическое.

Если есть возможность - делайте разрядность по максимуму, на выходе ставите окно нужного размера (обязательно с округлением) - получаете цифровое АРУ.

Использование максимальной разрядности актуально только в процессорах, т.к. они работают с фиксированной разрядностью в принципе. В ПЛИС такой подход затратен. Нужно разрядность ставить ровно столько, сколько нужно для обеспечения требуемого чутья в приёмнике или точности в передатчике.

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


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

Его нужно ставить там, где это нужно. Отсутствие математического округления порождает постоянку. Если схема игнорирует постоянку, то округлять не требуется. Также это критично при малых разрядностях, когда постоянка в 1 бит сопоставима с уровнем сигнала.

 

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

 

На каждой ступени обработки необходимая разрядность считается, как подсказывает des00 по формуле разрядность на входе фильтра + log2(полоса на входе/полоса на выходе). Независимо от структуры фильтра. Просто у первых CICов понижение частоты самое значительное, т.к. они как правило очень узкополосные (за тем их и ставят), поэтому на этой стадии влияние роста разрядности самое критическое.

 

Формула корректная, но если пользоваться готовыми реализациями от Xilinx, например, то нельзя выставить произвольную разрядность, в таком случае экономия выходит боком.

 

Использование максимальной разрядности актуально только в процессорах, т.к. они работают с фиксированной разрядностью в принципе. В ПЛИС такой подход затратен. Нужно разрядность ставить ровно столько, сколько нужно для обеспечения требуемого чутья в приёмнике или точности в передатчике.

 

В теории - да, в жизни - если в ПЛИСе есть место, почему бы не добавить системе помехоустойчивости?

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


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

Я бы добавил: на NCO тоже надо заложить увеличение разрядности не менее чем на 2.

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


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

Я бы добавил: на NCO тоже надо заложить увеличение разрядности не менее чем на 2.

С чем это связано? В моём понимание на смесителе (вы же имеете в виду не сам NCO а смеситель?) динамический диапазон никак не изменяется, т.к. сигнал от NCO идёт в полную шкалу, соответственно, если у нас с NCO сигнал, например, 16 бит, то на перемножение мы добавляем 16 бит, а после спокойно можем их отнять, ничего не потеряв. Вы предлагаете отнять не 16 а 14, правильно я понял? С чем это связано?

В теории - да, в жизни - если в ПЛИСе есть место, почему бы не добавить системе помехоустойчивости?

Вы добавляете не помехоустойчивость а точность. Есть например приёмник. На тепловой шум отводится 6-8 разрядов, арифметический шум - 1 разряд. В таком случае очевидно, что тепловой шум много больше арифметического, следовательно арифметическим шумом можно принебречь и оптимальный приём будет работать как в учебнике. Добавляя разрядности, вы увеличиваете точность квантования теплового шума. Т.к. от этого сигнал-шум не поменяется, откуда взяться выигрышу в помехоустойчивости. Другое дело, если у вас рекурсивная схема, в ней 1 битный арифметический шум может вырасти и стать сравнимым или даже большим чем шум тепловой, снизив помехоустойчивость. Или другой пример - выделение сверхмалого сигнала на фоне большой помехи. Если выбрать малую разрядность, то в процессе обработки малый сигнал потеряется, т.к. в процессе выделения используется корреляционная обработка (т.е. фактически эквивалент возведению в квадрат, а это приведет к двукратному росту динамического диапазона, отбросив разрядность очень легко потерять слабый сигнал, который после возведение в квадрат станет еще слабее). С практической точки зрения разрядность все таки уменьшать стоит, но не более чем до разрядности умножителя ПЛИС.

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

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


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

С чем это связано? В моём понимание на смесителе (вы же имеете в виду не сам NCO а смеситель?) динамический диапазон никак не изменяется, т.к. сигнал от NCO идёт в полную шкалу, соответственно, если у нас с NCO сигнал, например, 16 бит, то на перемножение мы добавляем 16 бит, а после спокойно можем их отнять, ничего не потеряв. Вы предлагаете отнять не 16 а 14, правильно я понял? С чем это связано?

 

Пр повороте вектора длина проекции может увеличиться. Т.е. если на входе ты закладываешься на максимальное значение в каждой квадратуре K, то на выходе надо иметь sqrt(2) * K

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


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

Пр повороте вектора длина проекции может увеличиться. Т.е. если на входе ты закладываешься на максимальное значение в каждой квадратуре K, то на выходе надо иметь sqrt(2) * K

А ведь да ) только тогда можно 1 бит добавить, т.к. sqrt(2) < 2.

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


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

Пр повороте вектора длина проекции может увеличиться. Т.е. если на входе ты закладываешься на максимальное значение в каждой квадратуре K, то на выходе надо иметь sqrt(2) * K

 

 

Поясните пожалуйста про NCO. Я умножаю 14 бит с NCO на 14 бит с АЦП. И на выходе сколько бит можно оставить? 16? я правильно понял?

 

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

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


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

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

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

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

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

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

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

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

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

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