Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

Частотный анализ звука   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
14-53259
Sten
2003-01-29 22:44
2003.02.17
LMD for D7!!! Дурайкий вопрос но......


1-52818
anbezr
2003-02-07 11:38
2003.02.17
Надо ли уничтожать TStringList


3-52719
Sherbacov
2003-01-29 16:22
2003.02.17
Сетевой paradox


1-53052
POT
2003-02-06 16:33
2003.02.17
Передача параметров в функции DLL написанной на С++


1-52869
Шоломицкий
2003-02-07 17:12
2003.02.17
Регионы форм!!!!!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский