Jump to content

    

Fir Compiler 7.2 Как сделать, чтоб количество DSP48 не зависило от значений коэффициентов?

6 часов назад, des00 сказал:

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

Не верю!:))) Какие Ваши доказательства?:) Я вот тоже поковырял Матлаб и больше чем в 0.5...1 дБ разницы не увидел. Да и странно было бы получить какое-то существенное отличие, пусть даже квантованных фильтров, учитывая, что полосовой фильтр на Fs/4 это обычный ФВЧ, апсемплированный в 2 раза. Мы же не видим разницы между ФНЧ и ФВЧ с одинаковыми (немного разными на самом деле, но не суть) характеристиками?

 

8 часов назад, _4afc_ сказал:

Я просто думал что нельзя сразу после АЦП снести весь спектр в ноль вместе с помехами и там пропустить через ФНЧ.

Мне казалось что сначала нужно очистить сигнал полосовым фильтром и только потом сносить в ноль.

Я делаю лишнюю работу?

Да. При сносе в ноль наложений не будет и всю фильтрацию можно делать уже на нуле.

 

8 часов назад, _4afc_ сказал:

Просто пока нет опыта работы с CIC. БИХ пробовал, КИХ пробовал, CIC как-то пока не попадался...

Все (ну или почти все) DDC в первых каскадах децимации используют как раз CIC-фильтры. Удобно, если полосу пропускания нужно перестраивать в широком диапазоне.

Share this post


Link to post
Share on other sites
3 hours ago, Самурай said:

Не верю!:))) Какие Ваши доказательства?:) Я вот тоже поковырял Матлаб и больше чем в 0.5...1 дБ разницы не увидел. Да и странно было бы получить какое-то существенное отличие, пусть даже квантованных фильтров, учитывая, что полосовой фильтр на Fs/4 это обычный ФВЧ, апсемплированный в 2 раза. Мы же не видим разницы между ФНЧ и ФВЧ с одинаковыми (немного разными на самом деле, но не суть) характеристиками?

Когда я оптимизировал фильтры, в том числе без матлаба (изменяя округление, масштабирование и т.д.), борясь с "яйцами" в полосе задерживания, вызванными минимальными разрядностями коэффициентов, то наблюдал разные, порой неожиданные эффекты в этой области.

BP.png

FIR.png

Share this post


Link to post
Share on other sites

На картинках пример не очень жизненный:) Зачем загонять порядок фильтра, делая затухание под 80дБ и тут же душить его до 60дБ, урезая коэффициенты по самое не могу? Ну да, в таких условиях вылезла разница между ПФ и ФНЧ, аж целых 5дБ... Но стоит уменьшить порядок ФНЧ (и ПФ) с 1377-ого до 1135-ого и увеличить разрядность коэффициентов до 13 бит (получая те же самые 60дБ затухания) и вот уже между ПФ и ФНЧ разница в затуханиях практически исчезла. При этом 1135-й порядок и 13 бит это таки лучше по железу, чем 1377-й порядок и 12 бит. И да, для ПФ у нас все еще половина коэффициентов нули:)

Share this post


Link to post
Share on other sites
22 minutes ago, Самурай said:

На картинках пример не очень жизненный:) Зачем загонять порядок фильтра, делая затухание под 80дБ и тут же душить его до 60дБ, урезая коэффициенты по самое не могу? Ну да, в таких условиях вылезла разница между ПФ и ФНЧ, аж целых 5дБ... Но стоит уменьшить порядок ФНЧ (и ПФ) с 1377-ого до 1135-ого и увеличить разрядность коэффициентов до 13 бит (получая те же самые 60дБ затухания) и вот уже между ПФ и ФНЧ разница в затуханиях практически исчезла. При этом 1135-й порядок и 13 бит это таки лучше по железу, чем 1377-й порядок и 12 бит. И да, для ПФ у нас все еще половина коэффициентов нули:)

Ну я же сразу сказал, из моей практики и сразу написал про коэффициенты и ресурс. То что я делал, LPF оказывались лучше. А как вы делаете на ПФ нули? научите

 

coe.png

В смысле проект для fdatool где полосовой на Fs/4 содержит половину нулей, выложите позырить)

Share this post


Link to post
Share on other sites

Такой не подойдёт?

image.thumb.png.29a571e028eb1fcdfa99ce26f3d76dc7.png

Share this post


Link to post
Share on other sites
10 minutes ago, _sda said:

Такой не подойдёт?

 

хмм, параметры теже, только заданы частоты по другому. почему у меня другая характеристка ?

coe2.png

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

Share this post


Link to post
Share on other sites

Вы правы, в этом и вся разница. Я стараюсь делать фильтры чётного порядка.

Share this post


Link to post
Share on other sites
2 часа назад, des00 сказал:

А как вы делаете на ПФ нули? научите

Я знаю два способа:

1. Методом подбора коэффициентов подавления/пропускания, совместно с порядком фильтра.

2. Синтезировать нужный ФВЧ и ручками вставить нули:)))

П.С. Да, это все относится только для ПФ на Fs/4.

ФНЧ и ПФ.png

Edited by Самурай

Share this post


Link to post
Share on other sites
1 hour ago, Самурай said:

2. Синтезировать нужный ФВЧ и ручками вставить нули:)))

Спасибо, не знал, а может и знал, но забыл)

ЗЫ.Сейчас вспомнил что относительно Fs/4, ФВЧ делается из ФНЧ методом инверсии каждого второго коэффиицента, при нечетном фильтре.

Share this post


Link to post
Share on other sites
4 minutes ago, des00 said:

ФВЧ делается из ФНЧ методом инверсии каждого второго коэффиицента, при нечетном фильтре.

Из ФНЧ можно сделать даже полосовой фильтр, умножив его ИХ на cos(w*n). Ессно, полоса пропускания полосового фильтра будет равна удвоенной частоте среза ФНЧ.. ;)

Share this post


Link to post
Share on other sites

Чтобы понять логику Fir Compiler сделал IP ядро с двумя короткими ФНЧ (переключаемыми)

С такими коэффициентами:

Spoiler

LPF1= -4,-20,-10,93,185,-80,-697,-651,1029,2784,830,-5251,-7869,2896,26156,46143,46143,26156,2896,-7869,-5251,830,2784,1029,-651,-697,-80,185,93,-10,-20,-4,
LPF2= 25,71,165,337,621,1052,1659,2458,3446,4593,5844,7116,8311,9326,10064,10453,10453,10064,9326,8311,7116,5844,4593,3446,2458,1659,1052,621,337,165,71,25

 

В результате импульсная характенистика для случая Coefficient Quantization=Maximize Dynamic Range  была умножена на 11,36,

а для остальных вариантов - на 16.

При этом максимум АЧХ всегда был 102дБ.

 

Как он умудряется в 18 разрядов запихать такие числа - загадка. Главное что нет уверенности что не подавится...

 

Share this post


Link to post
Share on other sites
9 hours ago, _4afc_ said:

Как он умудряется в 18 разрядов запихать такие числа - загадка. Главное что нет уверенности что не подавится...

Ну, 18-ти разрядам соответствует ДД = 18*6.02+1.76 = 110.12 дБ. Фильтр не особо длинный, так что 102 дБ не удивительны..

Share this post


Link to post
Share on other sites
2 minutes ago, blackfin said:

Ну, 18 разрядов соответствует ДД = 18*6 = 108 дБ. Фильтр не особо длинный, так что 102 дБ не удивительны..

17*6=102дБ

 

Вот только 46143*16=738288 > 131072

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now