Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Цифровые сигнальные процессоры (DSP) и их применение»

Подскажите по цифровым фильтрам, ни как не разберусь с fixed point

Отправлено bt1024 23 октября 2009, г. 15:52


Что такое Num.State и Den.State, ну понятно что это состояние нумераторов и денумераторов, но какое именно?

Я про первую прямую форму фильтра. Коэф. считаю в матлабе.

Вот код секции второго порядка.
Скажите правильно ли выбрано масшабирование

Number of Sections : 1
Stable : Yes
Arithmetic : fixed
Numerator : s8,6 -> [-2 2)
Denominator : s8,6 -> [-2 2)
Scale Values : s8,7 -> [-1 1)
Input : s8,7 -> [-1 1)
Output : s8,0 -> [-128 128)
Numerator State : s18,12 -> [-32 32)
Denominator State : s18,12 -> [-32 32)
Numerator Prod : s26,18 -> [-128 128)
Denominator Prod : s26,18 -> [-128 128)
Numerator Accum : s24,16 -> [-128 128)
Denominator Accum : s24,16 -> [-128 128)
Round Mode : convergent

Почему Numerator Prod и Denominator Prod имеют 26 разрядов, в матлабе я выбирал режим "полная разрядность" умножителя, и получил такой результат. Но по сути умножаются две 8 битные величины, должно быть 16, а аккумулятор должен быть на 2 бита больше. К слову, аккумулятор был выбран 24 бита специально.

b = [64, 0, -64]
a = [64, -112, 49]

scale = [15, 127]
base = 7

x = [0, 0, 0]
y = [0, 0, 0]

Acc = 0
out = []



for i in range(len(s)):
y[2] = y[1]
y[1] = y[0]

x[2] = x[1]
x[1] = x[0]
x[0] = s[i]

Acc = x[0] * b[0]
Acc += x[2] * b[2]
Acc *= scale[0]
Acc >>= base

Acc -= y[1] * a[1]
Acc -= y[2] * a[2]
Acc *= scale[1]
Acc >>= base
y[0] = (Acc/b[0])
out.append( y[0])

Где сдесь Num.State и Den.State? Это состояние аккумулятора Acc перед масшабированием?


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru