|
Передискретизация звука методом интерполяции, подскажите качественный алгоритм |
|
|
|
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, 18:45
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(soolo @ Nov 17 2011, 14:35)  Стоит казалось бы банальная задача: Сигнал с опорной частотой 44.1 кГц преобразовать в сигнал с частотой 48 кГц. Алгоритмы с FFT по некоторым причинам не подходят, поэтому было решено использовать интерполяцию. Но коэффициент 1.088 и звуки вплоть до всеми любимых 20 кГц пока что ставят нас в тупик. Алгоритмы Lanczos, B-Spline, Mittchel, Sinc результат дают, но где-то гармоники зашкаливают, где-то частоты урезаются. В первую очередь интересуют минимальные гармонические искажения, задача вторая по степени важности - минимальный срез АЧХ. Может быть есть более подходящие для обработки звука алгоритмы? Подскажите, пожалуйста! Я не совсем понимаю, а что мешает Вам реализовать честный интерполятор в 48/44.1 = 160/147 раз? Честно повышаете частоту дискретизации в 160 раз, честно фильтруете наложения (тем самым полифазным фильтром, про который тут дискуссия возникла), потом честно оставляете только каждый 147-ой отсчет, остальное честно выкидываете нафиг  . Тем более что Вы сами говорили, что особых ограничений на ресурсы у Вас нет. Да и какие нафиг нужны ресурсы, когда все частоты "детские"??? Для справки, 160 = 2*2*2*2*2*5, т.е. частоту можно повышать постепенно, после каждого шага фильтруете наложения, первый фильтр навскидку 100...140-ого порядка (для подавления наложений в 100...120дБ), второй фильтр примерно 15-ый порядок, остальные фильтры на уровне нуля. Реализация фильтра 100-ого порядка на частоте 44кГц (та самая полифазность) требует 5-10MIPS, о чем тут вообще говорить?
|
|
|
|
|
Nov 18 2011, 10:12
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 16-05-07
Пользователь №: 27 774

