Конференция "Media" » Фильтр высоких частот.
 
  • @!!ex © (17.12.07 19:40) [0]
    Есть у кого нить исходники?
    Или хотя бы теория по теме.
    Гуглится все очень не хорошо...
  • Efir (17.12.07 21:51) [1]
    Щас тебе ответят FFT.
  • @!!ex © (17.12.07 22:26) [2]
    Мне уже отвтили...
    Только я не совсем понимаю, что делать с результатом работы FFT.
  • Efir (18.12.07 00:42) [3]
    Ну ты получишь спектр, выделишь то, что тебе нада и потом обратное FFT.
  • @!!ex © (18.12.07 08:53) [4]
    Вроде е нужен FFT, как я понял...
    ТАм фильтры без FFT строятся.
    Хотя я еще не все прочитал:
    http://dasbook.ru/index.php?book=1653
  • MBo © (18.12.07 09:29) [5]
    ФВЧ(X) = X - ФНЧ(X)
    а ФНЧ(X) (нерекурсивный) = Sum[i] (X[curr-i]* C[i])
    где C-коэффициенты
  • @!!ex © (18.12.07 09:42) [6]
    > [5] MBo ©   (18.12.07 09:29)

    Можешь поподробнее расписать? А то я мало че понял...
  • MBo © (18.12.07 10:00) [7]
    простой пример -
    некий ФНЧ
    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)
  • Jeer © (18.12.07 11:12) [8]

    > @!!ex ©   (17.12.07 19:40)


    Как вижу ты невнимательно ознакомился с рекомендованными тебе ссылками
    по теме вейвлеты
    Тема фильтрации там хорошо раскрыта и с примерами.
  • @!!ex © (18.12.07 11:15) [9]
    > [8] Jeer ©   (18.12.07 11:12)

    Я еще и не разбирался...
    В процессе, пока поверхностно все смотрю, оч. сложно для меня...

    P.S.
    Это вообще две несвязанные задачи изначально были. :)
    Я только совсем недавно понял, что для фильтра можно вэйвлеты использовать...
  • Jeer © (18.12.07 11:58) [10]

    > Я только совсем недавно понял, что для фильтра можно вэйвлеты
    > использовать...


    А чем не устраивают обычные IIR или FIR фильтры ?
  • @!!ex © (18.12.07 12:02) [11]
    > А чем не устраивают обычные IIR или FIR фильтры ?

    ВОТ! Это чего не хватало, чтобы найти материала!!!
    нашел!!! ВСе!! Спасибо!!!
  • Jeer © (18.12.07 12:09) [12]
    Финиш..
    И зачем программисту математика ?

    Mbo тебе выше на пальцах объяснил:)

    Нерекурсивный фильтр == FIR
    Рекурсивный фильтр == IIR
  • @!!ex © (18.12.07 12:16) [13]
    > [12] Jeer ©   (18.12.07 12:09)

    мне не хватало английского названия. :)
  • @!!ex © (18.12.07 13:39) [14]
    Как оказалось, ФВЧ делается просто усреднением значений.
  • MBo © (18.12.07 13:43) [15]
    >Как оказалось, ФВЧ делается просто усреднением значений.
    Нет, это скорее ФНЧ. Может, путаница из-за неоднозначноcти названия?
    ФНЧ пропускает низкие частоты и срезает высокие. В английском варианте понятнее ФНЧ = LPF (Low-pass filter), ФВЧ - HPF (high-pass)
  • @!!ex © (18.12.07 14:24) [16]
    > [15] MBo ©   (18.12.07 13:43)

    Хм.  Ятак понял, что как раз ФНЧ - это фильтр низких частот, тоесть обрезающий низкие частоты. По аналогии с фильтром шума, который убирает шум...
    Разве нет?
  • MBo © (18.12.07 15:10) [17]
    >Разве нет?
    Увы, нет. Терминология здесь неинтуитивная
  • Jeer © (18.12.07 15:10) [18]

    > @!!ex ©   (18.12.07 14:24) [16]


    Может найдем книжки по DSP (ЦОС), почитаем вдумчиво лет так 3 и все это время не будем тут гадать ?
    Или чтиво западло ?
    http://dsp-book.narod.ru/books.html

    Не, мне это нравится - "фильтр, убирающий шум":))
    Какой именно шум (белый, розовый, синий, цветной) и шо за чудо-фильтр такой ?
  • Sapersky (18.12.07 16:18) [19]
  • Jeer © (18.12.07 16:42) [20]

    > Sapersky   (18.12.07 16:18) [19]


    Полагаю, это Вы не для меня выложили.
    По большому счету нет разницы в каком базисе выполнять "фильтрацию" - частотном или временном, точно также как и выполнение фильтрации в частотном базисе может быть выполнено не только с использованием преобразования Фурье.
    Поэтому термин "фильтр, убирающий шум" не более чем словосочетание, относящееся к DSP.
    А если кто-то решил, что крапинки на изображении это и есть определение термина "шум" - в школу DSP.
  • @!!ex © (18.12.07 17:51) [21]
    > Может найдем книжки по DSP (ЦОС), почитаем вдумчиво лет
    > так 3 и все это время не будем тут гадать ?
    > Или чтиво западло ?

    Чтови не западло. Уже несколько книг распечатал и вдумчиво читаю.
    Но задачи две. на решение одной - около недели, на решение второй - два месяца...
    И уж конечно у меня нет 3 лет.
  • Jeer © (18.12.07 18:35) [22]

    > @!!ex ©   (18.12.07 17:51) [21]


    Так расскажи, может действительно эти задачи яйца выеденного не стоят, а мы тут копья ломаем:)
  • @!!ex © (18.12.07 18:59) [23]
    > [22] Jeer ©   (18.12.07 18:35)

    Первая сводится к удалению высоких частот из файла с музыкой.
    Нужна спец обработка файла для проекта.
    На это есть неделя.

    Вторая - на вэйвлеты. Это с работой. Нужно построить разложение на спектр. для начала в 1D.
  • Sapersky (18.12.07 21:02) [24]
    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 точек может и сойдёт).
  • Jeer © (19.12.07 11:24) [25]
    @!!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;
  • Jeer © (19.12.07 12:56) [26]

    > Вторая - на вэйвлеты. Это с работой. Нужно построить разложение
    > на спектр. для начала в 1D.


    Это тоже не постановка, а фривольное утверждение, что нужны вейвлеты для разложения чего-то на спектр. Чем FFT не угодил ?
  • @!!ex © (19.12.07 14:34) [27]
    > Это тоже не постановка, а фривольное утверждение, что нужны
    > вейвлеты для разложения чего-то на спектр. Чем FFT не угодил
    > ?

    Фича в том, что у меня такая задача стоит.
    Это вообще практически дословно то, что мне сказали сделать. :)
    Там анализ волнового пространства для Геодезии.
    FFT у них реализован, но с ним проблемы из-за того, что всплески размазываются по всему спектру. Получается белый шум. В вэйвлетах это не так заметно, потому что размазываени всплеска локально.


    > [25] Jeer ©   (19.12.07 11:24)

    Проблема в том, что я уже вчера нарвался.... Оказалось, что копоративную информацию наших партнеров опубликовал... По всей фирме шухер.
    Поэтому не рискую задачу публиковать. поскольку там неординарная идея для которой фильтр нужен, и если конкуренты сдлают это раньше нас, будет очень "обидно".

    Суть задачи в том, что нужно получить значение звуковые низкочастотыне в конкретный момент времени.
    одна из подзадач - синхронизировать колебание модели динамика с звуковой волной.
  • Jeer © (19.12.07 17:22) [28]

    > синхронизировать колебание модели динамика с звуковой волной.


    Понятно - гашение звука в локальном пространстве.
    Такие вещи есть и они работают.


    > FFT у них реализован, но с ним проблемы из-за того, что
    > всплески размазываются по всему спектру. Получается белый
    > шум. В вэйвлетах это не так заметно, потому что размазываени
    > всплеска локально.


    Честно говоря - набор звуков, не более того.
    Без обид.
    Ладно, трудись раб и мечтай о Сатрапии. :)
  • @!!ex © (19.12.07 17:36) [29]
    > Понятно - гашение звука в локальном пространстве.
    > Такие вещи есть и они работают.

    Я знаю что они работают.. :)


    > Честно говоря - набор звуков, не более того.
    > Без обид.
    > Ладно, трудись раб и мечтай о Сатрапии. :)

    Стараюсь исправится, :)
  • имя (15.09.09 14:12) [30]
    Удалено модератором
 
Конференция "Media" » Фильтр высоких частот.
Есть новые Нет новых   [134431   +9][b:0][p:0.001]