реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
Ivan55
сообщение Jan 26 2017, 11:48
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Добрый день!
Ищу инфу по реализации аудио эквалайзера, если у кого то есть что то интересное скиньте пожалуйста
Видел как их делают через БИХ фильтр, но там коэфициенты фильтра нужно пересчитывать в зависимости
от частоты дискретизации(если файл 48кГц или 44,1кГц и т.д.), а также необходимого усиления или ослабления

Может у кого есть инфа как это делать через Фурье

Буду благодарен за любую инфу
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 26 2017, 16:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



https://electronix.ru/forum/index.php?s=&am...st&p=929325
Go to the top of the page
 
+Quote Post
DASM
сообщение Jan 27 2017, 07:46
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Ничего не понял. Я делаю IFFT от АЧХ нужной, и получаю тут же коэффициенты КИХ такого. Или вопрос как сменить Fds ? Так это отдельный совершенно вопрос и не очень простой
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jan 27 2017, 08:02
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Сам задавался этим вопросом, правда, чисто из любопытства.
У меня есть MP3 плеер Philips GoGear. В нем есть пятиполосный эквалайзер. Работает от батарейки 1,5 В. Плееру лет 10 уже.
Как он на лету фильтрует аудиопоток два канала по 44100 выб/с, для меня загадка. При чем, разделение по полосам очень хорошее. Сам считаю по работе коэффициенты БИХ фильтров. Ну там цифры очень подогнаны одна к другой, как их можно на лету менять, не понятно. Интересно, какая формула расчета фильтрации работает в MP3 плеерах ?

Сообщение отредактировал MSP430F - Jan 27 2017, 10:57
Go to the top of the page
 
+Quote Post
DASM
сообщение Jan 27 2017, 13:47
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(MSP430F @ Jan 27 2017, 11:02) *
Сам задавался этим вопросом, правда, чисто из любопытства.
У меня есть MP3 плеер Philips GoGear. В нем есть пятиполосный эквалайзер. Работает от батарейки 1,5 В. Плееру лет 10 уже.
Как он на лету фильтрует аудиопоток два канала по 44100 выб/с, для меня загадка. При чем, разделение по полосам очень хорошее. Сам считаю по работе коэффициенты БИХ фильтров. Ну там цифры очень подогнаны одна к другой, как их можно на лету менять, не понятно. Интересно, какая формула расчета фильтрации работает в MP3 плеерах ?

Да сдались вам эти БИХ. Это прошлое. Онри нужны были потому что производительность никакая была, в итоге чуть шаг разрядность - привет возбуд. Вот не припомню чтобы в цифре звуке БИХ использовали, кроме разве что упертых аудиофилов, которые любят искажения. Например ламповые
Go to the top of the page
 
+Quote Post
thermit
сообщение Jan 27 2017, 15:01
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



http://www.rane.com/library.html
Go to the top of the page
 
+Quote Post
stealth-coder
сообщение Jan 29 2017, 11:26
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 27-12-08
Пользователь №: 42 786



Цитата(DASM @ Jan 27 2017, 10:46) *
Ничего не понял. Я делаю IFFT от АЧХ нужной, и получаю тут же коэффициенты КИХ такого. Или вопрос как сменить Fds ? Так это отдельный совершенно вопрос и не очень простой


