Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Еквалайзер в проигрывателе   Найти похожие ветки 

 
SergProger ©   (2005-09-22 21:08) [0]

Всем привет! Кто-нибудь знает, как реализовать еквалайзер в проге или найти документацию по этому вопросу? Спасибо.


 
Jeer ©   (2005-09-23 10:26) [1]

Гребенка фильтров с регулируемым уровнем пропускания каждого.
Реализация фильтров не принципиальна, в первом приближении.


 
Sergey_R ©   (2005-09-23 17:05) [2]

Используй BASS


 
SergProger ©   (2005-09-23 19:48) [3]

Jeer, спасибо, это я знаю, но как это реализовать???


 
Дмитрий Белькевич   (2005-09-25 16:23) [4]

FFT, например. Готовых бесплатных реализаций есть.


 
Zer0 ©   (2005-09-25 19:03) [5]

гребенка фильтов и FTT - это мрачняк =)
нужно использовать сверточную функцию


 
Дмитрий Белькевич   (2005-09-25 23:34) [6]

Вопрос: как пользовать свёртки на одномерных данных? (Wav файл)?


 
Jeer ©   (2005-09-26 11:14) [7]

Zer0 ©   (25.09.05 19:03) [5]

FFT, в данном случае, это та же "гребенка фильтров".
И что в этом мрачного ?

Свертка ?
Может быть имелись в виду FIR ?
А для реализации быстрой свертки во временной области все равно используют
умножение в частотной, т.е. быстрые алгоритмы ДПФ (FFT)

Zer0 ©   (25.09.05 19:03) [5]
Что реализовать ? Фильтры ?
См. любой учебник по DSP.


 
Дмитрий Белькевич   (2005-09-26 13:00) [8]

>Может быть имелись в виду FIR ?

Ото ж и я говорю. Верхи, конечно, можно порезать, усреднив вавку - верхи сразу уедут. Можно это даже свёрткой назвать - типа 1 1 1 по трём отсчетам. Но толку? Честного эквалайзера всё равно не получится, пока всё в частотную область не перекинешь.


 
Jeer ©   (2005-09-26 15:08) [9]

Дмитрий Белькевич   (26.09.05 13:00) [8]

Я ж уточнил, что метод реализации "гребенки" пока не принципиален.
Можно и на FIR сделать приличный эквалайзер, а в основе FIR все таже свертка во временной области. На современных пнях и амд и так все будет летать.


 
Asprofi   (2005-09-29 11:21) [10]

Там есть компоненты, в том числе и EQ

   ..::: www.dx-worx.de :::..


 
Asprofi   (2005-09-29 11:22) [11]

Там есть компоненты, в том числе и EQ

   ..::: www.dsp-worx.de :::..


 
SergProger ©   (2005-09-29 19:47) [12]

Огромное всем спасибо! Теперь осталось разобраться с компонентами.


 
Дмитрий Белькевич   (2005-09-30 04:03) [13]

>Можно и на FIR сделать приличный эквалайзер

С каких пор фнч и фвч стали полосу резать?


 
Дмитрий Белькевич   (2005-09-30 04:06) [14]

Или, тем более, что-то усиливать. Эквалайзер, насколько я помню, предполагает не только - но и +


 
Jeer ©   (2005-09-30 12:08) [15]

Дмитрий Белькевич   (30.09.05 04:03) [13]

А с каких это пор FIR только LowPass или HighPass ?


> что-то усиливать.


А умножение на >1 это не усиление ? :))


 
Дмитрий Белькевич   (2005-10-01 04:19) [16]

>А с каких это пор FIR только LowPass или HighPass ?

Посмотрел по ссылкам:

"Эти фильтры реализованы через процесс, называемый сверткой (convolution): есть таблица размера n, которая комбинирует (складывает) последние n точек функции в одну выходную точку, умножая каждую из них на определенное число - весовой коэффициент. Таблица свертки строится один раз в начале по требуемому частотному воздействию."

Там же:

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

Интересно, как вообще можно посчитать коэффициенты в этом случае? Матрица коэффициентов 1x100 что ли? Как можно к мешанине отсчетов, где все частоты смешаны применить свёртку? Не понятно. Сглаживание n x 1 прибьет верхние частоты, единственное, что можно представить. Хотя, возможно, я не прав.

