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

 
 
> Цифровой фильтр
Olegovich
сообщение Mar 11 2005, 10:08
Сообщение #1


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

Группа: Свой
Сообщений: 131
Регистрация: 3-03-05
Из: Санкт-Петербург
Пользователь №: 3 037



Надо сделать программную фильтрацию звукового сигнала.
Имеется массив отсчетов сигнала с частотой 44100 Гц.
Как запрограммировать полосовой фильтр, чтоб можно было выделять из сигнала частоты 1-10 кГц, и менять его параметры на лету?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
SPS
сообщение Mar 11 2005, 10:14
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 8-02-05
Из: Ukraine
Пользователь №: 2 501



Цитата(Olegovich @ Mar 11 2005, 12:08)
Надо сделать программную фильтрацию звукового сигнала.
Имеется массив отсчетов сигнала с частотой 44100 Гц.
Как запрограммировать полосовой фильтр, чтоб можно было выделять из сигнала частоты 1-10 кГц, и менять его параметры на лету?
*


Использовать прямые и обратные преобразования Фурье.
Go to the top of the page
 
+Quote Post
Olegovich
сообщение Mar 11 2005, 10:19
Сообщение #3


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

Группа: Свой
Сообщений: 131
Регистрация: 3-03-05
Из: Санкт-Петербург
Пользователь №: 3 037



Цитата(SPS @ Mar 11 2005, 13:14)
Использовать прямые и обратные преобразования Фурье.
*


Делать преобразование. а потом по мощности в полосе делать вывод?
Может быть, быстрее и надежнее делать свертку с некой импульсной характеристикой фильтра? только вот как её рассчитывать?
Go to the top of the page
 
+Quote Post
sergunas
сообщение Mar 11 2005, 11:04
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373



почитай азы цифровых фильтров, наверняка в инете этой инфы достаточно
Go to the top of the page
 
+Quote Post
angir
сообщение Mar 11 2005, 11:53
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 49
Регистрация: 8-02-05
Из: 61RUS
Пользователь №: 2 510



Все зависит от доступных вам вычислительных ресурсов. Можно использовать как КИХ так и БИХ фильтры, все зависит от того, что вы хотите получить. Параметры и тех и других, естественно, можно менять на лету, правда, сталкиваясь при этом с некоторыми переходными процессами ж-)
Для расчета коэффициентов можно воспользоваться специальными программами, тем же matlab, например.
Go to the top of the page
 
+Quote Post
SPS
сообщение Mar 11 2005, 13:31
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 8-02-05
Из: Ukraine
Пользователь №: 2 501



Цитата(angir @ Mar 11 2005, 13:53)
Для расчета коэффициентов можно воспользоваться специальными программами, тем же matlab, например.
*


Или Mathcad.
Go to the top of the page
 
+Quote Post
Alhen
сообщение Mar 11 2005, 18:08
Сообщение #7


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

Группа: Свой
Сообщений: 161
Регистрация: 17-08-04
Из: Караганда
Пользователь №: 516



Цитата(SPS @ Mar 11 2005, 16:31)
Цитата(angir @ Mar 11 2005, 13:53)
Для расчета коэффициентов можно воспользоваться специальными программами, тем же matlab, например.
*


Или Mathcad.
*



А что действительно, реально у MathCad-а появился синтезатор фильтров наподобии MatLab-Simulink?
А по существу вопроса, на данном форуме про это много сказано, и если взять и как-то это кратко описать то получится следующее.
1) Запускаем MatLab и в Simulink-е выбираем в разделе DSP инструмент Filter Design.
2) Выбираем тип Фильтра, в нашем случае полосовой с заданным интервалом частот и наклоном характеристик. Чем круче наклон тем больше коэфициентов.
3) Нажимаем на кнопочку Design Filter и получем набор коэффициентов.
4) Смотрим на расчетные характеристики и если они хороши - срисовываем коэффициенты и блок схему вычислений (ее тоже можно посмотреть в соответствующем окошке)
5) Берем подходящий DSP процессор и реализуем схему вычислений с коэффициентами.
Все должно работать в реальном времени (конечно если количество коэффициентов и быстродействие позволяет т.е. здесь надо найти оптимум). Кроме того синтезированный и реальный фильтр могут отличаться из-зи ошибок округления в DSP процессоре, но у MatLab есть возможность подстроиться по ограничения процессора и протестить реальные характеристики. И наконец на некоторые процессоры он может сгенерить програмный код так что 5 пункт будет упрощен.
Go to the top of the page
 
