реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Коэффициент усиления цифрового фильтра
Guest_TSerg_*
сообщение Feb 12 2016, 15:34
Сообщение #16





Guests






Ви так ничего и не поняли.

Цитата(Verizon @ Feb 12 2016, 18:00) *
С разрядностью все понятно.


Сомневаюсь, сильно.

Цитата(Verizon @ Feb 12 2016, 18:00) *
Явно, что при другом наборе коэффициентов картина изменится.


Конечно, но Вам были предоставлены несколько вариантов: от Viko - конкретный, от меня - максималистский (в общем) и еще один:

См. максималистский, с уточнениями:
Вместо 2^16 (в максимальном по разрядности Вашем случае), используем для конкретного случая набора коэффициентов - максимальный по модулю коэффициент и полагаем его константой на все K-taps.

Что это дает, для Вашего случае, смотрим далее:

Максимальный коэффициент по модулю: 2577
Максимальное входное число (12р): 2047
Максимальное произведение: 2577*2047 = 5 275 119
Максимальная сумма ( с учетом 26-ти ненулевых const коэффициентов = 2577 ) = 26 * 5 275 119 = 137 153 094
Число потребных разрядов для аккумулятора:
N = logN(26*2577*2047;2) = 27,03

Как их интерпретировать и сколько оставить - это Ваша задача.
Go to the top of the page
 
+Quote Post
Verizon
сообщение Feb 12 2016, 17:17
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 27-01-16
Пользователь №: 90 225



Цитата(TSerg @ Feb 12 2016, 17:34) *
Конечно, но Вам были предоставлены несколько вариантов: от Viko - конкретный, от меня - максималистский (в общем) и еще один:

Больше подходит конкретный. Получается коэффициент усиления порядка 17 000. Круто.
Если сделать масштабирование и выбросить младшие 12 бит то 17 000 необходимо поделить на 2^12 или на 4096 Получится 4. Если это так то вопрос с коэффициентом усиления цифрового фильтра ясен.

Сообщение отредактировал Verizon - Feb 12 2016, 17:18
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 12 2016, 19:06
Сообщение #18





Guests






Вы опять о чем-то своем.. ну да ладно.
Нет понятия "коэффициент усиления" для цифровой системы из-за разрядности данных или операций.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 12 2016, 19:22
Сообщение #19


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Verizon @ Feb 12 2016, 20:17) *
Больше подходит конкретный. Получается коэффициент усиления порядка 17 000. Круто.
Если сделать масштабирование и выбросить младшие 12 бит то 17 000 необходимо поделить на 2^12 или на 4096 Получится 4. Если это так то вопрос с коэффициентом усиления цифрового фильтра ясен.

Вам нужно в Матлабе промоделировать. Или в другом симуляторе фильтров.
Go to the top of the page
 
+Quote Post
Verizon
сообщение Feb 12 2016, 20:08
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 27-01-16
Пользователь №: 90 225



Цитата(TSerg @ Feb 12 2016, 21:06) *
Вы опять о чем-то своем.. ну да ладно.
Нет понятия "коэффициент усиления" для цифровой системы из-за разрядности данных или операций.

Может и нет. Это условность. Но необходимая.
Вообще спасибо за полезную информацию.
Go to the top of the page
 
+Quote Post
V_G
сообщение Feb 12 2016, 22:53
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Ваши космические коэффициенты фильтра образуются из того, что вы считаете диапазоном 16-разрядного знакового числа -32768...+32767. Тогда как в ЦСП имеется понятие формата с фиксированной точкой. Для формата 1.15 диапазон будет -1...+1. Пересчитайте свои целые коэффициенты в этот формат, и усиление станет порядка 1.
Так что "усиление" - действительно условность, зависящая от выбора формата.
Go to the top of the page
 
+Quote Post
Verizon
сообщение Feb 13 2016, 11:36
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 27-01-16
Пользователь №: 90 225



Цитата(V_G @ Feb 13 2016, 00:53) *
Ваши космические коэффициенты фильтра образуются из того, что вы считаете диапазоном 16-разрядного знакового числа -32768...+32767. Тогда как в ЦСП имеется понятие формата с фиксированной точкой. Для формата 1.15 диапазон будет -1...+1. Пересчитайте свои целые коэффициенты в этот формат, и усиление станет порядка 1.
Так что "усиление" - действительно условность, зависящая от выбора формата.