|
Цитата(Самурай @ Nov 17 2011, 21:45)  Я не совсем понимаю, а что мешает Вам реализовать честный интерполятор в 48/44.1 = 160/147 раз? Честно повышаете частоту дискретизации в 160 раз, честно фильтруете наложения (тем самым полифазным фильтром, про который тут дискуссия возникла), потом честно оставляете только каждый 147-ой отсчет, остальное честно выкидываете нафиг  . Тем более что Вы сами говорили, что особых ограничений на ресурсы у Вас нет. Да и какие нафиг нужны ресурсы, когда все частоты "детские"??? Для справки, 160 = 2*2*2*2*2*5, т.е. частоту можно повышать постепенно, после каждого шага фильтруете наложения, первый фильтр навскидку 100...140-ого порядка (для подавления наложений в 100...120дБ), второй фильтр примерно 15-ый порядок, остальные фильтры на уровне нуля. Реализация фильтра 100-ого порядка на частоте 44кГц (та самая полифазность) требует 5-10MIPS, о чем тут вообще говорить? скажите мне пожалуйста, не флуда для а пользы ради. Вот Вы хотите увеличить частоту дискретизации в 160 раз. При этом уровень сигнала уменьшается в 160 раз, т.е. 16 битный сигнал становится фактически 9 битным. Неужели качество звука не пострадает?
--------------------
с polisoftlab.info
|
|
|
|
Сообщений в этой теме
soolo Передискретизация звука методом интерполяции Nov 17 2011, 11:35 petrov Полифазные фильтры + интерполятор Farrow. Nov 17 2011, 11:39 soolo Цитата(petrov @ Nov 17 2011, 14:39) Полиф... Nov 17 2011, 11:56 soolo Цитата(petrov @ Nov 17 2011, 14:39) Полиф... Nov 17 2011, 18:53  Самурай Цитата(soolo @ Nov 17 2011, 21:53) Попроб... Nov 17 2011, 19:02  Fast Цитата(soolo @ Nov 17 2011, 22:53) Попроб... Nov 17 2011, 19:08   soolo Цитата(Fast @ Nov 17 2011, 22:08) фрагмен... Nov 18 2011, 07:19    Fast Цитата(soolo @ Nov 18 2011, 11:19) Да, ко... Nov 18 2011, 08:31     soolo Цитата(Fast @ Nov 18 2011, 11:31) исходны... Nov 18 2011, 08:48      Fast линейность ФЧХ принципиальна ?
Цитата(soolo ... Nov 18 2011, 10:26       soolo Ну вот и свершилось!
Lanczos и степень полином... Nov 18 2011, 12:14  petrov Цитата(soolo @ Nov 17 2011, 22:53) Попроб... Nov 18 2011, 07:39   soolo Цитата(petrov @ Nov 18 2011, 10:39) Плохо... Nov 18 2011, 08:24    petrov Цитата(soolo @ Nov 18 2011, 12:24) Расска... Nov 18 2011, 08:57 SPACUM Цитата(soolo @ Nov 17 2011, 15:35) Сигнал... Nov 17 2011, 12:31 soolo Цитата(SPACUM @ Nov 17 2011, 15:31) А по ... Nov 17 2011, 13:18  SPACUM Цитата(soolo @ Nov 17 2011, 17:18) Пробов... Nov 17 2011, 16:16 thermit Не надо ничего изобретать. Все уже изобретено.
htt... Nov 17 2011, 13:27 Fast а зачем здесь к полифазному фильтру еще и лагранж(... Nov 17 2011, 13:44 soolo Забыл сказать в начале топика. Лишнего преобразова... Nov 17 2011, 13:50 petrov Цитата(Fast @ Nov 17 2011, 17:44) а зачем... Nov 17 2011, 13:57  Fast Цитата(petrov @ Nov 17 2011, 17:57) Хотит... Nov 17 2011, 14:16   petrov Цитата(Fast @ Nov 17 2011, 18:16) зачем ж... Nov 17 2011, 14:26    Fast Цитата(petrov @ Nov 17 2011, 18:26) Вы по... Nov 17 2011, 14:36     petrov Цитата(Fast @ Nov 17 2011, 18:36) да, при... Nov 17 2011, 15:04      Fast Цитата(petrov @ Nov 17 2011, 19:04) Какое... Nov 17 2011, 17:18 thermit ЦитатаFast:
и каким же образом up-samp на полифазн... Nov 17 2011, 18:11 Fast Цитата(thermit @ Nov 17 2011, 22:11) Бере... Nov 17 2011, 18:31  des00 Цитата(Eger @ Nov 18 2011, 04:12) скажите... Nov 18 2011, 10:22   Eger Цитата(des00 @ Nov 18 2011, 14:22) а что ... Nov 24 2011, 13:33 alex_os Цитата(Самурай @ Nov 17 2011, 21:45) Я не... Nov 18 2011, 18:15 thermit Задаетесь ошибкой интерполяции для гармонического ... Nov 17 2011, 19:07 Alexey Lukin soolo, наиболее распространённый для аудиосигналов... Nov 17 2011, 19:42 thermit Цитатаsoolo:
Lanczos и степень полинома 7 дали иде... Nov 18 2011, 12:25 Fast да как-то не верю, что все хорошо и звона нет
sool... Nov 18 2011, 17:37 soolo Цитата(Fast @ Nov 18 2011, 20:37) да как-... Nov 18 2011, 20:02  soolo Цитата(soolo @ Nov 18 2011, 23:02) Осталс... Nov 21 2011, 06:26   Fast Цитата(soolo @ Nov 21 2011, 10:26) Как и ... Nov 21 2011, 07:08    soolo Это не Ланцош понизил уровень, это я не мог записы... Nov 21 2011, 07:35 Fast попробуйте протестировать не в среднем по больнице... Nov 21 2011, 07:50 soolo Цитата(Fast @ Nov 21 2011, 10:50) попробу... Nov 21 2011, 08:10 Fast для интереса, т.е. чистоты эксперимента, попробуйт... Nov 21 2011, 08:10 soolo Цитата(Fast @ Nov 21 2011, 11:10) для инт... Nov 21 2011, 08:37  Fast Цитата(soolo @ Nov 21 2011, 12:37) . Я уж... Nov 21 2011, 11:59   petrov Цитата(Fast @ Nov 21 2011, 15:59) не могл... Nov 21 2011, 13:19 petrov Цитата(Fast @ Nov 21 2011, 12:10) для инт... Nov 21 2011, 08:40 thermit Цитатаsoolo:
Зато алгоритм на 100% гибкий и позвол... Nov 21 2011, 08:17 petrov Цитата(thermit @ Nov 21 2011, 12:17) Да у... Nov 21 2011, 08:30 shkal Посмотрите это, может быть интересно.
ad1896 datas... Nov 21 2011, 12:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|