|
Коэффициенты из QED 2000, Помогите разобраться с коэффициентами |
|
|
|
Apr 10 2009, 06:55
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401

|
Добрый день! В программе 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*/ //*****************
|
|
|
|
|
Apr 14 2009, 04:58
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401

|
Спасибо! Буду дальше разбираться.
На Gain надо умножать или делить входной отсчет? Может у кого есть пример реализации IIR с коэффициентами из QED? И еще как вычислять разрядность данных в аккумуляторе (буфере для хранения промежуточных результатов)?
Сообщение отредактировал ANTSIR - Apr 14 2009, 05:57
|
|
|
|
|
Apr 14 2009, 11:28
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401

|
Пожалуйста помогите исходным кодом IIR фильтра (БИХ) с использованием данных коэффициентов
|
|
|
|
|
Apr 14 2009, 12:25
|
Частый гость
 
Группа: Свой
Сообщений: 95
Регистрация: 31-07-05
Из: Полоцк Беларусь
Пользователь №: 7 227

|
Цитата(ANTSIR @ Apr 14 2009, 14:28)  Пожалуйста помогите исходным кодом IIR фильтра (БИХ) с использованием данных коэффициентов Исходным кодом под что? Если для dsPIC от Microchipa, то: ../Microchip/MPLAB C30/dsp/src/asm/iircan.s
|
|
|
|
|
Apr 14 2009, 12:33
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401

|
имеется ввиду код (С, pascal) где наглядно можно увидеть как используются коэффициенты от QED
Или пример с использованием коэффициентов из MatLab.
Сообщение отредактировал ANTSIR - Apr 14 2009, 12:39
|
|
|
|
|
Apr 14 2009, 17:53
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399

|
Цитата(ANTSIR @ Apr 14 2009, 16:33)  имеется ввиду код (С, pascal) где наглядно можно увидеть как используются коэффициенты http://www.vlsi.ss.titech.ac.jp/~isshiki/V...stemVIII_06.pdfКод в общем виде на странице 12. Только "нарастите" его до своего порядка фильтра.
|
|
|
|
|
Apr 14 2009, 19:14
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399

|
Цитата(Джеймс @ Apr 14 2009, 21:53)  http://www.vlsi.ss.titech.ac.jp/~isshiki/V...stemVIII_06.pdfКод в общем виде на странице 12. Только "нарастите" его до своего порядка фильтра. Сейчас проверил - коэффициенты "A" в вашем дампе - это коэффициенты "B" в приведенном примере программы (и наоборот). Порядок фильтра вроде менять не надо. У вас видимо звенья (section 1 - section n) каскадируются.
|
|
|
|
|
Apr 14 2009, 19:41
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401

|
Спасибо! Начинаю понимать что к чему. А как можно рассчитать разрядность буфера накопления, чтобы в последствии не возникало переполнений?
|
|
|
|
|
Apr 15 2009, 09:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992

|
Цитата(ANTSIR @ Apr 15 2009, 01:41)  Спасибо! Начинаю понимать что к чему. А как можно рассчитать разрядность буфера накопления, чтобы в последствии не возникало переполнений? как и у вх. чисел, если исп. shift, я исп. коэф. в проге для adsp21xx - исходники есть на сайте аналога, могу привести (asm). если сделать разр. буфера 2х то можно получить меньше шумов при фиксир. точке. пс: overall shift & gain не использовал, при соотв. написанной программе переполнений не возникает- бывает ограничения перех. ф-ии, если подавать сигнал макс. величины (7fff), елси это критично- то надо умножать (число < 1), сдвигать вх. сигнал (влево или вправо)
Сообщение отредактировал shf_05 - Apr 15 2009, 09:51
|
|
|
|
|
Apr 16 2009, 18:59
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401

|
Что-то все равно не получается  что не так делаю не пойму. Все время вылетает переполнение буфера аккумулятора. На компе в модели с большим буфером все работает в сигнальнике нет... Подскажите как на 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 - Apr 16 2009, 19:02
|
|
|
|
|
Apr 17 2009, 17:29
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399

|
Цитата(shf_05 @ Apr 17 2009, 10:10)  совет- создайте ф-р ФНЧ с одной секцией подайте на него постоянку А я считаю, что лучше отлаживаться не на "постоянке", а на единичном импульсе. Заодно АЧХ потом можно проверить.
|
|
|
|
|
Apr 19 2009, 08:39
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401

