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

 
 
> Передискретизация аудио на доли %
akorud
сообщение Jan 12 2012, 11:28
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Здравствуйте,
появилась тут проблема: на входе дано 2 потока аудио с частотой дискретизации 32kHz, с независимых источников.
На практике частоты естественно несколько отличаются - например 32.05 и 31.95.
Надо привести их к одной частоте дискретизации. Изменением высоты звука можно пренебречь.
Единственное, что пока приходит в голову - взять одну из них за опорную, а в другой поток вставлять нули / выбрасывать отсчеты (в моменты когда ризница набежит на период дискретизации) и пропустить потом через ФНЧ 16kHz.
Что скажете? Имеет право на жизнь?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
soldat_shveyk
сообщение Jan 12 2012, 16:23
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Можно сделать так: проинтерполировать оба сигнала например на N. Интерполировать честно, с КИХ-фильтром.
После интерполяции получите увеличенную частоту дискретизации N*32 кГц.
Затем от правильного таймера формируете правильные 32 кГц, и по его тактам выхватываете отсчеты из обоих интерполированных сигналов.
При этом ошибка уменьшится до величины 1/(N*32 кГц.)
При экономной реализации можно вычислять только те полифазы КИХ-интерполятора, на которые указывает правильный таймер 32 кГц.
Go to the top of the page
 
+Quote Post
akorud
сообщение Jan 15 2012, 20:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(soldat_shveyk @ Jan 12 2012, 17:23) *
Можно сделать так: проинтерполировать оба сигнала например на N. Интерполировать честно, с КИХ-фильтром.
После интерполяции получите увеличенную частоту дискретизации N*32 кГц.
Затем от правильного таймера формируете правильные 32 кГц, и по его тактам выхватываете отсчеты из обоих интерполированных сигналов.
При этом ошибка уменьшится до величины 1/(N*32 кГц.)
При экономной реализации можно вычислять только те полифазы КИХ-интерполятора, на которые указывает правильный таймер 32 кГц.

Все получилось. Сделал так - в качестве опорного таймера использовал частоту дискретизации первого сигнала и с ним ничего не делал. А второй - как выше. Причем при N = 32 уровень интермодуляций получился порядка -40dB и можно было услышать искажения. При N = 256 (x32 FIR + x8 CIC, порядок FIR-интерполятора 2000) интермодуляции <-60dB (по результат симуляции) и звук идеальный.
Еще раз спасибо за идею.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 02:34
Рейтинг@Mail.ru


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