2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. На страницу Пред.  1, 2
 
 Re: умножение int на 0.9999 без использования float
Сообщение27.05.2018, 14:00 


07/10/15

2400
realeugene в сообщении #1315165 писал(а):
... Не думаю, что вам нужно, чтобы этот коэффициент был точный. Скорее всего, он нужен слегка меньше единицы, чтобы исправить погрешности округления других ваших коэффициентов.


Так и есть, но это"слегка" много на что влияет, и дело тут совсем не в исправлении погрешностей квантования. Эти погрешности, наоборот, делают фильтр устойчивым на слабых входных сигналах, даже при $k=1$. Другими словами есть оптимальное значение $k$, примерно равное 0.9999 - 0.99999, в этом диапазоне, разумеется, оно может меняться более - менее произвольно, например можно взять $k=0.9999271$ - просто из удобства вычислений.

С советом почитать Оппенгейм, Шафер "Цифровая обработка сигналов" Вы слегка западали, думаю лет на 15 ... ,
но всё равно спасибо.

 Профиль  
                  
 
 Re: умножение int на 0.9999 без использования float
Сообщение27.05.2018, 16:51 


27/08/16
10213
В интересном вам диапазоне есть несколько чисел вида $k=1-2^n$. С такими коэффициентами можно обойтись вообще без умножений, одними сдвигами и сложениями/вычитаниями. $n=16$ очень удобный вариант. Но что же это у вас за задача такая, для которой критически важны настолько слабо задемпфированные полюса? Да ещё на AVR?

Книжка Оппенгейма с Шафером за последние 40 лет нисколько не устарела. В ней как раз подробно разбираются эффекты квантования как коэффициентов, так и промежуточных результатов цифровых фильтров.

 Профиль  
                  
 
 Re: умножение int на 0.9999 без использования float
Сообщение27.05.2018, 19:24 


07/10/15

2400
Задача синтеза фильтра с целочисленными коэффициентами не нова, и актуальна именно для МК и только по причине ограниченности вычислительных ресурсов. Здесь преследуется одна единственная цель - оптимизация вычислений.

и да, разумеется, книга эта нисколько не устарела, чего, к сожалению, о себе сказать не могу ...

 Профиль  
                  
 
 Re: умножение int на 0.9999 без использования float
Сообщение27.05.2018, 23:33 


27/08/16
10213
Andrey_Kireew
Если вы реализуете БИХ с такими высокодобротными полюсами и с 16-разрядными переменными состояния, то вы, в любом случае, делаете что-то не то и не так.

Возможно, вы задали чересчур жёсткие требования для своего фильтра. У этого близкого к возбуждению полюса, ведь, добротность скорее всего огромная, соответственно, переходные процессы в вашем фильтре будут длиться очень долго. Не знаю, что у вас за задача, но сильно сомневаюсь, что вам, на самом деле, нужен подобный фильтр, если вы сами точно не понимаете, как его можно было бы аккуратно реализовать. Может быть, на самом деле, вам нужно выкинуть всё это нафиг и сделать проще?

 Профиль  
                  
 
 Re: умножение int на 0.9999 без использования float
Сообщение28.05.2018, 13:50 


07/10/15

2400
realeugene в сообщении #1315428 писал(а):
Andrey_Kireew
... то вы, в любом случае, делаете что-то не то и не так.

... не знаю, что у вас за задача, но сильно сомневаюсь, что вам, на самом деле, нужен подобный фильтр ....
... на самом деле, вам нужно выкинуть всё это нафиг ....


Я не совсем понимаю какое отношение ваши вопросы, догадки и хамские советы имеют к теме данного поста и какие цели вы преследуете оставляя их здесь. Ели вам нечего сообщить по существу - не нужно засорять контент. Тем более, что проблема уже решена и offtop тут совсем неуместен.

 Профиль  
                  
 
 Re: умножение int на 0.9999 без использования float
Сообщение28.05.2018, 14:49 
Заслуженный участник


09/05/12
25179
 ! 
Andrey_Kireew в сообщении #1315526 писал(а):
Я не совсем понимаю какое отношение ваши вопросы, догадки и хамские советы имеют к теме данного поста и какие цели вы преследуете оставляя их здесь.
По-видимому, предположение, что человек, пытающийся отвечать на заданный вопрос, пытается помочь спрашивающему, является слишком сложным. Andrey_Kireew, предупреждение за хамство. Тема закрыта.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group