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

 
 
> Передискретизация звука методом интерполяции, подскажите качественный алгоритм
soolo
сообщение Nov 17 2011, 11:35
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362



Стоит казалось бы банальная задача: Сигнал с опорной частотой 44.1 кГц преобразовать в сигнал с частотой 48 кГц. Алгоритмы с FFT по некоторым причинам не подходят, поэтому было решено использовать интерполяцию. Но коэффициент 1.088 и звуки вплоть до всеми любимых 20 кГц пока что ставят нас в тупик. Алгоритмы Lanczos, B-Spline, Mittchel, Sinc результат дают, но где-то гармоники зашкаливают, где-то частоты урезаются.
В первую очередь интересуют минимальные гармонические искажения, задача вторая по степени важности - минимальный срез АЧХ. Может быть есть более подходящие для обработки звука алгоритмы? Подскажите, пожалуйста!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Fast
сообщение Nov 21 2011, 08:10
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



для интереса, т.е. чистоты эксперимента, попробуйте вот этот ФНЧ для 2x up-samp перед Lanczos
в нем 256 отводов, обе части симметричны, потребуется 128 умножений

Код
const int BL = 256;
const int16_T B[256] = {
       11,     22,      9,    -18,    -15,     14,     19,    -12,    -22,
        9,     25,     -7,    -27,      5,     29,     -4,    -31,      2,
       33,      0,    -35,     -1,     37,      3,    -40,     -5,     42,
        6,    -44,     -8,     47,     10,    -49,    -12,     52,     14,
      -54,    -16,     57,     18,    -60,    -20,     63,     22,    -66,
      -25,     69,     27,    -72,    -30,     76,     33,    -80,    -36,
       83,     39,    -87,    -43,     91,     46,    -96,    -50,    100,
       54,   -105,    -58,    110,     63,   -115,    -67,    121,     73,
     -126,    -78,    133,     84,   -139,    -90,    146,     97,   -154,
     -104,    162,    112,   -171,   -121,    180,    130,   -191,   -141,
      202,    152,   -214,   -165,    228,    179,   -243,   -195,    261,
      213,   -280,   -233,    302,    257,   -328,   -285,    359,    318,
     -395,   -358,    440,    407,   -496,   -470,    567,    553,   -664,
     -666,    800,    833,  -1008,  -1101,   1367,   1606,  -2135,  -2919,
     4946,  14721,  14721,   4946,  -2919,  -2135,   1606,   1367,  -1101,
    -1008,    833,    800,   -666,   -664,    553,    567,   -470,   -496,
      407,    440,   -358,   -395,    318,    359,   -285,   -328,    257,
      302,   -233,   -280,    213,    261,   -195,   -243,    179,    228,
     -165,   -214,    152,    202,   -141,   -191,    130,    180,   -121,
     -171,    112,    162,   -104,   -154,     97,    146,    -90,   -139,
       84,    133,    -78,   -126,     73,    121,    -67,   -115,     63,
      110,    -58,   -105,     54,    100,    -50,    -96,     46,     91,
      -43,    -87,     39,     83,    -36,    -80,     33,     76,    -30,
      -72,     27,     69,    -25,    -66,     22,     63,    -20,    -60,
       18,     57,    -16,    -54,     14,     52,    -12,    -49,     10,
       47,     -8,    -44,      6,     42,     -5,    -40,      3,     37,
       -1,    -35,      0,     33,      2,    -31,     -4,     29,      5,
      -27,     -7,     25,      9,    -22,    -12,     19,     14,    -15,
      -18,      9,     22,     11
};
\
и глянем разницу в картинках
Go to the top of the page
 
+Quote Post
soolo
сообщение Nov 21 2011, 08:37
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362



Цитата(Fast @ Nov 21 2011, 11:10) *
для интереса, т.е. чистоты эксперимента, попробуйте вот этот ФНЧ для 2x up-samp перед Lanczos

У нас нет up-samp перед Lanczos.
Я лишь тестер. Пойду бить программера, чтоб фильтровал после преобразования
Цитата(thermit @ Nov 21 2011, 11:17) *
Да уш... ©

Сам себе противоречу? Пойду убьюсь =) После полусотни тестов - в самый раз
Цитата(petrov @ Nov 21 2011, 11:30) *
Непонятно зачем вообще вопрос задают, сами уже всё знают...

Вопрос задавался, чтобы узнать пути решения проблемы. Форумчане подсказали, мы реализовали, протестировали и выбрали оптимальное для нас решение.
Теперь же вы начинаете критиковать это решение. Я уже пожалел, что написал его

Сообщение отредактировал soolo - Nov 21 2011, 08:41
Go to the top of the page
 
+Quote Post
Fast
сообщение Nov 21 2011, 11:59
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(soolo @ Nov 21 2011, 12:37) *
. Я уже пожалел, что написал его..
совершенно напрасно жалеете, результат он через труд сопли и кровь добывается, а не хвалебные речи и сладкие конфеты.
если мне разработчик говорит, что его уже тошнит от шлифования качества и сотой переделки, я отвечаю, если не вырвало - он еще не достиг в этом достаточного профессионального уровня. сорри за готичность.

Цитата(petrov @ Nov 21 2011, 12:40) *
..ведь каждый второй выходной отсчёт равен входному.
не могли бы пояснить этот момент, почему каждый второй идет на выход неизменным, мне кажется они не могут быть одинаковыми при любом раскладе


Цитата(soolo @ Nov 21 2011, 12:37) *
У нас нет up-samp перед Lanczos.
Я лишь тестер. Пойду бить программера, чтоб фильтровал после преобразования
упс, чуть не пропустил. Фильтровать надо ДО преобразования частоты
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - Самурай   Цитата(soolo @ Nov 17 2011, 14:35) Стоит ...   Nov 17 2011, 18:45
|- - Eger   Цитата(Самурай @ Nov 17 2011, 21:45) Я не...   Nov 18 2011, 10:12
||- - 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
||- - 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


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:46
Рейтинг@Mail.ru


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