Очень бы хотелось посмотреть на ваши прикидки.
По моим прикидкам современный Ivy Bridge легко потянет задачу с 8-ю каналами, и еще остаться должно больше половины...
По какому алгоритму Вы собираетесь делать конвертацию?
---------- Добавлено в 19:46 ---------- Предыдущее сообщение в 19:11 ----------
Для своих прикидок я предполагал программное восстановление аналога с дальнейшим программным переводом в DSD
---------- Добавлено в 19:57 ---------- Предыдущее сообщение в 19:46 ----------
А для этого требуется много ядер с плавающей арифметикой при современных частотах
PCM - DSD 64 съест где-то грубо 512 тактов на PCM отчет, т.е. ядро в - 3ГГц потратит примерно 1% процессорного времени в реалтайме.
FFT сработают еще быстрее...
Другими словами реалтайм с запасом возможен, но повторюсь, что это на будущее проекта.
Для 1 PCM отсчёта при конвертации в DSD 64 нужно последовательно вычислить 63 промежуточных значения функции с достаточной точностью (преобразование в плавающий формат и обратно. линейная интерполяция не катит) и вычислить очередной бит DSD(тут все просто. на это как раз и уйдет грубо 512 на все). Так что это очень далеко не 512 мт
В первую очередь буду делать те чести проекта, без которых невозможен первый этап: заставить все это звучать.
Примерный план.
- Заставляем RPi воспроизводить DSD, записанный на SD карте, воспроизводим через простенький DAC
- Разбираемся с линиями передачи данных, например на базе LVDS
- Запускаем цифровые усилители в конфигурации 3+3+1, 3 полосы левый канал, три правый и сабвуфер
- Берем стрим по TCP/IP
- Реал-тайм конвертор на PC с простеньким ДУ на базе Андроид.
Если есть желание присоединится к проекту и сделать этот реал-тайм конвертор, то буду только приветствовать.
По поводу 4 первых пунктов - надеюсь получится. Но основная сложность именно в 5 пункте, при условии что хотим получить хоть что-то звучащее уровнем повыше, чем пластмассовые комп. колонки.
По порядку прохождения сигнала.
1. Цифровой фильтр.
На входе PCM( пусть 44\16) реального музыкального сигнала. На выходе 3 PCM.
Предлагается алгоритм БПФ/ДПФ.
Смотрим, что для этого необходимо:
Разложимость функции входного сигнала в гармонический ряд Фурье <- > ПЕРИОДИЧНОСТЬ и непрерывность входной функции.
Но муз. сигнал, что-то имхо не очень похож на периодический (кроме какой-нибудь экзотики). Отсюда вывод : применение алгоритмов БПФ\ДПФ мягко говоря некорректно. Разве что для графической индикации и компьютерной непритязательной акустики. Места появления "косяков" при попытке применении алгоритмов БПФ\ДПФ для музыкального сигнала хорошо просматриваются.
Реальных алгоритмов для высококачественного полосного разделения я не знаю.
2. Конвертация.
Для получения качественного кода DSD на входе конвертера должен быть аналоговый сигнал либо дискретный но с той же частотой дискретизации. В нашем случае для получения аналогового входного сигнала нужно восстановление. Можно, конечно, программно эмулировать работу качественного ЦАП и фильтра. Но стоит ли оно того.
Имхо п.5 явно не продуман.
Интересная и простая реализация DSD DAC
http://fpga.cool.coocan.jp/electrart/FIRTST.pdf
Только периодических. Для непериодических - интегральной суммой сплошного и непрерывного спектра гармоник. Т. е. ачх непериодической функции непрерывна, а периодической имеет дискретный вид. Я надеюсь, Вы понимаете разницу.
Так, что вывод у меня достаточно корректен, за исключением случая, когда периодом можно считать всё время звучания одной композиции и отсчет дискретного спектра пойдет почти с нулевой частоты
Для уточнения на пальцах :соседние частоты в непериодическом разложении отличаются на бесконечно малую величину для непрерывной, дифференцируемой функции в общем случае. Поэтому БПФ\ДПФ здесь не применим в принципе.
Ещё раз пересмотрел теорию. Остался при своём мнении.
Алгоритмов для корректной и качественной программной реализации фильтра у меня нет.
Уж извините.
Последний раз редактировалось Alester; 02.04.2013 в 08:52.
Первые испытания показали следующее, хоть GPIO может переключаться со скоростью 40 Мбит/с, возможны задержки и весьма серьезные. При быстром DSD 128-256 это будет уже недопустимо. Ломаю голову, скорее всего придется просить написать товарища на Verilog эластичный буфер для простенького FPGA отсчетов на тысячу. После чего поедем дальше уже с испытаниями со звуком...
Вполне возможно, может даже удасться до этого дожить.Правда, боюсь мне тогда уже будет не до звука, по понятным причинам.
Весь "мейнстрим" сидит на мр3, ДД/АС3 и айфонах. Ты уверен, что это имеет отношение к качественному звуку и к этому форуму?
Это на Малине, или на чём?
"Замполит, чайку?"(с)"Охота за Красным Октябрем".
"Да мне-то что, меняйтесь!"(с)анек.
<-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.
"Замполит, чайку?"(с)"Охота за Красным Октябрем".
"Да мне-то что, меняйтесь!"(с)анек.
<-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.
2000 рублей, естественно...
Это совершенно не естественно, но если бы ты поставил в конце "р." то небыло бы вопросов.
(а в $/E я бы гуглом и сам перевел).
"Замполит, чайку?"(с)"Охота за Красным Октябрем".
"Да мне-то что, меняйтесь!"(с)анек.
<-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.
Погонял на Adobe Audition FFT фильтры. Стерео 24/196 продолжительностью 250 секунд, преобразует к полосе 60 Гц - 6 кГц за 1,02 секунды.
Процессор у меня i5-3470, т.е. не самый чтобы быстрый.
Грубо получается можно запустить на нем в реалтайме одновременное FFT на 500 каналов!
Социальные закладки