Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизЧастотный анализ звука Найти похожие ветки
← →
Nick_N_A (2003-01-29 06:56) [0]Не знает ли кто-нибудь как отделить в wav-форме отдельные частоты, как сделать своеобразный математический фильтр,
или может что собой представляет катушка и конденсатор
с мат. точки зрения.
У меня пока получилось фильтровать только один диапазон частот,
вышло что
g(x)=|f(x)-f(x+1)| - убирает нижние частоты
h(x)=(f(x)+f(x+1))/2 - сглаживание - уберает верние частоты
а g(x)/h(x) - остаются только самые низкие частоты, ничего кроме
низких ударных
как бы этот фильтр перестроить на другую частоту?
← →
Digitman (2003-01-29 08:30) [1]а чем тебе не нравится FFT-алгоритм ?
← →
Nick_N_A (2003-01-30 05:11) [2]Простите, я о нем первый раз слышу, а с чем его едят ?
← →
trotski (2003-01-30 06:34) [3]После проведения над твоей функцией "амплитуда от времени" быстрого преобразования Фурье (БПФ=FFT) ты получишь функцию "амплитуда от частоты" - спектр. С ним поработаешь, потом обратное рпеобразование проведешь и все. В инете инфы много по этому поводу
← →
Digitman (2003-01-30 08:43) [4]
> Nick_N_A
FFT - быстрое преобразование Фурье. В сети навалом готовых реализаций алгоритмов прямого и обратного преобразования. Достаточно набрать "FFT" - и любая поисковая система завалит тебя ссылками, "выбирай - не хочу")
Весьма неплоха реализация этих алгоритмов в Intel Signal Processing Library, ибо там на полную мощь используется MMX-расширение системы команд CPU i80x86. Зайди на сайт Intel"а.
Если хочешь реализовать эти алгоритмы собственными силами, могу здесь же привести краткие тезисы теории Фурье в части инетересующих тебя гарм. анализа/синтеза, с ключевыми матем.формулами в привязке к дискретной обработке.
← →
REA (2003-01-30 11:19) [5]FFT штука хорошая, но медленная и непредсказуемая. Я сделал себе фильтр, но как-то он не так работает как хочется. Или руки кривые у меня. А насчет навалом - на Delphi не так уж и много. Да и на C тоже не слишком под x86.
← →
Ketmar (2003-01-30 11:29) [6]>REA © (30.01.03 11:19)
"математика штука хорошая, но медленная и непредсказуемая". в орешник.
Satanas Nobiscum! 30-Jan-XXXVIII A.S.
← →
Digitman (2003-01-30 12:13) [7]
> REA
))... да уж, математика - это такая хрень, что лучше не трогать ее "кривыми руками")
> А насчет навалом - на Delphi не так уж и много
Ищи и обрящешь) .. Та же IntelSPL в штатной поставке содержит достаточно неплохой демо-проект для Делфи, где наглядно демонстрируется программное использование практически всех возможностей продукта
> Да и на C тоже не слишком под x86.
Язык-то здесь причем ? Высококачественная обработка должна выполняться в основном с использованием FPU-инструкций, что без задействования SSE/MMX-сабсета действительно проблематично в плане высокой производительности
← →
Jeer (2003-01-30 12:33) [8]На самом деле, корректное использование FFT требует усилий.
Да и алгоритмически (если говорить о FFT) сложно.
Возможно стоит воспользоваться рекурсивными или нерекурсивными фильтрами
Рекурсивный фильтр 2-го порядка получаемый из звена второго порядка H(s) = Wa/(s^2+Wa^2)
методом билинейного Z-преобразования s= (2/T)*(1-Z^(-1))/(1+Z^(-1))
в разностном уравнении выглядит так
y(i) = G*x(i)+b1*y(i-1)+b2*y(i-2)
где
T - период дискретизации
a = R/(2*L)
Wc = ((1/(L*C))-(R/(2*L)^2))^0.5
b1 = 2*exp(-a*T)*Cos(Wc*T)
b2 = -exp(-2*a*T)
G = (1/Wc)*(a/(L*C))*exp(-a*T)*Sin(Wc*T)
R,L,C - параметры контура (можно перейти от R к добротности)
← →
Jeer (2003-01-30 12:43) [9]Нерекурсивный фильтр еще проще:))
Это взвешенная сумма отсчетов
y(i) = sum (a(i)*x(i))
i = 0..N-1
В наиболее простом случае (проектирование методом частотной выборки) коф-ты рассчитываются как коэф-ты Фурье умноженные на одну из оконных функций (Хемминга, Хариса, Блэкмана и тп)
Хемминг
w(i) = 0.54 + 0.46*Cos(2*PI*i/(N-1))
← →
Ketmar (2003-01-30 12:48) [10]>Jeer © (30.01.03 12:33)
ну нельзя же с утра и так жестоко... %-)
Satanas Nobiscum! 30-Jan-XXXVIII A.S.
← →
Nick_N_A (2003-01-31 05:41) [11]Jeer>Спасибо большое
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.01 c