Цитата(ivan219 @ Mar 4 2013, 09:42)

Не любите умножение?
Складывайте!Если сигнал представлен в целых числах то сдвинув на один бит в право мы делим его на 2 а если влево то умножаем.
Пример: есть сигнал S нам надо умножить его на 1.5 как это сделать?
Да просто 1.5 * S = S + S / 2 т.е. к исходному сигналу прибавили тот же сигнал только делённый на два!
Причем здесь люблю не люблю. Вопрос в оптимизации - минимизации вычислений на 8бит МК для получения спектра. Отсюда и желание уйти от дробных операций в целочисленные. Понятное дело что сдвиги дают умножение и деление.
Цитата
У вас немного не правильный ход мыслей. Вы в одну группу ставите цифровые фильтры, вейвлеты, Фурье и CIC… И к тому же сначала вы хотели методы фильтрации, потом вычисления спектра. Классификация должна делить на группы по определенным признакам, каждая группа в свою очередь делится на подгруппы и т.д. и т.п.
Да видимо вы правы наверно быстрее получить спектр черех FFT, чем вычислять ребенку из 20-ти 8-ми порядковых цифр БИХ. фильтров. Что-то я как-то зациклился на фильтрах. А ведь они наверняка только для фильтрации выделения какого либо сигнала и применяются. Просто на них я сразу глаз положил что можно в целочисленные операции вычисления перевести пересчитав коэффициенты.
Цитата
Например, по типу сигнала фильтры делятся на: цифровой и аналоговый; по виду передаточной функции: эллиптические, Баттерворта, Чебышева… цифровые фильтры можно разделить на: рекурсивные и нерекурсивные и т.п. В данном случае определитесь, что вы хотите знать, тогда и вопрос будет благозвучный, и не будет вызывать отторжения. А приводить полный список всех фильтров, которые только бывает, никто не будет.
Это все понятно - что есть и какое бывает.
Ну что мне нужно - нужно для MFCC получить 20 или чуть больше полос спектра. С минимальными вычислениями. И максимальной крутизной среза чтобы получить контрастностный спектр хорошего разрешения по частоте. Как будто у нас высокопорядковые фильтры. Для дальнейшего кидания этих признаков произнесенного слова на распознавания нейронной сетью, а потом может вычисления состояний через HMM для как можно точного распознавания голосовой команды.
На гребенке 20ти БИХ фильтров работает. Но хочу как можно быстрее все делать по вычислениям. Вот и крутится вопрос в голове как минимизировать вычисления да еще для 8ми битного МК который не любит операции с плавающей точкой.
Не дает моя голова покоя, все лучше и лучше хочет сделать. ))))
Цитата
Совет только один - найти книжку и почитать. Просветление наступит быстро, а за темными пятнами - сюда, потом.
Например:
S.L.Marple,Jr. Цифровой спектральный анализ и его приложения.
Мир, 1990.
Спасибо вечером с работы приду гляну что там. Но я уже столько всего пересмотрел голова квадратная, а ответа быстрее ли будет по вычислениям не могу себе дать нужно пробовать основные методы. Склоняюсь к тому как все делают. Вычисляют спектр через FFT потом накладывают 20 треугольных окон вот и получают гребенку фильтров или правильнее сказать спектров. Незнаю запарился нету опыта в таких делах оптимизации. Да и вообще в ЦОС.
Смотрел Лайноса по полифазному FFT как я понял там также нужно расчитывать фильтры 20 штук для получения 20ти полос спектра-фильтрации не уверен что будет быстрее вышеприведенного метода. Да еще там сигнал как я понял должен быть длиннее в зависимости от числа каналов. При 20 или 30 полосах это существенно. При 5ти может и лучше полифазное FFT. Незнаю буду дальше копать.