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

 
 
 
Reply to this topicStart new topic
lib
сообщение Oct 2 2006, 09:50
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Как произвести фильтрацию звукового сигнала в реальном времени? Фильтр boost, усиление средних частот.
Подскажите, где лучше почитать о фильтрации сигнала в реальном времени?
Спасибо.
Go to the top of the page
 
+Quote Post
Misa
сообщение Oct 2 2006, 10:28
Сообщение #2


Участник
*

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



Что вас конкретно интересует по фильтрации звукового сигналла ? алгоритмы, процессоры..., что такое фильтр boost ?
по цифровым фильтрам масса литературы, я бы порекомендовал Рабинера Голда
Go to the top of the page
 
+Quote Post
lib
сообщение Oct 2 2006, 10:37
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Алгоритмы, их исходники на С.
Нужно усилить средние частоты (500 - 1500 Гц). Этот фильтр предназначен для такого усиления.
Go to the top of the page
 
+Quote Post
Misa
сообщение Oct 2 2006, 12:00
Сообщение #4


Участник
*

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



для вашей задачи обработки звука подойдет рекурсивный фильтр.
Для начала ознакомтесь с алгоритмами и структурой фильтра, для этого вполне подойдет Рабинер и Голд ( книга в инете есть). Изучив структуру, алгоритм на Си напишется без проблем. Главной задачей проектирования фильтра - расчет коэффициэнтов, и выбор структуры фильтра. Для этого вам необходим Matlab. Быстрее и понятнее если воспользуетесь инструментом FDATool (он находится в Simulink) для проектирования фильтров (почитайте help). Далее для симуляции воспользуйтесь Simulink. Это один из путей проектирования цифровых фильтров.
Go to the top of the page
 
+Quote Post
lib
сообщение Oct 5 2006, 16:46
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Уточнение:
частотная характеристика фильтра такая: от 0 дБ на 1кГц плавно до 6.5 дБ на 2 кГц и вниз до 0 дБ на 4кГц.
То есть усиление на разных участках полосы пропускания неодинаковое. Как быть с этим? Есть ли готовые реализации на С таких фильтров, ибо разбираться в тонкостях и реализовывать, к сожалению, нет времени.
Go to the top of the page
 
+Quote Post
hobgoblin
сообщение Oct 6 2006, 06:14
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 2-10-06
Из: Петербург
Пользователь №: 20 881



Цитата(lib @ Oct 5 2006, 20:46) *
То есть усиление на разных участках полосы пропускания неодинаковое. Как быть с этим?

В QED2000, да по-моему и в Matlab тоже, есть возможность вычисления коэффициентов фильтра по АЧХ, задаванной по точкам. Правда сам я с такими фильтрами не работал.
Go to the top of the page
 
+Quote Post
Misa
сообщение Oct 6 2006, 08:24
Сообщение #7


Участник
*

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



к сожалению я с подобными фильтрами не работал. В принципе любой ркурсивный фильтр (как правило) проектируют из биквадратных звеньев. Их реализация есть, но все равно порядок и коэффициэнты придется расчитывать под вашу конкретную задачу.
Go to the top of the page
 
+Quote Post
Самурай
сообщение Oct 9 2006, 14:04
Сообщение #8


Местный
***

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



Так все-таки, какой диапазон частот надо усиливать?

Вот этот:

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


Или:

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


А может вполне подойдет фильтр вот с такой АЧХ (см. прикрепленный файл)?
Go to the top of the page
 
+Quote Post
lib
сообщение Oct 9 2006, 14:28
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Суть в том, чтоб создать фильтр наподобие Voice Presence (Boost) из CoolEdit. Нужно усилить "речевые" частоты.
Go to the top of the page
 
+Quote Post
Самурай
сообщение Oct 12 2006, 11:43
Сообщение #10


Местный
***

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



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

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

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

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

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

Вроде так.

В любом случае, в интернете очень много материала на эту тему.

Сообщение отредактировал Самурай - Oct 12 2006, 11:45
Go to the top of the page
 
+Quote Post

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

 


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


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