|
|
  |
Передискретизация звука методом интерполяции, подскажите качественный алгоритм |
|
|
|
Nov 17 2011, 11:35
|
Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362

|
Стоит казалось бы банальная задача: Сигнал с опорной частотой 44.1 кГц преобразовать в сигнал с частотой 48 кГц. Алгоритмы с FFT по некоторым причинам не подходят, поэтому было решено использовать интерполяцию. Но коэффициент 1.088 и звуки вплоть до всеми любимых 20 кГц пока что ставят нас в тупик. Алгоритмы Lanczos, B-Spline, Mittchel, Sinc результат дают, но где-то гармоники зашкаливают, где-то частоты урезаются. В первую очередь интересуют минимальные гармонические искажения, задача вторая по степени важности - минимальный срез АЧХ. Может быть есть более подходящие для обработки звука алгоритмы? Подскажите, пожалуйста!
|
|
|
|
|
Nov 17 2011, 11:56
|
Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362

|
Цитата(petrov @ Nov 17 2011, 14:39)  Полифазные фильтры + интерполятор Farrow. Спасибо, попробуем. Буду рад и другим советам. Мощности для реализации имеются =)
|
|
|
|
|
Nov 17 2011, 12:31
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(soolo @ Nov 17 2011, 15:35)  Сигнал с опорной частотой 44.1 кГц преобразовать в сигнал с частотой 48 кГц. А по классике, представить каждый отсчет слева и справа синком и просуммировать. Успех гарантирован. Легко посчитать сколько отсчетов надо брать. Но результат не радует так как синк плохо спадает и точек надо много. Думаю для любого метода их столько и нужно, а если взяли меньше - легко посчитать погрешность просуммировав остальные.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Nov 17 2011, 13:18
|
Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362

|
Цитата(SPACUM @ Nov 17 2011, 15:31)  А по классике, представить каждый отсчет слева и справа синком и просуммировать. Успех гарантирован. Легко посчитать сколько отсчетов надо брать. Но результат не радует так как синк плохо спадает и точек надо много. Думаю для любого метода их столько и нужно, а если взяли меньше - легко посчитать погрешность просуммировав остальные. Пробовали Синк со степенью полинома 3 и 5 - результат один и тот же - сильные гармонические искажения + усиление высоких частот
|
|
|
|
|
Nov 17 2011, 13:50
|
Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362

|
Забыл сказать в начале топика. Лишнего преобразования частоты тоже хотелось бы избежать. Т.к. задача преобразования 44.1 >> 48 скорее всего частный случай и в будущем трансформируется в преобразование в любую частоту. Насяльника у нас такая =)
Сообщение отредактировал soolo - Nov 17 2011, 13:52
|
|
|
|
|
Nov 17 2011, 13:57
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Fast @ Nov 17 2011, 17:44)  а зачем здесь к полифазному фильтру еще и лагранж(или фарроу) ? тогда уж upsampling в 2 раза с помощью ФНЧ КИХ-фильтра, а там уже и Лагранж 6-8 узлов (Lanczos, B-Spline) для понижения 88.2->48 Хотите умножайте нули после upsampling, обычно это полифазной структурой КИХ фильтра делают. Цитата(soolo @ Nov 17 2011, 17:50)  Лишнего преобразования частоты тоже хотелось бы избежать. Ничего лишнего и нету с помощью полифазного фильтра промежуточные отсчёты вычисляются для нормальной работы дробного интерполятора Лагранжа(Фарроу).
|
|
|
|
|
Nov 17 2011, 14:16
|
Местный
  
Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839

