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

То есть усиление на разных участках полосы пропускания неодинаковое. Как быть с этим?
В QED2000, да по-моему и в Matlab тоже, есть возможность вычисления коэффициентов фильтра по АЧХ, задаванной по точкам. Правда сам я с такими фильтрами не работал.
к сожалению я с подобными фильтрами не работал. В принципе любой ркурсивный фильтр (как правило) проектируют из биквадратных звеньев. Их реализация есть, но все равно порядок и коэффициэнты придется расчитывать под вашу конкретную задачу.
Самурай
Oct 9 2006, 14:04
Так все-таки, какой диапазон частот надо усиливать?
Вот этот:
Цитата
Нужно усилить средние частоты (500 - 1500 Гц). Этот фильтр предназначен для такого усиления.
Или:
Цитата
Уточнение:
частотная характеристика фильтра такая: от 0 дБ на 1кГц плавно до 6.5 дБ на 2 кГц и вниз до 0 дБ на 4кГц.
А может вполне подойдет фильтр вот с такой АЧХ (см. прикрепленный файл)?
Суть в том, чтоб создать фильтр наподобие Voice Presence (Boost) из CoolEdit. Нужно усилить "речевые" частоты.
Самурай
Oct 12 2006, 11:43
Ну, если нужен фильтр, абсолютно такой же как Voice Presence (Boost) из CoolEditа, то тогда наверно лучше всего смотреть в сторону Warped Filtering или Warped FFT.
Этот метод как раз и позволяет трансформировать линейную шкалу частот любого фильтра в нелинейную и в частности в логарифмическую (точнее в аппроксимацию, близкую к логарифмической).
В этом случае фильтр рассчитывается с применением любых известных средств (да хоть тот же Matlab) в линейной частотной шкале, а потом выполняется замена переменной z на ф-ю:
(1-a*z^-1)/(z^-1 - a),
где параметр a рассчитывается исходя из необходимой деформации частотной шкалы.
Вроде так.
В любом случае, в интернете очень много материала на эту тему.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.