>А умножение на >1 это не усиление

Умножение всего - да, но как умножить определенную частоту? В fft - без пробем. Разложили - поумножали на коэффициенты, синтезировали опять а здесь как?


 
Jeer ©   (2005-10-03 13:24) [17]


> Дмитрий Белькевич   (01.10.05 04:19) [16]


Небольшой ликбез по DSP.

В одномерной линейной дискретной системе связь между входом и выходом задается разностным уравнением
Y(k) = sum(B[n] * X[k-n]) - sum(A[m] * Y[k-m])

В таком виде это есть рекурсивный ЦФ (РЦФ / IIR), т.е. фильтр с обратной связью
Если коэф. A[m] равны 0, то получаем нерекурсивный ЦФ (НРЦФ / FIR)т.е. фильтр без обратных связей.
Если коэф-ты A или B зависят от л, то имеем параметрический фильтр, иначе - инвариантный.

Поведение фильтра (АЧХ и ФЧХ) целиком и полностью зависит от значений коэф. A и B

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

Свертка (convolution) во временной области это и есть НРЦФ.
Коэффициент усиления ЦФ (в целом) определяется коэф-ми A и/или B или вынесенным умножающим звеном (множителем)

Для реализации эквалайзера на заданное число полос ( обычно N = 5 -11) можно использовать набор из N нерекурсивных или рекурсивных фильтров.

Для реализации полосового НРЦФ используется комбинация из ФНЧ и ФВЧ с коэфф. B1[] и B2[], которые заменяются, с учетом коммутативности свертки, на массив коэф-тов B[] = B1[] * B2[], т.е. длина фильтра остается неизменной.
ФВЧ реализуется из ФНЧ методов инверсии.

НРЦФ (FIR) хороши тем, что проще считаются, имеют линейную фазу.
НРЦФ считаются методами:
- оконных функций;
- разложением АЧХ в ряд Фурье;
- наименьшими квадратами;
- Ремеза (численное решение Чебышевской аппроксимации)

Недостаток - возможна значительная длина фильтра (порядок свертки) для достижении требуемых параметров.
Впрочем, на современных процессорах класса P-IV это не накладывает сильных ограничений на скорость вычисления отсчета, но остается проблема временной задержки.

Известный метод сглаживания данных
Y = 0.2*(x1+x2+x3+x4+x5), не что иное как двустронний симметричный нерекурсивный ЦФ  нижних частот.

Рекурсивные ЦФ часто считаются по фильтру-прототипу, а далее методами перехода от аналогового прототипа к дискретному (например, метод билинейного преобразования) рассчитывается цифровой фильтр.

Для перехода от ФНЧ к другому типу фильтра (ФВЧ, ПФ, ЗФ) используются соответствующие формулы аппроксимации оператора Лапласа через z-преобразование.



> Умножение всего - да, но как умножить определенную частоту


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


 
ArtemESC ©   (2005-10-03 18:56) [18]

я использовал TrackBar ...
{Основная идея:
По таймеру инкрементировать Position...}

TrackBar конечно не очень красиво, но есть множество
видов Track-ов в Инете с гибкими настройками...


 
Antonn ©   (2005-10-04 03:35) [19]

ArtemESC ©   (03.10.05 18:56) [18]
речь не о контролле


 
Дмитрий Белькевич   (2005-10-08 04:39) [20]

>Небольшой ликбез по DSP.

Спасибо за труд. Если не сложно, ответьте плз, еще на несколько вопросов.
К ФНЧ у меня собственно почти никаких вопросов. Только немного неочевидно, как частоту среза изменять. А вот как реализовать ФВЧ, и следующие из связки ФНЧ + ФВЧ ПФ и ЗФ?

>ФВЧ реализуется из ФНЧ методов инверсии.

Инверсии чего?

>формулы аппроксимации оператора Лапласа через z-преобразование

Это и есть "инверсия"?

>Y = 0.2*(x1+x2+x3+x4+x5), не что иное как двустронний симметричный нерекурсивный ЦФ  нижних частот

Как я и говорил, только для пяти отсчетов. Фильтр 1 1 1 1 1.

Но как частоту среза поменять - не понятно. Она будет зависеть от частоты дискретизации, как я понимаю, и больше ни от чего.

