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

 
 
> Методы фильтрации сигнала, получение частотных составляющих сигнала - спектра
TViT
сообщение Feb 27 2013, 09:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 1-12-06
Пользователь №: 23 016



Народ подскажите какие методы фильтрации сигнала существуют вообще. Кроме цифр фильтров, фурье в разных реализациях.

Вообще без использование синусов косинусов для описания гармонического сигнала есть что-то? Почему именно через длину окружности вычисление углов описывают сигналы.

Вот смотрел вроде что-то про CIC фильтры там без умножения на линиях задержки и сложения как я понял построено.
Вот что-то подобное как получить максимальную крутизну АЧХ фильтра, при этом минимальное кол-во вычисление сделать. Вопрос просто так ради интереса. Особа в этих сферах не копал.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ivan219
сообщение Mar 4 2013, 05:42
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 16-11-08
Пользователь №: 41 680



Не любите умножение?
Складывайте!
Принцип прост.
Если сигнал представлен в целых числах то сдвинув на один бит в право мы делим его на 2 а если влево то умножаем.

Пример: есть сигнал S нам надо умножить его на 1.5 как это сделать?
Да просто 1.5 * S = S + S / 2 т.е. к исходному сигналу прибавили тот же сигнал только делённый на два!
0.75 * S = S / 2 + S / 4 = S - S / 4;
.
.
.
А делить и умножать на 2, 4, 8...... я описал выше.
Go to the top of the page
 
+Quote Post
TViT
сообщение Mar 4 2013, 06:40
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 1-12-06
Пользователь №: 23 016



Цитата(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. Незнаю буду дальше копать.

Сообщение отредактировал TViT - Mar 4 2013, 06:59
Go to the top of the page
 
+Quote Post
STAR_IK
сообщение Mar 5 2013, 06:33
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 136
Регистрация: 10-04-09
Из: Омск
Пользователь №: 47 461



Цитата(TViT @ Mar 4 2013, 12:40) *
На гребенке 20ти БИХ фильтров работает. Но хочу как можно быстрее все делать по вычислениям. Вот и крутится вопрос в голове как минимизировать вычисления да еще для 8ми битного МК который не любит операции с плавающей точкой.

А что вы привязались к 8-битному контроллеру? Только потому что вы его знаете, а другие нет? Всегда контроллер выбирается под задачу, а не наоборот! 8ми битные контроллеры не предназначены для ЦОС. А от треугольных окон вы собираетесь уходить, используя банк фильтров вместо БПФ? Это на работу алгоритма не скажется впоследствии?

Цитата(TViT @ Mar 4 2013, 12:40) *
Смотрел Лайноса по полифазному FFT как я понял там также нужно расчитывать фильтры 20 штук для получения 20ти полос спектра-фильтрации не уверен что будет быстрее вышеприведенного метода. Да еще там сигнал как я понял должен быть длиннее в зависимости от числа каналов. При 20 или 30 полосах это существенно. При 5ти может и лучше полифазное FFT. Незнаю буду дальше копать.

Какие 20 штук фильтров? Нужно рассчитать только одно окно, которое длиннее окна БПФ в целое число раз. Там не сигнал должен быть длиннее, а окно БПФ будет короче. Почитайте еще это http://www.dsplib.ru/content/polyphasefft/polyphase.html
Go to the top of the page
 
+Quote Post
Kluwert
сообщение Mar 5 2013, 11:54
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639



Цитата(STAR_IK @ Mar 5 2013, 10:33) *
А что вы привязались к 8-битному контроллеру? Только потому что вы его знаете, а другие нет? Всегда контроллер выбирается под задачу, а не наоборот! 8ми битные контроллеры не предназначены для ЦОС. А от треугольных окон вы собираетесь уходить, используя банк фильтров вместо БПФ? Это на работу алгоритма не скажется впоследствии?


Эй, уважаемый, полегче на поворотах! Особенно с фразой " не предназначены для ЦОС". В корне неверная фраза. Докажу в пять минут: вспомните старые добрые АОНы. Ничего, что там выполнялась фильтрация и DTMF-детектирование с помощью алгоритма Гёрцеля пусть и на отсчётах с сильно пониженной разрядностью (вплоть до 1р.). А ваш покорный слуга успешно упихал в ATmega прогу, которая реагировала на хлопок в ладоши (не на любой громкий звук, а именно на хлопок!). И ничего влезло и не плохо работало. Так что не надо маленьких-восьмиразрядненьких обижать.

Насчёт "контроллер выбирается под задачу" верно, да не совсем, иначе тоже можно дойти до маразма. Знавал одного знакомого DSP'шника, которому подай обязательно плавающую запятую и программить он готов только с объектами в полном комфорте. В результате у чела ничего не получилось, он уволился, а в хитросплитении его классов мне теперь разбираться приходится sad.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TViT   Методы фильтрации сигнала   Feb 27 2013, 09:27
- - V_G   Для начала хотя бы 3 курса вуза по радиотехническо...   Feb 27 2013, 10:58
|- - TViT   Цитата(V_G @ Feb 27 2013, 14:58) Для нача...   Feb 27 2013, 11:12
- - thermit   ЦитатаTViT: Это не конструктивный ответ. Хотябы сс...   Feb 27 2013, 11:36
- - ivan219   Как это в CIC фильтре нет умножения??? Оно есть...   Feb 27 2013, 17:17
|- - TViT   Цитата(ivan219 @ Feb 27 2013, 21:17) Как ...   Feb 27 2013, 17:39
|- - Fat Robot   Найти "знающих людей", которые будут гот...   Feb 27 2013, 20:53
- - V_G   Цитата(TViT @ Feb 27 2013, 19:27) Вообще ...   Feb 28 2013, 02:53
|- - TViT   ЦитатаНайти "знающих людей", которые буд...   Feb 28 2013, 08:20
- - TSerg   Книжки по DSP читать не пробовали? А пора бы уже.   Feb 28 2013, 08:52
- - STAR_IK   Цитата(TViT @ Feb 28 2013, 14:20) Может м...   Mar 4 2013, 04:53
|- - TViT   Цитата(STAR_IK @ Mar 5 2013, 10:33) А что...   Mar 5 2013, 07:18
||- - STAR_IK   Цитата(TViT @ Mar 5 2013, 13:18) Значит ...   Mar 6 2013, 09:41
||- - TViT   Вот оно в чем дело.... Понятно. Хитро придумано...   Mar 6 2013, 16:42
|- - STAR_IK   Цитата(Kluwert @ Mar 5 2013, 17:54) Эй, у...   Mar 6 2013, 05:59
|- - SyncLair   Цитата(STAR_IK @ Mar 6 2013, 09:59) Задач...   Mar 7 2013, 12:07
|- - TViT   Цитата(SyncLair @ Mar 7 2013, 16:07) Эххх...   Mar 7 2013, 18:57
|- - TViT   Все Старик догнал, собственно вы все и расписали д...   Mar 8 2013, 15:18
- - TSerg   Совет только один - найти книжку и почитать. Просв...   Mar 4 2013, 05:45
- - TViT   Господа ненадо возвышаться друг перед другом, кажд...   Mar 6 2013, 07:25
- - STAR_IK   Окно Блэкмана или Хэмминга это тоже ИХ ФНЧ. Назнач...   Mar 7 2013, 02:54
- - TViT   А мне свертку делать моего вх буфера 384 сэмпла с ...   Mar 7 2013, 08:22


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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 12:06
Рейтинг@Mail.ru


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