Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Фильтрация звука в реальном времени
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
lib
Как произвести фильтрацию звукового сигнала в реальном времени? Фильтр boost, усиление средних частот.
Подскажите, где лучше почитать о фильтрации сигнала в реальном времени?
Спасибо.
Misa
Что вас конкретно интересует по фильтрации звукового сигналла ? алгоритмы, процессоры..., что такое фильтр boost ?
по цифровым фильтрам масса литературы, я бы порекомендовал Рабинера Голда
lib
Алгоритмы, их исходники на С.
Нужно усилить средние частоты (500 - 1500 Гц). Этот фильтр предназначен для такого усиления.
Misa
для вашей задачи обработки звука подойдет рекурсивный фильтр.
Для начала ознакомтесь с алгоритмами и структурой фильтра, для этого вполне подойдет Рабинер и Голд ( книга в инете есть). Изучив структуру, алгоритм на Си напишется без проблем. Главной задачей проектирования фильтра - расчет коэффициэнтов, и выбор структуры фильтра. Для этого вам необходим Matlab. Быстрее и понятнее если воспользуетесь инструментом FDATool (он находится в Simulink) для проектирования фильтров (почитайте help). Далее для симуляции воспользуйтесь Simulink. Это один из путей проектирования цифровых фильтров.
lib
Уточнение:
частотная характеристика фильтра такая: от 0 дБ на 1кГц плавно до 6.5 дБ на 2 кГц и вниз до 0 дБ на 4кГц.
То есть усиление на разных участках полосы пропускания неодинаковое. Как быть с этим? Есть ли готовые реализации на С таких фильтров, ибо разбираться в тонкостях и реализовывать, к сожалению, нет времени.
hobgoblin
Цитата(lib @ Oct 5 2006, 20:46) *
То есть усиление на разных участках полосы пропускания неодинаковое. Как быть с этим?

В QED2000, да по-моему и в Matlab тоже, есть возможность вычисления коэффициентов фильтра по АЧХ, задаванной по точкам. Правда сам я с такими фильтрами не работал.
Misa
к сожалению я с подобными фильтрами не работал. В принципе любой ркурсивный фильтр (как правило) проектируют из биквадратных звеньев. Их реализация есть, но все равно порядок и коэффициэнты придется расчитывать под вашу конкретную задачу.
Самурай
Так все-таки, какой диапазон частот надо усиливать?

Вот этот:

Цитата
Нужно усилить средние частоты (500 - 1500 Гц). Этот фильтр предназначен для такого усиления.


Или:

Цитата
Уточнение:
частотная характеристика фильтра такая: от 0 дБ на 1кГц плавно до 6.5 дБ на 2 кГц и вниз до 0 дБ на 4кГц.


А может вполне подойдет фильтр вот с такой АЧХ (см. прикрепленный файл)?
lib
Суть в том, чтоб создать фильтр наподобие Voice Presence (Boost) из CoolEdit. Нужно усилить "речевые" частоты.
Самурай
Ну, если нужен фильтр, абсолютно такой же как Voice Presence (Boost) из CoolEditа, то тогда наверно лучше всего смотреть в сторону Warped Filtering или Warped FFT.

Этот метод как раз и позволяет трансформировать линейную шкалу частот любого фильтра в нелинейную и в частности в логарифмическую (точнее в аппроксимацию, близкую к логарифмической).

В этом случае фильтр рассчитывается с применением любых известных средств (да хоть тот же Matlab) в линейной частотной шкале, а потом выполняется замена переменной z на ф-ю:

(1-a*z^-1)/(z^-1 - a),

где параметр a рассчитывается исходя из необходимой деформации частотной шкалы.

Вроде так.

В любом случае, в интернете очень много материала на эту тему.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.