|
Цитата(petrov @ Nov 17 2011, 17:57)  Хотите умножайте нули после upsampling, обычно это полифазной структурой КИХ фильтра делают. зачем же нули умножать в 21м веке.. смысл исключительно расширении полосы, чтобы не "накрыть" полезные составляющие спектра сигнала неравномерной частью АЧХ фильтра Лагранжа в этом случае Лагранж можно успешно применять как на up- так и на down- sampling на любую дробную частоту полифазные фильтры же мне кажутся громоздкими, но правда, не знаю , насколько они удобны в FPGA-реализации
|
|
|
|
|
Nov 17 2011, 14:26
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Fast @ Nov 17 2011, 18:16)  зачем же нули умножать в 21м веке.. смысл исключительно расширении полосы, чтобы не "накрыть" полезные составляющие спектра сигнала неравномерной частью АЧХ фильтра Лагранжа в этом случае Лагранж можно успешно применять как на up- так и на down- sampling на любую дробную частоту полифазные фильтры же мне кажутся громоздкими, но правда, не знаю , насколько они удобны в FPGA-реализации Вы понимаете что Цитата(Fast @ Nov 17 2011, 17:44)  тогда уж upsampling в 2 раза с помощью ФНЧ КИХ-фильтра это и есть полифазный фильтр, если нули не умножать, а поменять местами upsampling и КИХ ФНЧ?.
|
|
|
|
|
Nov 17 2011, 14:36
|
Местный
  
Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839

|
Цитата(petrov @ Nov 17 2011, 18:26)  Вы понимаете что это и есть полифазный фильтр, если нули не умножать, а поменять местами upsampling и КИХ ФНЧ?. да, при упрощении. Но up-samp в 2 раза и re-samp на произвольную частоту с помощью полифазного фильтра все же разные вещи.
|
|
|
|
|
Nov 17 2011, 15:04
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Fast @ Nov 17 2011, 18:36)  да, при упрощении. Какое нафиг упрощение? О чём вы? Это есть натуральный полифазный фильтр. Цитата(Fast @ Nov 17 2011, 18:36)  up-samp в 2 раза И не обязательно в 2, в зависимости от необходимого качества может и больше потребоваться. Цитата(Fast @ Nov 17 2011, 18:36)  re-samp на произвольную частоту с помощью полифазного фильтра все же разные вещи. Про это речи вообще не было.
|
|
|
|
|
Nov 17 2011, 16:16
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(soolo @ Nov 17 2011, 17:18)  Пробовали Синк со степенью полинома 3 и 5 - результат один и тот же - сильные гармонические искажения + усиление высоких частот Так и ошибка 1/(3 * PI) или 1/(5 * PI) тоже не очень(это если по 3 или по 5 в каждую сторону). При насыщенном почти равномерном спектре Фарроу 6 и 10 порядка будут еще хуже. А метод идеальный по определению. Можно ли его выполнить побыстрее для большего числа точек не знаю.
Сообщение отредактировал SPACUM - Nov 17 2011, 21:12
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Nov 17 2011, 17:18
|
Местный
  
Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839

|
Цитата(petrov @ Nov 17 2011, 19:04)  Какое нафиг упрощение? О чём вы? Это есть натуральный полифазный фильтр. такой нафиг, что полифазный - это форма реализации. Полифазным может быть как КИХ, так и БИХ, к примеру, и КИХ с невысчитываемыми нулями не становится автоматом полифазным, также как не становится автоматом лагранж интерполятором фарроу, хотя фарроу одна из форм реализации лагранжа. А становится при определенных условиях реализации. Цитата(petrov @ Nov 17 2011, 19:04)  И не обязательно в 2, в зависимости от необходимого качества может и больше потребоваться. и каким же образом up-samp на полифазнике в N-раз (+Фарроу) нам поднимет качество больше чем up-samp на КИХ-фильтре в 2 раза (+Фарроу)? p.s. Могу представить только один вариант, если это Фарроу 3го порядка, с пологой АЧХ, для которого надо стабильно повышать в 4, а лучше в 8 раз сигнал. При Лагранже 8-порядка повышай хоть в 4, 8, 128 - качеству взяться неоткуда.. Цитата(SPACUM @ Nov 17 2011, 20:16)  При насыщенном почти равномерном спектре Фарроу 6 и 10 порядка будут еще хуже. А метод идеальный по определению. Можно ли его выполнить побыстрее для большего числа точек не знаю. при насыщенном и равномерном спектре до частоты Найквиста ничто не поможет , любая интерполяция будет с искажениями. Потому что цифровать надо было с бОльшей частотой. Никакой преселектор, ни какое АЦП с дельта-сигма-модуляцией не имеет прямоугольной характеристики фильтра НЧ. И если мы видим сильный сигнал вблизи найквиста, сто пудово часть его уже "завернулась" в полосу полезного сигнала при оцифровке
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|