-
Есть у кого нить исходники? Или хотя бы теория по теме. Гуглится все очень не хорошо...
-
Щас тебе ответят FFT.
-
Мне уже отвтили... Только я не совсем понимаю, что делать с результатом работы FFT.
-
Ну ты получишь спектр, выделишь то, что тебе нада и потом обратное FFT.
-
-
ФВЧ(X) = X - ФНЧ(X) а ФНЧ(X) (нерекурсивный) = Sum[i] (X[curr-i]* C[i]) где C-коэффициенты
-
> [5] MBo © (18.12.07 09:29)
Можешь поподробнее расписать? А то я мало че понял...
-
простой пример - некий ФНЧ Y[i] := (X[i] * 3 + X[i-1] * 2 + X[i-2])/6 линейный сглаживающий фильтр по трем последним точкам коэфф. я взял от фонаря, и какая характеристика у фильтра будет - не скажу. ФВЧ Z[i] := X[i] - Y[i] в данном случае легко явно выразить Z[i] = (X[i] * 3 - X[i-1] * 2 - X[i-2])/6
моделирование RC-цепочки c затуханием Exp(-t/Tau) где Tau = RC Коэффициенты будут С[i] = Alpha^i, где Alpha = Exp(-dt/Tau) - затухание за квант времени рекурсивный фильтр Y[i] = Y[i-1] * Alpha + X[i] * (1-Alpha)
-
> @!!ex © (17.12.07 19:40)
Как вижу ты невнимательно ознакомился с рекомендованными тебе ссылками по теме вейвлеты Тема фильтрации там хорошо раскрыта и с примерами.
-
> [8] Jeer © (18.12.07 11:12)
Я еще и не разбирался... В процессе, пока поверхностно все смотрю, оч. сложно для меня...
P.S. Это вообще две несвязанные задачи изначально были. :) Я только совсем недавно понял, что для фильтра можно вэйвлеты использовать...
-
> Я только совсем недавно понял, что для фильтра можно вэйвлеты > использовать...
А чем не устраивают обычные IIR или FIR фильтры ?
-
> А чем не устраивают обычные IIR или FIR фильтры ?
ВОТ! Это чего не хватало, чтобы найти материала!!! нашел!!! ВСе!! Спасибо!!!
-
Финиш.. И зачем программисту математика ?
Mbo тебе выше на пальцах объяснил:)
Нерекурсивный фильтр == FIR Рекурсивный фильтр == IIR
-
> [12] Jeer © (18.12.07 12:09)
мне не хватало английского названия. :)
-
Как оказалось, ФВЧ делается просто усреднением значений.
-
>Как оказалось, ФВЧ делается просто усреднением значений. Нет, это скорее ФНЧ. Может, путаница из-за неоднозначноcти названия? ФНЧ пропускает низкие частоты и срезает высокие. В английском варианте понятнее ФНЧ = LPF (Low-pass filter), ФВЧ - HPF (high-pass)
-
> [15] MBo © (18.12.07 13:43)
Хм. Ятак понял, что как раз ФНЧ - это фильтр низких частот, тоесть обрезающий низкие частоты. По аналогии с фильтром шума, который убирает шум... Разве нет?
-
>Разве нет? Увы, нет. Терминология здесь неинтуитивная
-
> @!!ex © (18.12.07 14:24) [16]
Может найдем книжки по DSP (ЦОС), почитаем вдумчиво лет так 3 и все это время не будем тут гадать ? Или чтиво западло ? http://dsp-book.narod.ru/books.htmlНе, мне это нравится - "фильтр, убирающий шум":)) Какой именно шум (белый, розовый, синий, цветной) и шо за чудо-фильтр такой ?
-
-
> Sapersky (18.12.07 16:18) [19]
Полагаю, это Вы не для меня выложили. По большому счету нет разницы в каком базисе выполнять "фильтрацию" - частотном или временном, точно также как и выполнение фильтрации в частотном базисе может быть выполнено не только с использованием преобразования Фурье. Поэтому термин "фильтр, убирающий шум" не более чем словосочетание, относящееся к DSP. А если кто-то решил, что крапинки на изображении это и есть определение термина "шум" - в школу DSP.
-
> Может найдем книжки по DSP (ЦОС), почитаем вдумчиво лет > так 3 и все это время не будем тут гадать ? > Или чтиво западло ?
Чтови не западло. Уже несколько книг распечатал и вдумчиво читаю. Но задачи две. на решение одной - около недели, на решение второй - два месяца... И уж конечно у меня нет 3 лет.
-
> @!!ex © (18.12.07 17:51) [21]
Так расскажи, может действительно эти задачи яйца выеденного не стоят, а мы тут копья ломаем:)
-
> [22] Jeer © (18.12.07 18:35)
Первая сводится к удалению высоких частот из файла с музыкой. Нужна спец обработка файла для проекта. На это есть неделя.
Вторая - на вэйвлеты. Это с работой. Нужно построить разложение на спектр. для начала в 1D.
-
Jeer © (18.12.07 16:42) [20]Да, надо было уточнить, что это автору вопроса дополнительная информация. Подумал, что на примере обработки изображений будет понятнее, всё-таки он графикой занимался, и наверняка писал эти ФНЧ в виде шейдеров для блюра. Первая сводится к удалению высоких частот из файла с музыкой.В документе по ссылке рекомендуют (если без FT) Gaussian blur. http://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htmПример 1D-фильтра: Type TFilterBuffer = array [-MaxFilterSize..MaxFilterSize] of Single; // генерация "ядра" фильтра ("на лету" считать можно, но медленно) // Size - половина фильтра, т.е. 2 => -2..2 => по 5 точкам // Sigma - Gauss koeff, controls the strength of filter // NB: kernel size must be proportional to Sigma to get correct approximation, // e.g Sigma=1.5 -> Size=2, Sigma=2 -> Size=3, etc (лень переводить :) procedure GenGaussKernel(Size : Integer; Sigma : Single; Var Dst : TFilterBuffer); Var x : Integer; ss, DivVal, v : Single; begin ss:=2*Sqr(Sigma); DivVal:=(Sqrt(Pi2) * Sigma); v:=0; For x:=-Size to Size do begin Dst[x]:=Exp(-Sqr(x)/ss) / DivVal; v:=v + Dst[x]; end; v:=(1-v) / (Size * 2 + 1); For x:=-Size to Size do Dst[x]:=Dst[x] + v; end; // собственно фильтрация. Размер фильтра здесь жёстко забит s := Src.PStart; e := Src.PEnd; Dst.Data[s] := Src.Data[s]; Inc(s); Dst.Data[s] := Src.Data[s]; Inc(s); Dst.Data[e] := Src.Data[e]; Dec(e); Dst.Data[e] := Src.Data[e]; Dec(e); // начало и конец просто копируем For n:=s to e do begin sum:=0; For m:=-2 to 2 do sum:=sum + Src.Data[n+m] * lcmGaussKernel[m]; Dst.Data[n]:=sum; end; В сущности, MBo в [7] примерно это и предлагал, только там фильтр "половинчатый" и форма аппроксимируется грубее (хотя для 3 точек может и сойдёт).
-
@!!ex © (18.12.07 18:59) [23] > Первая сводится к удалению высоких частот из файла с музыкой.
Это не постановка задачи, а только ее начало. Как бы я примерно спросил:)
Требуется, разработать ФНЧ (LPF) для уменьшения доли верхних частот в музыкальных файлах формата wave ( к примеру ). Требования к фильтру: - регулируемая частота среза от [Fmin] до [Fmax], задаваемая по уровню 0.7 или - 3 dB; - частота дискретизации [исходная из файла] - допускаемая нелинейность фазо-частотной характеристики [5]% - крутизна спада АЧХ не менее [40] dB - неравномерность АЧХ в полосе пропускания не более [1] dB; - неравномерность в полосе задерживания [10] dB; - подавление сигнала в полосе задерживания не менее [-60] dB; - вносимый уровень шумов не более [-10] dB;
-
> Вторая - на вэйвлеты. Это с работой. Нужно построить разложение > на спектр. для начала в 1D.
Это тоже не постановка, а фривольное утверждение, что нужны вейвлеты для разложения чего-то на спектр. Чем FFT не угодил ?
-
> Это тоже не постановка, а фривольное утверждение, что нужны > вейвлеты для разложения чего-то на спектр. Чем FFT не угодил > ?
Фича в том, что у меня такая задача стоит. Это вообще практически дословно то, что мне сказали сделать. :) Там анализ волнового пространства для Геодезии. FFT у них реализован, но с ним проблемы из-за того, что всплески размазываются по всему спектру. Получается белый шум. В вэйвлетах это не так заметно, потому что размазываени всплеска локально.
> [25] Jeer © (19.12.07 11:24)
Проблема в том, что я уже вчера нарвался.... Оказалось, что копоративную информацию наших партнеров опубликовал... По всей фирме шухер. Поэтому не рискую задачу публиковать. поскольку там неординарная идея для которой фильтр нужен, и если конкуренты сдлают это раньше нас, будет очень "обидно".
Суть задачи в том, что нужно получить значение звуковые низкочастотыне в конкретный момент времени. одна из подзадач - синхронизировать колебание модели динамика с звуковой волной.
-
> синхронизировать колебание модели динамика с звуковой волной.
Понятно - гашение звука в локальном пространстве. Такие вещи есть и они работают.
> FFT у них реализован, но с ним проблемы из-за того, что > всплески размазываются по всему спектру. Получается белый > шум. В вэйвлетах это не так заметно, потому что размазываени > всплеска локально.
Честно говоря - набор звуков, не более того. Без обид. Ладно, трудись раб и мечтай о Сатрапии. :)
-
> Понятно - гашение звука в локальном пространстве. > Такие вещи есть и они работают.
Я знаю что они работают.. :)
> Честно говоря - набор звуков, не более того. > Без обид. > Ладно, трудись раб и мечтай о Сатрапии. :)
Стараюсь исправится, :)
-
Удалено модератором
|