Простейший вариант реализации эквалайзера (вычисление коэффициентов КИХ фильтра для заданной АЧХ):
Предположим, у Вас частота дискретизации 48 кГц, длина линии задержки фильтра 128 отсчетов. Для расчета фильтра нужно:
1. требуемую АЧХ зеркалировать (т.е. относительно нулевой частоты АЧХ должна быть зеркально идентична, преобразование Фурье работает с комплексными числами, зеркальная идентичность даст нулевые значения мнимой составляющей после обратного преобразования Фурье, поэтому фильтр будет иметь только вещественные коэффициенты и позволит обработать звуковые отсчеты, которые тоже чисто вещественные).
2. максимальное значение АЧХ по частоте - половина частоты дискретизации, т.е. в нашем примере от -24 кГц до +24 кГц.
3. полученную АЧХ дискретизируете по частоте на 128 точек, все точки должны быть равноудалены от соседей справа и слева
4. в полученных по частоте точках берете амплитуду, при необходимости квантуете, т.е. выставляете по разрядной сетке.
Теперь имеете набор из 128 комплексных значений, где вещественная часть - частота (в нашем примере от -64 до +63, но не кГц, это индексы позиций бинов ПФ!), мнимая - амплитуда (кстати, обычно амплитуду в аудиоэквалайзерах рисуют на логарифмической шкале, потребуется пересчитать децибелы в разы).
Полученный массив подвергаете обратному преобразованию Фурье и получаете коэффициенты фильтра (если АЧХ построили симметрично, то мнимые составляющие будут равны нулю и их можно отбросить). При необходимости можно отнормировать коэффициенты фильтра так, чтобы в сумме они давали 1 (или иное требуемое значение согласно разрядной сетке, например, если разрядность аудиоотсчетов 16 бит (15 значащих, 1 знаковый), то коэффициенты фильтра в сумме должны давать 32767 (2 в 15 степени минус 1). Простейший эквалайзер готов!

Если меняется частота дискретизации, то меняются максимальные значения по частоте (для 44.1 кГц будет от -22.05 до 22.05), соответственно, расстояние между точками дискретизированной по частоте АЧХ будет меньше.

Длина фильтра в общем случае может быть не степенью двойки, это потребует только лишь отказаться от быстрого преобразования Фурье или использовать специальные версии БПФ для требуемого числа точек, дискретное преобразование Фурье, посчитанное "в лоб", позволит строить фильтры на любое количество точек.
Go to the top of the page
 
+Quote Post
BratherLU
сообщение Jan 30 2017, 05:45
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 103
Регистрация: 16-05-06
Пользователь №: 17 126



http://www.dsplib.ru/content/allpasseq/allpasseq.html. - просто и эффективно.
Еще есть книга: DAFX: Digital Audio Effects автор: Udo Zolzer. http://www.dafx.de/
http://www.music.mcgill.ca/~ich/classes/dafx_book.pdf
Go to the top of the page
 
+Quote Post
DASM
сообщение Feb 5 2017, 00:04
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(stealth-coder @ Jan 29 2017, 14:26) *
Простейший вариант реализации эквалайзера (вычисление коэффициентов КИХ фильтра для заданной АЧХ):
Предположим, у Вас частота дискретизации 48 кГц, длина линии задержки фильтра 128 отсчетов. Для расчета фильтра нужно:
1. требуемую АЧХ зеркалировать (т.е. относительно нулевой частоты АЧХ должна быть зеркально идентична, преобразование Фурье работает с комплексными числами, зеркальная идентичность даст нулевые значения мнимой составляющей после обратного преобразования Фурье, поэтому фильтр будет иметь только вещественные коэффициенты и позволит обработать звуковые отсчеты, которые тоже чисто вещественные).
2. максимальное значение АЧХ по частоте - половина частоты дискретизации, т.е. в нашем примере от -24 кГц до +24 кГц.
3. полученную АЧХ дискретизируете по частоте на 128 точек, все точки должны быть равноудалены от соседей справа и слева
4. в полученных по частоте точках берете амплитуду, при необходимости квантуете, т.е. выставляете по разрядной сетке.
Теперь имеете набор из 128 комплексных значений, где вещественная часть - частота (в нашем примере от -64 до +63, но не кГц, это индексы позиций бинов ПФ!), мнимая - амплитуда (кстати, обычно амплитуду в аудиоэквалайзерах рисуют на логарифмической шкале, потребуется пересчитать децибелы в разы).
Полученный массив подвергаете обратному преобразованию Фурье и получаете коэффициенты фильтра (если АЧХ построили симметрично, то мнимые составляющие будут равны нулю и их можно отбросить). При необходимости можно отнормировать коэффициенты фильтра так, чтобы в сумме они давали 1 (или иное требуемое значение согласно разрядной сетке, например, если разрядность аудиоотсчетов 16 бит (15 значащих, 1 знаковый), то коэффициенты фильтра в сумме должны давать 32767 (2 в 15 степени минус 1). Простейший эквалайзер готов!

Если меняется частота дискретизации, то меняются максимальные значения по частоте (для 44.1 кГц будет от -22.05 до 22.05), соответственно, расстояние между точками дискретизированной по частоте АЧХ будет меньше.

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

Ну как бы это не мне ответ наверное.. У меня немного сложнее оно, с фазовым эквалайзером, но суть точно такая же.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 5 2017, 08:53
Сообщение #10


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(DASM @ Jan 27 2017, 15:47) *
Да сдались вам эти БИХ. Это прошлое. Онри нужны были потому что производительность никакая была, в итоге чуть шаг разрядность - привет возбуд. Вот не припомню чтобы в цифре звуке БИХ использовали, кроме разве что упертых аудиофилов, которые любят искажения. Например ламповые

КИХ сформированные методом частотной выборки имеют неконтролируемую рябь и не годятся для эквалайзеров. - Айфичер. "Цифровая обработка сигналов" стр. 437

Цитата(BratherLU @ Jan 30 2017, 07:45) *

Классная книга. Добавляю в свой золотой фонд.
Кстати там на пальцах показано как сделать эквалайзер на БИХ фильтрах, и фазовый эквалайзер тоже.
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Feb 5 2017, 11:17
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



Может не в тему, но может интересно готовое решение: VS1053, VS1063 - доступен патч, загрузив который делает 5- полосный эквалайзер.
Это позволит вашему центральному процессору разгрузиться или пустить на другие не менее важные задачи.


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
petrov
сообщение Feb 5 2017, 13:11
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(AlexandrY @ Feb 5 2017, 11:53) *
КИХ сформированные методом частотной выборки имеют неконтролируемую рябь и не годятся для эквалайзеров. - Айфичер. "Цифровая обработка сигналов" стр. 437


Никакой Айфичер не может запретить сформировать огибающую полосовых КИХ фильтров, сумма которых без неконтролируемой ряби, и использовать их для эквалайзеров, ограничение анализирующих фильтров синковой АЧХ не обязательно.
Go to the top of the page
 
+Quote Post
DASM
сообщение Feb 6 2017, 08:09
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(AlexandrY @ Feb 5 2017, 11:53) *
КИХ сформированные методом частотной выборки имеют неконтролируемую рябь и не годятся для эквалайзеров. - Айфичер. "Цифровая обработка сигналов" стр. 437


Классная книга. Добавляю в свой золотой фонд.
Кстати там на пальцах показано как сделать эквалайзер на БИХ фильтрах, и фазовый эквалайзер тоже.

На стр. 437 обнаружил следующую фразу, уловить суть которой мне не позволяет , вероятно, низкий уровень IQ / Даже не фразу, а пару абзацев на мой взгляд бессвязного бреда. Не поясните? Мне только известно, что имульсная хар-ка любой линейной цепи полностью описывает ее АЧХ и ФЧХ, а эквалайзер - линейная система. Брать надо конечно на бесконечном интервале времени sm.gif Стремиться. Мало точек - добиваем нулями. А какой "неконтролируемой ряби" идет речь, поясните пожалуйста.

Цитата(petrov @ Feb 5 2017, 16:11) *
Никакой Айфичер не может запретить сформировать огибающую полосовых КИХ фильтров, сумма которых без неконтролируемой ряби, и использовать их для эквалайзеров, ограничение анализирующих фильтров синковой АЧХ не обязательно.

Я не понимаю зачем вообще использовать несколько КИХ фильтров? Один фильтр используем, АЧХ-ФЧХ коротого синтезирована по всем заданным точкам, цеж студентечская 1-го курса, если я все понимаю верно. Во всяком случае это у меня работает =)
ЗЫ - а как на Инглише пишется автор - iFeature r? wink.gif
"Классная книга. Добавляю в свой золотой фонд. " - книга неплоха, но она скорее для интересующихся студентов, не более
Вот переживаю все никак 1ый том не могу найти Дженкинса
Эскизы прикрепленных изображений
 Р Р€Р С˜Р ВµР Р…ьшено Р Т‘Р С• 66%
Прикрепленное изображение
503 x 374 (61.79 килобайт)
 Р Р€Р С˜Р ВµР Р…ьшено Р Т‘Р С• 96%
Прикрепленное изображение
4092 x 3069 (6.28 мегабайт)
 
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 6 2017, 09:09
Сообщение #14


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(DASM @ Feb 6 2017, 10:09) *
А какой "неконтролируемой ряби" идет речь, поясните пожалуйста.


Вот о такой -
 Р Р€Р С˜Р ВµР Р…ьшено Р Т‘Р С• 83%
Прикрепленное изображение
980 x 784 (66.82 килобайт)


Здесь рисуем произвольную АЧХ на 10-и точках, конвертирует в КИХ фильтр и получаем такую несуразицу.
Уж извините, эт что угодно, но не фильтр для эквалайзера.
Go to the top of the page
 
+Quote Post
petrov
сообщение Feb 6 2017, 09:36
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(DASM @ Feb 6 2017, 11:09) *
Я не понимаю зачем вообще использовать несколько КИХ фильтров? Один фильтр используем, АЧХ-ФЧХ коротого синтезирована по всем заданным точкам, цеж студентечская 1-го курса, если я все понимаю верно.


Несколько полосовых КИХ фильтров у которых меняем усиление и есть эквалайзер. Ваш один фильтр эквивалентен скользщим FFT -> умножение на АЧХ в точках -> iFFT. FFT - это и есть банк плохих полосовых КИХ фильтров с прямоугольной огибающей и соответственно синковой АЧХ. Можно использовать полосовые КИХ фильтры получше и считать на лету блочным алгоритмом:

децимирующий полифазный фильтр -> FFT -> усиление -> iFFT -> интероплирующий полифазный фильтр.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd July 2025 - 20:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01547 секунд с 7
ELECTRONIX ©2004-2016