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

Коэффициенты из QED 2000

Добрый день! В программе QEDesign 2000 посчитал коэффициенты для фильтров однако значение некоторых из них понять не могу.

С B0, .. , B1 и A0, A1 все понятно, но вот что такое "shift count for overall gain ", "overall gain", "shift count for section 2 values" не понятно .

 

Ниже приведен кусок из файла с коэффициентами

 

//***************************

FILTER COEFFICIENT FILE

IIR DESIGN

FILTER TYPE LOW PASS

ANALOG FILTER TYPE BUTTERWORTH

PASSBAND RIPPLE IN -dB -.5000E+00

STOPBAND RIPPLE IN -dB -.5000E+01

PASSBAND CUTOFF FREQUENCY 0.132430E+05 HERTZ

STOPBAND CUTOFF FREQUENCY 0.140310E+05 HERTZ

SAMPLING FREQUENCY 0.512000E+05 HERTZ

FILTER DESIGN METHOD: BILINEAR TRANSFORMATION

FILTER ORDER 9 9h

NUMBER OF SECTIONS 5 5h

NO. OF QUANTIZED BITS 8 8h

QUANTIZATION TYPE - FRACTIONAL FIXED POINT

COEFFICIENTS SCALED FOR CASCADE FORM I

0 0 /* shift count for overall gain */

127 7F /* overall gain */

0 0 /* shift count for section 1 values */

38 26 /* section 1 coefficient B0 */

77 4D /* section 1 coefficient B1 */

38 26 /* section 1 coefficient B2 */

-22 FFFFFFEA /* section 1 coefficient -A1*/

-4 FFFFFFFC /* section 1 coefficient -A2*/

0 0 /* shift count for section 2 values */

42 2A /* section 2 coefficient B0 */

85 55 /* section 2 coefficient B1 */

42 2A /* section 2 coefficient B2 */

-24 FFFFFFE8 /* section 2 coefficient -A1*/

-17 FFFFFFEF /* section 2 coefficient -A2*/

0 0 /* shift count for section 3 values */

50 32 /* section 3 coefficient B0 */

100 64 /* section 3 coefficient B1 */

50 32 /* section 3 coefficient B2 */

-29 FFFFFFE3 /* section 3 coefficient -A1*/

-43 FFFFFFD5 /* section 3 coefficient -A2*/

//*****************

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


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

Это коэффициенты масштабирования сигнала на входе фильтра - что-бы не было переполнения внутри каскада при вычислениях.

на Gain надо умножать, на shift - сдвигать.

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


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

Спасибо! Буду дальше разбираться.

 

 

На Gain надо умножать или делить входной отсчет? Может у кого есть пример реализации IIR с коэффициентами из QED?

И еще как вычислять разрядность данных в аккумуляторе (буфере для хранения промежуточных результатов)?

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

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


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

Пожалуйста помогите исходным кодом IIR фильтра (БИХ) с использованием данных коэффициентов

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


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

Пожалуйста помогите исходным кодом IIR фильтра (БИХ) с использованием данных коэффициентов

 

Исходным кодом под что? Если для dsPIC от Microchipa, то:

../Microchip/MPLAB C30/dsp/src/asm/iircan.s

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


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

имеется ввиду код (С, pascal) где наглядно можно увидеть как используются коэффициенты от QED

 

Или пример с использованием коэффициентов из MatLab.

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

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


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

имеется ввиду код (С, pascal) где наглядно можно увидеть как используются коэффициенты

 

http://www.vlsi.ss.titech.ac.jp/~isshiki/V...stemVIII_06.pdf

 

Код в общем виде на странице 12. Только "нарастите" его до своего порядка фильтра.

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


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

http://www.vlsi.ss.titech.ac.jp/~isshiki/V...stemVIII_06.pdf

 

Код в общем виде на странице 12. Только "нарастите" его до своего порядка фильтра.

 

Сейчас проверил - коэффициенты "A" в вашем дампе - это коэффициенты "B" в приведенном примере программы (и наоборот).

Порядок фильтра вроде менять не надо. У вас видимо звенья (section 1 - section n) каскадируются.

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


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

Спасибо! Начинаю понимать что к чему.

А как можно рассчитать разрядность буфера накопления, чтобы в последствии не возникало переполнений?

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


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

Спасибо! Начинаю понимать что к чему.

А как можно рассчитать разрядность буфера накопления, чтобы в последствии не возникало переполнений?

как и у вх. чисел, если исп. shift, я исп. коэф. в проге для adsp21xx - исходники есть на сайте аналога, могу привести (asm).

если сделать разр. буфера 2х то можно получить меньше шумов при фиксир. точке.

пс: overall shift & gain не использовал, при соотв. написанной программе переполнений не возникает- бывает ограничения перех. ф-ии, если подавать сигнал макс. величины (7fff), елси это критично- то надо умножать (число < 1), сдвигать вх. сигнал (влево или вправо)

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

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


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

Что-то все равно не получается :( что не так делаю не пойму. Все время вылетает переполнение буфера аккумулятора. На компе в модели с большим буфером все работает в сигнальнике нет...

Подскажите как на DSP(TMS320VC5502 FixedPoint) реализовать гребенку из 30 1/3 октавных фильтров Fs=50 кГц.

В настоящий момент делаю вычисление 3-х LowPass и 3-x HighPass фильтров затем прореживаю сигнал в 2 раза и пропускаю опять через такие же фильтры (3-х LowPass и 3-x HighPass) и т.д. Реализовал на FIR фильтрах но характеристики огибающих полученных фильтров не удовлетворяют (в задании требование на 0,2*Fцентр. , 5*Fцентр. ослабление >75 дБ).

 

Может кто с таким сталкивался и нечто подобное делал, подскажите как. Мозги уже кипят....

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

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


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

А 8 бит для квантования коэффициентов Вы сами выбрали? Почему Вы решили, что этого будет достаточно? Входной сигнал, насколько я понял, у Вас 16-разрядный.

 

У вас вообще есть коэффициенты в обычном виде, в дробном представлении, с большой исходной разрядностью?

Изменено пользователем Джеймс

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


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

провертьте вот что:

1. знаки коыф-в- бывает что в программе ф-ии подразумевается, что к-ты ОС со знаком "-"

2. порядок коэф-в- нек-е пр. ф-ии подразум, что коэф-ты хр-ся в памяти в опр. порядке

3. к той ли стр-ре(прямая, канонич., форма 1 или 2) ф-ра QED генерит коэф-ты- это важно!

 

совет- создайте ф-р ФНЧ с одной секцией подайте на него постоянку и пошагово посмотрите как робит ваша прога- отладил таким образом самопльные прграммы ф-ии для 32 бит на 16 бит проце- долго, муторно, но полезно)))

увеличьте число секций до 2х 3-х и повторите

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

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


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

совет- создайте ф-р ФНЧ с одной секцией подайте на него постоянку

 

А я считаю, что лучше отлаживаться не на "постоянке", а на единичном импульсе. Заодно АЧХ потом можно проверить.

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


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

А я считаю, что лучше отлаживаться не на "постоянке", а на единичном импульсе. Заодно АЧХ потом можно проверить.

да, только потом, когда поймешь, что ниче не насыщ., ыообще- дело вкуса)

 

пс: под постоянкой имелось ввиду ___/''''''''''

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

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


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

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

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

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

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

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

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

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

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

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