+Quote Post
Dmitron
сообщение Apr 8 2005, 15:41
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 627
Регистрация: 24-03-05
Из: Севастополь
Пользователь №: 3 655



Не могу себя назвать спецом по DSP, но отвечу.
Цифровой фильтр - аналог аналогового. Так вот, в аналоговой технике берут вначале ФВЧ ставят, потом ФНЧ. Я бы предложил разделить ФВЧ и ФНЧ операции, таким образом можно отдельно менять параметры по полосе сверху и снизу. И рассчётные формулы вывести можно(если нужно). В БИХ фильтре загруженность проца и обьём оперативы будет определяться порядком фильтра.

Анекдот по теме: два студента разговаривают:
- а у меня дипломный проект на основе дэ - эс - пи.
- Круто, DSP - цифровая обработка - нынче модно!!!
- да не! дэ - эс - пи - древесно стружечная плита.


--------------------
Решаю любые проблемы кроме своих
(dmitron1036()mail.ru)
http://uselect-el.ucoz.com
Go to the top of the page
 
+Quote Post
ARTI
сообщение Apr 26 2005, 04:50
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 25-04-05
Пользователь №: 4 468



Для расчёта коэффициентов КИХ или БИХ фильтров ( с БИХ фильтрами я не связывался) можно например использовать Matlab. Там есть различные варианты расчета коэффициентов. Например в command window набираете fdatool, откроется окошко и в нем можно делать все. Можно спроектировать фильтр в Simulink(это тоже есть в Matlab-e), и там же с вашими данными помоделировать его работу. Дерзайте. Будут вопросы обращайтесь.

Удачи.
Go to the top of the page
 
+Quote Post
fontp
сообщение Apr 26 2005, 09:46
Сообщение #10


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Мне показалось что он хочет рассчитывать фильтр на лету, а не в Матлабе

В сети можно найти готовые программы
КИХ-фильтр лучше считать по Ремезу (или McClellan-Parks что то же самое) - короче будет
С-код есть здесь http://www.janovetz.com/jake/ под именем remez///zip
Можно конечно и по Фурье с окном ....
Здесь полно обучающего материала http://www.nauticom.net/www/jdtaft/
по расчёту цифровых фильтров
Go to the top of the page
 
+Quote Post
Eugeno
сообщение Apr 26 2005, 12:22
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 19
Регистрация: 12-04-05
Из: Таганрог, Ростовской обл.
Пользователь №: 4 048



Цитата(fontp @ Apr 26 2005, 12:46)
Мне показалось что он хочет рассчитывать фильтр на лету, а не в Матлабе
...

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

Остаётся переходной процесс: если позволяет производительность, то можно на период переходного процесса прогонять сигнал двумя фильтрами параллельно, выдавая на выход сигнал со старого фильтра, после некоторого времени начать выдавать результат с нового фильтра, а старый перестать просчитывать.
Go to the top of the page
 
+Quote Post
ipbatman
сообщение Jul 9 2009, 14:31
Сообщение #12





Группа: Новичок
Сообщений: 7
Регистрация: 6-10-06
Пользователь №: 21 052



Возможна ли реальзация полосового фильтра в "не реальном масштабе" времени? Т.е. принимаю массивы отсчетов -> обрабатываю -> выдаю на кодек.
Go to the top of the page
 
+Quote Post
Herz
сообщение Jul 9 2009, 16:08
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(ipbatman @ Jul 9 2009, 16:31) *
Возможна ли реальзация полосового фильтра в "не реальном масштабе" времени? Т.е. принимаю массивы отсчетов -> обрабатываю -> выдаю на кодек.

А какие проблемы? В "нереальном" всё гораздо проще. Хоть заново сигнал синтезируй. biggrin.gif
Go to the top of the page
 
+Quote Post
rsv
сообщение Jul 10 2009, 18:05
Сообщение #14


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

Группа: Свой
Сообщений: 119
Регистрация: 16-07-07
Из: Тула
Пользователь №: 29 160



может стоит попробовать адаптивный эквалайзер?
конечно, их основное применение в технике связи, но тем не менее может и вам подойти
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 11 2009, 07:40
Сообщение #15


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Olegovich @ Mar 11 2005, 04:19) *
Делать преобразование. а потом по мощности в полосе делать вывод?
Может быть, быстрее и надежнее делать свертку с некой импульсной характеристикой фильтра? только вот как её рассчитывать?


надежнее может быть, но видел в книге по ЦОС что начиная где то с 64 го порядка (для комплексных чисел) сделать свертку сигнала с ИХ фильтра в частотной области дешевле и быстрее с помошью БПФ. Быстрее в смысле количества операций %)


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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