Как посчитать массив B[n]?


 
Jeer ©   (2005-10-10 11:59) [21]

Спасибо за труд. Если не сложно, ответьте плз, еще на несколько вопросов.
К ФНЧ у меня собственно почти никаких вопросов. Только немного неочевидно, как частоту среза изменять. А вот как реализовать ФВЧ, и следующие из связки ФНЧ + ФВЧ ПФ и ЗФ?

>ФВЧ реализуется из ФНЧ методов инверсии.
Q:Инверсии чего?
A: Инверсия спектра.
ФВЧ может быть определен как результат вычитания из входного сигнала, сигнала после фильтра НЧ, т.е.
Y[k] = X[k] - sum(B[n]*X[k-n])
Если Hlow[n] - импульсная хар-ка ФНЧ, то имп. хар-ка ФВЧ определяется как Hh(0) = 1 - Hlow(0), Hh[n] = - Hlow[n]
Есть другой способ - реверс частоты АЧХ ФНЧ, т.е. замена w* = PI - w
Это приводит к смене знака у всех нечетных членов импульсной хар-ки.

Полосовой образуется через перемножение B[n] соотвествующих ФНЧ и ФВЧ.
Заграждающий - через инверсию полосового.

>формулы аппроксимации оператора Лапласа через z-преобразование
Q:Это и есть "инверсия"?

A: Нет, инверсия см. выше.
Аппроксимация - это один из методов синтеза рекурсивных фильтров - наиболее распространено билинейное преобразование, вместо оператора Лапласа p в фильтре прототипе подставляется (g - нормирующий множитель)
p == g*(1-Z^-1)/(1+Z^-1)

>Y = 0.2*(x1+x2+x3+x4+x5), не что иное как двустронний симметричный нерекурсивный ЦФ  нижних частот
Q:Как я и говорил, только для пяти отсчетов. Фильтр 1 1 1 1 1.
Q:Но как частоту среза поменять - не понятно. Она будет зависеть от частоты дискретизации, как я понимаю, и больше ни от чего.

A:АЧХ IIR определяется как

H(w) = sqrt( sum( B[n] * Cos(w*n*t))^2 +sum( B[n] * Sin(w*n*t))^2)

Q:Как посчитать массив B[n]?
A:
Уже приводил методы:
НРЦФ считаются методами:
- оконных функций;
- разложением АЧХ в ряд Фурье;
- наименьшими квадратами;
- Ремеза (численное решение Чебышевской аппроксимации)

Наиболее просто - через оконные функции.
Применяемость - фильтры с относительно небольшой длиной и "идеальной" характеристикой, т.е. близкой к прямоугольной.

Считается, как обычно, импульсная хар-ка идеального (прямоугольного) ФНЧ (через преобразование Фурье)
H[n] = sin(2*PI*n*w)/(PI*n)

Вектор коэффициентов B[n] определется умножением на вектор коэффициентов одной из используемых оконных функций W[n]

B[n] = H[n] * W[n]

Предложено много оконных функций с различными корректирующими свойствами.
По существу основной задачей является устранение эффекта Гиббса (сильная осцилляция АЧХ при использовании идеальной АЧХ)
Окна: Ханн, Хемминг, Блэкман, Барлетт, Ланцош-Каппелини,Папуллис, Коши, Гаус и др

Например, окно Ханна

W[n] = 0.5*(1+cos(2*PI*n/(N-1)))


А вообще-то, рекомендую обратиться к учебникам по цифровыи фильтрам.
Я не могу писать здесь новый:))


 
Дмитрий Белькевич   (2005-10-11 02:45) [22]

Спасибо за ответ.



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.043 c
10-1115290907
Santyago
2005-05-05 15:01
2006.03.19
Как в Excel документе можно определить конец файла


2-1141484258
rolex
2006-03-04 17:57
2006.03.19
Нужно ли выгружать переменные?


15-1140421884
Knight
2006-02-20 10:51
2006.03.19
Помогите выбрать мать...


4-1135365676
pol
2005-12-23 22:21
2006.03.19
Datecs fp3530t


15-1140901823
unknown
2006-02-26 00:10
2006.03.19
При смене материнской платы придётся покупать Windows