Тоесть Вы хотите сказать, что такого понятия как "усиление" в цифровой системе в принципе не существует? Я тоже с этим согласен. Посоветуйте пожалуйста как популярно и коротко убедить в этом старшего коллегу, который зациклился на этом "усилении". Я так понимаю, что цифровая система она в принципе ничего не усиливает. Хотя полосовой КИХ вроде как и усиливает...? Если не сложно поясните пожалуйста как правильно все можно обставить это так называемое цифровое "усиление". Если можно, что такое формат 1.15 ?
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 13 2016, 12:33
Сообщение #23





Guests






Все очень просто: усиление присуще только аналоговым системам.
Термин "усиление", которым оперируют в ЦОС (т.е. на уровне дискретного сигнала) - на самом деле, это масштабирование, поскольку при этом не порождается новых значений на выходе в промежутке между исходными значениями на входе.
Да, можно говорить об интерполяции и пере-дискретизации, но это искусственные приемы, которые только предполагают, что так оно будет в промежутке между дискретами.

При проектировании цифровых фильтров, да, может использоваться термин "усиление", но на стадии математических выкладок.
Пример.

Простейший рекурсивный ФНЧ первого порядка описывается разностным уравнением:

Y[i] = a * Y[i-1] + b * X[i] (1)

Как правило, принимается a + b = 1. В этом случае, коэффициент усиления (передачи) на нулевой частоте K(0) = 1.

Предположим, мы выбрали ( по тем или иным соображениям и это известно, как выбирать):
a = 0.1
b = 0.9

Предположим, что у нас сетка 16р, включая знак.
В этом случае, масштабный множитель для перевода из десятичной системы в целочисленную равен 2^15-1 = 32767

Тогда:
a = 0.1 * 32767 = 3276.7 = 3277
b = 0.9 * 32767 = 29490.3 = 29490
В целочисленной сумме a + b = 32767, что эквивалентно К(0) = 1 (коэффициент передачи на нулевой частоте)

Алгоритм вычисления реакции фильтра:
Y[i] = 3277 * Y[i-1] + 29490 * X[i]

Можно ли назвать числа 3277 и 29490 коэффициентами усиления по конкретной переменной? Назвать-то можно, только это уже кодирование и к математике оно имеет относительное отношение.

Предположим входной сигнал имеет дискретность 12р, включая знак. Т.е. максимальные входные числа: (+/-) 2047
Можно ли сказать, что в результате умножения 2047 на 3277 мы получили усиление в почти 7 миллионов раз?
Такое утверждение - чушь собачья.
Это просто результат умножения кодов.

Теперь, насчет усиления в (1)

Что нам мешает написать:

Y[i] = K * (a * Y[i-1] + b * X[i] (1)), где K - типа коэффициент усиления?
Ничто не мешает, как не мешает это и реализовать.
Все, что потребуется ( если говорим о целочисленных вычислениях) - это перейти к большей длине сетки, дабы не потерять значимые разряды или не влететь в переполнение.

Будет ли это считаться коэффициентом усиления?
Абстрактно, по математике и до перевода в цифру - да, можно так сказать.
После перехода к дискретам - конечно же нет.
Это всего лишь коэффициент масштабирования.
Go to the top of the page
 
+Quote Post
V_G
сообщение Feb 13 2016, 14:07
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Verizon @ Feb 13 2016, 21:36) *
Если можно, что такое формат 1.15 ?

Продолжая учебник,
можно сказать, что понятное вам 16-разрядное целое число имеет формат 16.0, т.е. все разряды располагаются слева от разделителя целой и дробной части и имеют веса 1,2,4,8 и т.д. Формат 1.15 - это когда 1 разряд в целой части, а остальные 15 - в дробной. Веса разрядов справа от точки будут соответственно 1/2, 1/4, 1/8 и т.д. Точно также в десятичной системе веса цифр в целой части равны положительным степеням десятки, а в дробной - отрицательным.
И все это - форматы с фиксированной точкой.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 13 2016, 14:25
Сообщение #25





Guests






