|
Выбор разрядности на выходе фильтров |
|
|
|
Jun 2 2015, 14:06
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 16:55)  Избирательность по соседнему каналу Вашего приемника определяется фильтром, попробуйте загнать усиление АРУ на максимум и посмотреть на спектр того, что на выходе приемника. Должна быть АЧХ Вашего фильтра. Еще, как вариант, где-то что-то перегружается. Каким именно фильтром? В приемнике я изменил только часть, отвечающую за сброс на ноль несущей и процесс децимации. До этого стояла отдельная микросхема, все работало. Теперь я все это сделал в плис. Даже коэффициенты FIRа оставил прежними. Как я понимаю, дело исключительно в операциях с разрядами.
|
|
|
|
|
Jun 2 2015, 14:23
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 17:06)  Каким именно фильтром? В приемнике я изменил только часть, отвечающую за сброс на ноль несущей и процесс децимации. До этого стояла отдельная микросхема, все работало. Теперь я все это сделал в плис. Даже коэффициенты FIRа оставил прежними. Как я понимаю, дело исключительно в операциях с разрядами. FIR на последней стадии децимации. Все, что работает на более высоких частотах дискретизации - более широкополосно. Спектр шума на выходе приемника как раз и скажет, правильно ли работает FIR - на выходе должна быть его АЧХ, даже если что и перегружается до него. Если АЧХ нет, то перегруз происходит внутри этого фильтра.
|
|
|
|
|
Jun 2 2015, 14:33
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 17:23)  FIR на последней стадии децимации. Все, что работает на более высоких частотах дискретизации - более широкополосно. Спектр шума на выходе приемника как раз и скажет, правильно ли работает FIR - на выходе должна быть его АЧХ, даже если что и перегружается до него. Если АЧХ нет, то перегруз происходит внутри этого фильтра. Как я посмотрю спектр на выходе FIR? Там же отсчеты валятся. Кроме как загонять их в регистры dsp и потом обрабатывать на компе никаких вариантов не придумывается
|
|
|
|
|
Jun 2 2015, 15:21
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 17:33)  Как я посмотрю спектр на выходе FIR? Там же отсчеты валятся. Кроме как загонять их в регистры dsp и потом обрабатывать на компе никаких вариантов не придумывается  Ну да. Обычно так и делают. Если внутри FPGA есть доступные ресурсы, то можно всякую инструментовку для отладки FPGA поиспользовать, чтобы вытянуть отсчеты на PC - типа альтеровского ChipScope. Ну и нечто для визуализации выхода приемника все равно потребуется, если будешь его сдавать. Как еще подтвердить его соответствие ТЗ?
Сообщение отредактировал andyp - Jun 2 2015, 15:35
|
|
|
|
|
Jun 2 2015, 20:25
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
А вот тут то и начнётся самое интересное. В случае с такой тривиальной вещью как узкополосный DDC обработка пишется за неделю-полторы, а всё остальное время делается отладочный интерфейс, если его еще нет. Со временем конечно выработаются шаблоны и заготовки, а то и вовсе универсальный интерфейс, но в первый раз придётся поднапрячься. Вывод на комп через COM порт (медленный канал) или Ethernet+UDP (быстрый канал). Если есть возможность по ресурсам сразу ставте простенький проц, т.к. на него потом еще можно что-нибудь понавешать в плане управления. Если нет, можно и на ПЛИС конечно всё сделать, даже UDP аппаратный, но лучше конечно с процом разобраться, пригодится. На компе в Qt например можно сделать программку, QWT библиотека будет в помощь для построения графиков, сокеты и COM порт идут в комплекте с Qt. Средств Signaltap/Chipscope обычно недостаточно чтобы нормально ЦОС отлаживать да и непрезентабельно это.
Сообщение отредактировал serjj - Jun 2 2015, 20:26
|
|
|
|
|
Jun 24 2015, 12:43
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(serjj @ Jun 2 2015, 16:19)  Если фильтр делали сами, то смотрите где у вас там округление (либо на умножениях либо на интеграторе) и порулите им, чтобы прикурить побольше мощности на выходе. Если не взяли готовый, то как вам сказал andyp, все дело в импульсной, нужно её смасштабировать, чтобы поднять мощность на выходе. Фильтр взял готовый. По поводу масштабирования: большое количество лишних старших разрядов на выходе фильтра говорит как раз о том, что ИХ смасштабирована неверно, так? А масштабируется ИХ только за счет увеличения разрядности коэффициентов фильтра?
|
|
|
|
|
Sep 20 2015, 21:21
|

Профессионал
    
Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815

|
Цитата(Krys @ Aug 21 2015, 07:16)  Выигрыш ещё и в том, что на последующих этапах децимации тактовая частота поступления отсчётов снижается, и фильтры могут работать в т.н. "полифазном" режиме, т.е. когда на одном и том же умножителе обсчитывается сразу несколько коэффициентов последовательно, а на умножитель подаётся повышенная тактовая частота. Более того, если использовать коэффициенты децимации равные 2 и дециматоры цепочкой, то экономия аппаратных умножителей вообще будет бешеная... У меня к ТС сразу ряд вопросов: 1. Какая избирательность по вашему мнению у АЦП. Опишите хоть как-то аппаратную часть! 2. Подробно распишите, сколько и каких разрядов на каждом этапе. Вход, выход. 3. Какой NCO используете. Свой писали/кореген взяли. Штатные Ксайлинкс/Альтера из бесплатных библиотек фуфел полный или надо правильно настроить все параметры, а то такие проблемы неизбежны. Настройки в генераторе ИП в студию. 4. При использовании БИХ фильтров требуется дикое количество дополнительных разрядов. Фильтр их съедает и не давится. Данные на входе нужно расширять, заполняя младшую часть битами обратным знаку. В старшей части исходное число, разумеется. 5. При использовании КИХ фильтров возможны проблемы если результат умножения округляется сразу после умножения, а не на выходе фильтра после суммирования. Плюс, если коэффициенты маленькие относительно выбранной разрядности. Тогда проблемы сходные с п. 4. Что выливается в паразитных лепестках после основной полосы.
Сообщение отредактировал Corner - Sep 20 2015, 21:26
|
|
|
|
|
Oct 13 2015, 08:32
|

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

|
Цитата(Corner @ Sep 21 2015, 04:21)  Более того, если использовать коэффициенты децимации равные 2 и дециматоры цепочкой, то экономия аппаратных умножителей вообще будет бешеная... А подскажите, пожалуйста, за счёт чего коэффициенты децимации 2 дают экономию умножителей? За счёт half-band фильтров? Цитата(Corner @ Sep 21 2015, 04:21)  4. При использовании БИХ фильтров требуется дикое количество дополнительных разрядов. Фильтр их съедает и не давится. Данные на входе нужно расширять, заполняя младшую часть битами обратным знаку. В старшей части исходное число, разумеется. 5. При использовании КИХ фильтров возможны проблемы если результат умножения округляется сразу после умножения, а не на выходе фильтра после суммирования. Плюс, если коэффициенты маленькие относительно выбранной разрядности. Тогда проблемы сходные с п. 4. Что выливается в паразитных лепестках после основной полосы. А это уже не вопросы )))
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|