|
Цифровой фильтр |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 15)
|
Mar 11 2005, 10:14
|
Участник

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

|
Цитата(Olegovich @ Mar 11 2005, 12:08) Надо сделать программную фильтрацию звукового сигнала. Имеется массив отсчетов сигнала с частотой 44100 Гц. Как запрограммировать полосовой фильтр, чтоб можно было выделять из сигнала частоты 1-10 кГц, и менять его параметры на лету? Использовать прямые и обратные преобразования Фурье.
|
|
|
|
|
Mar 11 2005, 10:19
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 3-03-05
Из: Санкт-Петербург
Пользователь №: 3 037

|
Цитата(SPS @ Mar 11 2005, 13:14) Использовать прямые и обратные преобразования Фурье. Делать преобразование. а потом по мощности в полосе делать вывод? Может быть, быстрее и надежнее делать свертку с некой импульсной характеристикой фильтра? только вот как её рассчитывать?
|
|
|
|
|
Mar 11 2005, 11:53
|
Участник

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

|
Все зависит от доступных вам вычислительных ресурсов. Можно использовать как КИХ так и БИХ фильтры, все зависит от того, что вы хотите получить. Параметры и тех и других, естественно, можно менять на лету, правда, сталкиваясь при этом с некоторыми переходными процессами ж-) Для расчета коэффициентов можно воспользоваться специальными программами, тем же matlab, например.
|
|
|
|
|
Mar 11 2005, 13:31
|
Участник

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

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

Частый гость
 
Группа: Свой
Сообщений: 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 пункт будет упрощен.
|
|
|
|
|
Apr 26 2005, 04:50
|
Участник

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

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

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

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

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

|
Цитата(fontp @ Apr 26 2005, 12:46) Мне показалось что он хочет рассчитывать фильтр на лету, а не в Матлабе ... Как вариант - расчитать коэффициенты для предопределённого набора разных фильтров. Далее на ходу выбирать необходимый набор. Остаётся переходной процесс: если позволяет производительность, то можно на период переходного процесса прогонять сигнал двумя фильтрами параллельно, выдавая на выход сигнал со старого фильтра, после некоторого времени начать выдавать результат с нового фильтра, а старый перестать просчитывать.
|
|
|
|
|
Jul 9 2009, 14:31
|
Группа: Новичок
Сообщений: 7
Регистрация: 6-10-06
Пользователь №: 21 052

|
Возможна ли реальзация полосового фильтра в "не реальном масштабе" времени? Т.е. принимаю массивы отсчетов -> обрабатываю -> выдаю на кодек.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|