Дополню.
В "наше" время, да и сейчас этим пользуюсь, мы использовали формат с фиксированной точкой 0.Х
Что это означает? Это означает, что числа не превышали по модулю 1.0
Пример (bin/dec формат):
0.1 == 0.5
0.11 == 0.75 (0.5 + 0.25)
0.111 == 0.875 (0.5 + 0.25 + 0.125)
и т.д.
Смысл понятен, надеюсь. ( см. пост #24)

Преимущество перед целочисленкой - никогда не будет переполнения, поскольку:
- результаты сложения контролируются на уровне первоначальной математики;
- результаты умножения, к примеру 0.5*0.5 = 0.25 - всегда меньше 1

P.S.
В формате bin: пример 0.1, где ноль означает знак, а при знаке 1 - числа представляются в дополнительном коде.
Пример для сетки 8р
+ 0.5 (dec) == 0.1000000 (bin)
- 0.5 (dec) == 1.0111111 + 1 == 1.1000000 (bin)
Go to the top of the page
 
+Quote Post
V_G
сообщение Feb 13 2016, 14:37
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



1.15 знаковый по модулю не превышает 1. Вообще в знаковых форматах старший разряд имеет отрицательный вес (-32768 в формате 16.0 и -1 в формате 1.15)
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 13 2016, 14:47
Сообщение #27





Guests






Ну.. Тогда мы "изобретали" все впервой и не до стандартов было, их просто не было.

>Формат 1.15 - это когда 1 разряд в целой части, а остальные 15 - в дробной.

Мы целой частью не пользовались, числа были принципиально меньше 1.0 - я это специально уточняю.
Старший разряд, есс-но - знаковый.
Go to the top of the page
 
+Quote Post
Verizon
сообщение Feb 13 2016, 15:35
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 27-01-16
Пользователь №: 90 225



Цитата(TSerg @ Feb 13 2016, 14:33) *
Теперь, насчет усиления в (1)

Что нам мешает написать:

Y[i] = K * (a * Y[i-1] + b * X[i] (1)), где K - типа коэффициент усиления?
Ничто не мешает, как не мешает это и реализовать.
Все, что потребуется ( если говорим о целочисленных вычислениях) - это перейти к большей длине сетки, дабы не потерять значимые разряды или не влететь в переполнение.

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

Спасибо. Доходчиво.
Если рассуждать на уровне коэффициентов фильтра: можно же просто поделить все коэффициенты на наименьшее значение. Тем более, что они все симметричны. И что тогда? Очевидно фильтр останется прежним. Но если пересчитать так называемый "коэффициент" то он может измениться в сотню раз. Что получается. Один и тот же фильтр имеет разные коэффициенты усиления? Очевидно, что так рассуждать нельзя. Скорее всего к фильтру можно применять фразу масштабирование. Будут-ли такие рассуждения тоже корректны?

Цитата
Продолжая учебник,
можно сказать, что понятное вам 16-разрядное целое число имеет формат 16.0, т.е. все разряды располагаются слева от разделителя целой и дробной части и имеют веса 1,2,4,8 и т.д. Формат 1.15 - это когда 1 разряд в целой части, а остальные 15 - в дробной. Веса разрядов справа от точки будут соответственно 1/2, 1/4, 1/8 и т.д. Точно также в десятичной системе веса цифр в целой части равны положительным степеням десятки, а в дробной - отрицательным.
И все это - форматы с фиксированной точкой.

Спасибо. Понятно.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 13 2016, 15:42
Сообщение #29





Guests






Цитата(Verizon @ Feb 13 2016, 18:35) *
Спасибо. Доходчиво.
Если рассуждать на уровне коэффициентов фильтра: можно же просто поделить все коэффициенты на наименьшее значение.


Вы просто не путайте математику ЦОС и ее реализацию на абстрактных, тем более - конкретных платформах + "свои" алгоритмы на каждой из них.

P.S.
Вы, "нормальные" книжки/учебники по ЦОС (DSP) читать не пробовали?
Позвольте, но это же увлекательнейшее занятие!

Гольденберг, Блейхут, Рорабаух, Голд, Рейдер, Рабинер, ...etc
Go to the top of the page
 
+Quote Post
Verizon
сообщение Feb 13 2016, 16:40
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 27-01-16
Пользователь №: 90 225



Цитата(TSerg @ Feb 13 2016, 17:42) *
Вы просто не путайте математику ЦОС и ее реализацию на абстрактных, тем более - конкретных платформах + "свои" алгоритмы на каждой из них.

P.S.
Вы, "нормальные" книжки/учебники по ЦОС (DSP) читать не пробовали?
Позвольте, но это же увлекательнейшее занятие!

Гольденберг, Блейхут, Рорабаух, Голд, Рейдер, Рабинер, ...etc

Да. Понятно. Не то.
Книжки читаю. Наскоками. Возня с железом занимает много времени. Там тоже свои приколы с которыми нужно возиться...
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 15:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01466 секунд с 7
ELECTRONIX ©2004-2016