|
Цитата(Джеймс @ Apr 16 2009, 23:45)  А 8 бит для квантования коэффициентов Вы сами выбрали? Почему Вы решили, что этого будет достаточно? Входной сигнал, насколько я понял, у Вас 16-разрядный. В настоящее время выбрал 8 бит только для того чтобы исключить переполнение. При моделировании на компе использовал 16бит - этого было достаточно и характеристика удовлетворяла в полной мере. Цитата(Джеймс @ Apr 16 2009, 23:45)  У вас вообще есть коэффициенты в обычном виде, в дробном представлении, с большой исходной разрядностью? Вроде как получить в таком виде проблем не представляется, а для чего? И еще подскажите а как можно прогнозировать переполнение аккумулятора и как можно искусственно увеличить разрядность аккумулятора? Вообще вариант искусственного увеличения разрядности аккумулятора жизнеспособный, имеется ввиду насколько это снизит быстродействие выполнения функции? Цитата(shf_05 @ Apr 17 2009, 10:10)  провертьте вот что: 1. знаки коыф-в- бывает что в программе ф-ии подразумевается, что к-ты ОС со знаком "-" 2. порядок коэф-в- нек-е пр. ф-ии подразум, что коэф-ты хр-ся в памяти в опр. порядке 3. к той ли стр-ре(прямая, канонич., форма 1 или 2) ф-ра QED генерит коэф-ты- это важно! По п.1 не совсем все ясно со стандартными функциями. Дело в том что коэффициенты а1, а2, .. записаны без знака , а QED выводит -А1, -А2. Какой вид примет функция d(n) = x(n) - (-А1)*d(n-1) - (-А2)*d(n-2) или d(n) = x(n) + (-А1)*d(n-1) + (-А2)*d(n-2) При записи коэффициентов запутался из-за того, что в примерах использования функций из DSPLib записан один порядок, а в Help СCS3 он отличается, я использую порядок из хелпа. Цитата(shf_05 @ Apr 17 2009, 10:10)  провертьте вот что: совет- создайте ф-р ФНЧ с одной секцией подайте на него постоянку и пошагово посмотрите как робит ваша прога- отладил таким образом самопльные прграммы ф-ии для 32 бит на 16 бит проце- долго, муторно, но полезно))) увеличьте число секций до 2х 3-х и повторите Если у Вас есть исходник с коэффициентами из QED со сдвигами и усилениями вх. сигнала, можете поделиться? Так скажем на работающем примере это сделать гораздо проще понять что да как.
Сообщение отредактировал ANTSIR - Apr 19 2009, 08:26
|
|
|
|
|
Apr 20 2009, 04:21
|
Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992

|
Цитата(ANTSIR @ Apr 19 2009, 14:39)  В настоящее время выбрал 8 бит только для того чтобы исключить переполнение. При моделировании на компе использовал 16бит - этого было достаточно и характеристика удовлетворяла в полной мере. зря от 8-ми бит хар-ку фильтра может так исказить... да еще неустойчивым может стать Цитата И еще подскажите а как можно прогнозировать переполнение аккумулятора и как можно искусственно увеличить разрядность аккумулятора? Вообще вариант искусственного увеличения разрядности аккумулятора жизнеспособный, имеется ввиду насколько это снизит быстродействие выполнения функции? как увеличивают разрядность. конечно! ну раза в 2-2,5 в з-ти от реализации Цитата По п.1 не совсем все ясно со стандартными функциями. Дело в том что коэффициенты а1, а2, .. записаны без знака , а QED выводит -А1, -А2. Какой вид примет функция d(n) = x(n) - (-А1)*d(n-1) - (-А2)*d(n-2) или d(n) = x(n) + (-А1)*d(n-1) + (-А2)*d(n-2) формула в общ. виде: d(n) = x(n) -А1*d(n-1) -А2*d(n-2) , так если прога уже вычитает, то знаки менять не надо, а если складывает, то надо, соответственно QED формирует коэф-ты с о зн. + или -, надо чтоб стыковалось напр. d(n) = x(n) -0,5*d(n-1) -0,7*d(n-2), QED посчитал а1= 0,5 а2=0,7, прога вычитает -ниче менять не надо, если в проге сложение, то надо записать в а1 "-0,5" в а2 "-0.7". Цитата При записи коэффициентов запутался из-за того, что в примерах использования функций из DSPLib записан один порядок, а в Help СCS3 он отличается, я использую порядок из хелпа. повнимательне!! ЭТО ОЧЕНЬ ВАЖНО! Цитата Если у Вас есть исходник с коэффициентами из QED со сдвигами и усилениями вх. сигнала, можете поделиться? Так скажем на работающем примере это сделать гораздо проще понять что да как. я вам отпралял в личку п.п фильтрации, а пример врядли что-то полезное даст- там всего лишь в рег-ры зап-ся нужные пар-ры вызова п.п. и call, после этого сохр-ся вых. отчет. а все сдвиги и коэф=-ты в файле с коэф-ми. имхо-лучше разберитесь с исходником из СС. возьмите пример от техаса с коэф. из примера и разберитесь с ним, а потом уж квед мучайте.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|