Автор |
Сообщение |
|
Дата: 25 Янв 2023 23:43:43 · Поправил: Programmist (26 Янв 2023 00:15:14)
#
vladisslav2011
Протестируйте двухтональным сигналом. Один тон -6dbfs, второй -60dbfs.
Колом стоит. Весь спектр не гонял, конечно, но как-то так:
Что PCM32, что E-PCM16, не шевелится.
Есть разница в 2-3 дБ на слабом сигнале, но она не от формата зависит, а от точки начала измерения.
Можете сами попробовать, если есть wine.
Там другая засада, шум квантования отличается, но на уровне ниже -120. |
|
Дата: 26 Янв 2023 02:50:04
#
Programmist
Там другая засада, шум квантования отличается, но на уровне ниже -120.
значит ваш e-pcm эквавалентен pcm20.
И ваша софтина лжёт в цифре динамического диапазона: pcm16 это 96.33dB, 90.3 это pcm15
|
Реклама Google
|
|
|
Дата: 26 Янв 2023 03:01:51 · Поправил: Programmist (26 Янв 2023 03:14:54)
#
sibrat
ваша софтина лжёт в цифре динамического диапазона: pcm16 это 96.33dB, 90.3 это pcm15
Считать будем? Формулу дать?
А у кого софтины нет, по шумам квантования:
PCM32:
E-PCM16:
И это предел точности для чисел 32 бита с плавающей точкой, FFT 64 бита. |
|
Дата: 26 Янв 2023 03:09:23
#
Programmist
Ой, ну не вам в людей формулами тыкать. Возьмите и посчитайте. Я то её очень хорошо знаю :)
|
|
Дата: 26 Янв 2023 03:13:15 · Поправил: Programmist (26 Янв 2023 03:13:58)
#
sibrat
Я то её очень хорошо знаю :)
Ok, 20*LOG10(32768)= 90,3089987 Сколько бит?
|
|
Дата: 26 Янв 2023 03:14:01
#
Programmist
ойвей. 15 разумеется =)
|
|
Дата: 26 Янв 2023 03:15:53 · Поправил: Programmist (26 Янв 2023 03:21:01)
#
sibrat
Садитесь, двойка.
Вот такие тут советчики, бамбук методички курить. ))
|
|
Дата: 26 Янв 2023 03:22:26
#
Programmist
Садитесь, двойка.))
да правда чтоли?!
Во первых формула звучит так: 20*LOG10(2^n), где n - число бит.
Во вторых, я всё детство прожил программируя на ассемблере и степени двойки не забуду никогда! А вы возьмите калькулятор.
|
|
Дата: 26 Янв 2023 03:29:21 · Поправил: Programmist (26 Янв 2023 03:51:27)
#
sibrat
Причем здесь степень двойки, запишите в тип Int16 число 32768, сколько получится?
Хорошо, я подскажу: Constant expression violates subrange bounds.
я всё детство прожил программируя на ассемблере
Представить страшно, что получиться, когда Вы сделаете на ассемблере нормализацию комплексного сигнала.
|
|
Дата: 26 Янв 2023 03:53:01
#
Programmist
какая связь между алгебраическими формулами и соглашениями языка на котором вы научились писать?
|
|
Дата: 26 Янв 2023 03:55:08 · Поправил: Programmist (26 Янв 2023 05:11:46)
#
sibrat
какая связь между алгебраическими формулами и соглашениями языка на котором вы научились писать?
Не связь, а разница. Методички курят, а на языке пишут.
значит ваш e-pcm эквавалентен pcm20.
Да, а АЦП больше двадцати не бывает у простых смертных.
И -120 дБ я уже не слышу, если при нуле оглохну, так что 100 с копейками вполне приемлемая величина, 90.3 мало.
Всё равно его ещё нет, микропроцессор не тянет квадратный корень.
|
|
Дата: 26 Янв 2023 12:52:05 · Поправил: Programmist (26 Янв 2023 22:03:40)
#
Оригинал PCM16 0 дБ:
PCM16 -84 дБ:
E-PCM -150 дБ:
Имеем небольшую такую прибавочку ДД в 66 дБ и немного прибавочку в качестве, если это можно назвать немного.
С более высокой частотой дискретизации качество было бы лучше, но копилка не резиновая.
В общем, довольно показательно, что происходит с PCM16 на малых уровнях записи.
//
Если вернуться к фильтрам, то самый крутой это sinc.
Когда из сигнала надо сделать конфетку применяется именно он, но из методички вы его не сделаете.
А если и сделаете, то будет работать так медленно, что лучше вообще без фильтра.)
А в википедии херня.
Здесь, как вовремя заметил vladisslav2011: Функции высших порядков можно получить из функции нулевого порядка через полином Чебышева.
В крайнем случае, просто берите и используйте вот это.
Один из шагов к тому, чтобы ваш SDR стал лучшим по качеству звучания.
YuriVR
sibrat
И не учите меня, пожалуйста, жить, я сам разберусь, кому ходить в школу. |
|
Дата: 27 Янв 2023 20:46:23
#
Programmist
Ok, 20*LOG10(32768)= 90,3089987 Сколько бит?
Вас не учу, Вы необучаемый, но чтобы посмеяться, отмечу, что при разрядности 16 бит ДД в полной полосе по школьной формуле будет все же ближе к 96 дБ, т.к. Вы забыли учесть знак, взяв только 15 бит.
первый попавшийся источник - https://www.audiomania.ru/content/art-4042.html#:~:text=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9%20%D0%B4%D0%B8%D0%B0%D0%BF%D0%B0%D0%B7%D0%BE%D0%BD%2016%20%D0%B1%D0%B8%D1%82,%D1%82%D0%B8%D1%88%D0%B5%2C%20%D1%87%D0%B5%D0%BC%20%2D96%20%D0%B4%D0%91.
Ну а по поводу того, кто что сделал, кто-то мусорный код собирает из чужих модулей, кто-то делает железо, которое здесь обсуждают в других ветках, каждому свое ) |
|
Дата: 27 Янв 2023 21:11:11 · Поправил: Programmist (27 Янв 2023 22:10:43)
#
YuriVR
Вы забыли учесть знак, взяв только 15 бит.
Не забыл я знак.
Децибелы в сигнале всегда считались по формуле 20*LOG10( abs(U) ), где U не равно 0;
//
И что теперь? Предлагаете считать по формуле 20*LOG10( abs(U * 2) )? Это сломает всё.
|
|
Дата: 28 Янв 2023 01:19:00 · Поправил: Programmist (28 Янв 2023 01:36:19)
#
YuriVR
sibrat
И ещё как сломает.
Хорошо, пусть будет по-вашему: 20*LOG10(2^n), где n - число бит.
В таком случае: 20*LOG10(2^32) = 192.6591972 дБ.
Тогда вот это что? -800 дБ в сигнале float 32 бита:
Да ещё и прекрасно разговаривает после нормализации.
Я, конечно, мог ошибиться, но не настолько! Откуда взялись лишние 600 дБ? |
|
Дата: 28 Янв 2023 01:37:44
#
Programmist
20*LOG10(2^32) = 192,6591972 дБ.
Для целочисленных сэмплов. В случае float динамический диапазон считается иначе.
Попробуйте 16bit float вместо вашего извращения с возведением в квадрат - будете приятно удивлены динамическим диапазоном (~180db). Но, как и в случае с квадратом, шумы дискретизации тоже будут расти вместе с сигналом)
|
|
Дата: 28 Янв 2023 01:46:27 · Поправил: Programmist (28 Янв 2023 04:01:13)
#
vladisslav2011
В случае float динамический диапазон считается иначе.
Как считается, когда везде float? Ладно, завтра сам разберусь, может быть...
В конце-концов эта ошибка ни на что не влияет, кроме надписи на галочке, даже на показометры уровня.
Из-за чего и спор возник. Но переделывать всё равно много.
С целыми числами наука победила, 1:1 в её пользу, 20*LOG10(2^n), где n - число бит.
Теперь мяч на моей стороне.)
Попробуйте 16bit float
Попробую, но не сегодня, такого типа нет, надо определять самостоятельно:
https://galfar.vevb.net/wp/2011/16bit-half-float-in-pascaldelphi/
Отличная идея! Вопрос не менее серьёзный, как это реализовать на микропроцессоре.
как и в случае с квадратом, шумы дискретизации тоже будут расти вместе с сигналом
Померяем, послушаем, разберёмся, что вкусней.)
Странно, почему при разработке CD сразу float не сделали, тогда и разговоров бы не было, что лучше, винил или цифра.
У ушей тоже слух логарифмический, и не услышал бы никто шумов квантования в конце туннеля.)
А если ещё 8 бит float сделать, выходит что разработчики кодеков извращались зря.
Проверить надо обязательно, что даст меньше гармоник...
Глядишь, и в SDR можно в два раза меньше данных в порты загонять.
Методичка : http://www.radioscanner.ru/uploader/2022/8-bit_floating_point.pdf |
|
Дата: 28 Янв 2023 04:04:29
#
vladisslav2011
Попробуйте 16bit float вместо вашего извращения с возведением в квадрат - будете приятно удивлены динамическим диапазоном (~180db). Но, как и в случае с квадратом, шумы дискретизации тоже будут расти вместе с сигналом)
формат float расширяет дд ценой thd. Если для 32 бит это абсолютно пренебрежимо, то для half-float, думаю, будет уже критично.
|
|
Дата: 28 Янв 2023 04:08:18 · Поправил: Programmist (28 Янв 2023 04:08:56)
#
sibrat
для half-float, думаю, будет уже критично
Всё проверим, померяем, посмотрим на спектре, сравним и послушаем, но завтра.
|
|
Дата: 28 Янв 2023 04:17:32 · Поправил: sibrat (28 Янв 2023 04:19:12)
#
Хотя, что-то мне подсказывает что "thd+n" для float32 и int32 должен быть одинаков. Ибо нельзя сотворить больше данных из ничего.
Тут весь вопрос в том что мы продаём: если продаём дд то надо float, если продаём линейность - то int.
|
|
Дата: 28 Янв 2023 06:32:45
#
Programmist
Странно, почему при разработке CD сразу float не сделали
Вероятно потому, что компакт-диск не резиновый, и если увеличить разрядность, то время записи уменьшится, диск уступал бы винилу по времени. Когда появились CDDA, технологии были совсем иными, емкость 700 Мбайт была пределом. Легенда гласит, что формат и объем были выбраны так, чтобы любимое музыкальное произведение директора Sony (пишу по памяти, может не директора, но какого-то начальника) влезло на диск.
А по поводу 16 бит и 96 дБ смысл изучения и понимания книг в том, что при наличии понимания чушь про 90 дБ не написать. Считается то легко – каждый разряд повышает точность представления напряжения сигнала в 2 раза. 2 раза по напряжению – это 6 дБ.
Соответственно,16 разрядов без знака или 15 плюс 1 знак – не важно, число уровней сигнала одинаковое, точность представления одинаковая, значит, 16 умножить на 6 равно 96, все, никакой магии.
|
|
Дата: 28 Янв 2023 07:18:42 · Поправил: sibrat (28 Янв 2023 11:02:47)
#
YuriVR
Легенда гласит
Это легенда. 100500 раз опровергнутая =)
CDDA возникла не на пустом месте, компакт диск не первый цифровой звук и не первый лазерный диск. цифровой звук существовал и до изобретения компакт-диска. Частота 44100 это 294 × 50 × 3 или 245 × 60 × 3. Что это за цифры? Это число активных (видимых) строк на частоту полей по три (шесть для стерео) выборки на строку. Для PAL и NTSC стандартов. Да, чёрт возьми, до изобретения CD цифровой звук записывали на видеомагнитофоны!
А вот с диаметром (12см) сложнее. Скорее всего выбрали ближайшую круглую цифру к диагонали компакт-кассеты (11.5см) чтобы не выпасть из сегмента "компакт". провал огромных "laserdisk" ещё был очень свеж в памяти.
|
|
Дата: 28 Янв 2023 08:14:21 · Поправил: Programmist (28 Янв 2023 09:25:56)
#
YuriVR
Вероятно потому, что компакт-диск не резиновый, и если увеличить разрядность, то время записи уменьшится
Не об этом речь, а о том что при использовании E-PCM кодирования время не уменьшится, а качество возрастёт в разы.
Компакт-диск он ведь не для точных измерений в децибелах предназначен, а музыку слушать.
Другое дело что в то время чипов для float не было, и мне на этих граблях ещё поскакать придётся.
Примерно как с квадратным корнем получилось. Либо AES256, либо E-PCM, а всё вместе микропроцессор не тянет.
при наличии понимания чушь про 90 дБ не написать
Я чушь про 90 дБ не писал, если и написал где, то для ускорения понимания, а не ускорения расчётов.
Тем более, здесь показано что получится, если записать в PCM16 -84 дБ. А кто не верит, может попробовать записать -90, чтобы посмеяться.
И -800 дБ в PCM32 присутствует, для сравнения.
Бабушка надвое сказала, кто больше ошибся, я на 6 дБ, или наука на 600++.)
Даже показометры в проекте у меня выглядят так:
И не потому что в PCM16 = -60 дБ, а потому что при реальном подключении устройств, в данном частном случае микрофонов, меньше не бывает.
//
В общем, я вижу, здесь дело заходит в тупик, если с количеством слонов на спектрометре быстро разобрались, то здесь ларчик не так просто открывается. |
|
Дата: 28 Янв 2023 10:22:26
#
И не буду ничего исправлять, необучаемый я.
Кто верит в 96 дБ пусть пишет сигналы с уровнем -90 в PCM16, а мне хватит и -150 в E-PCM, при той же плотности записи на компакт-диск.
|
|
Дата: 28 Янв 2023 10:24:57
#
sibrat
до изобретения CD цифровой звук записывали на видеомагнитофоны
Это общеизвестно, как и то, что винилы лет 20 или больше уже штампуют с цифровых носителей. Но речь не об этом. Студийная бобина магнитофона может и больше объем иметь, чем компакт-диск. Речь о том, почему CDDA вмещает 74 минуты, а не 30 или 140. В те времена нельзя было создать бытовой (т.е. дешевый) носитель типа DVD или BD и плееры к нему. А длительность 74 минуты вполне достаточная для большей части LP.
|
|
Дата: 28 Янв 2023 10:35:07
#
YuriVR
почему CDDA вмещает 74 минуты, а не 30 или 140.
Потому что 9-я симфония Бетховена длительностью 73 минуты.
|
|
Дата: 28 Янв 2023 10:37:55 · Поправил: sibrat (28 Янв 2023 10:49:22)
#
Programmist
Потому что 9-я симфония Бетховена длительностью 73 минуты.
66
YuriVR
А длительность 74 минуты вполне достаточная для большей части LP.
максимальный 12" винил это примерно 22 минуты одна сторона
З.Ы.
Был винил со сверхтонкой дорожкой - со сжатым дд, это 70 минут обе стороны предел.
Были виниловые аудиокниги на 16 об/мин - это уже где-то 90 минут. И диски для супермаркетов. Но это уже не hifi.
|
|
Дата: 28 Янв 2023 10:40:58 · Поправил: Programmist (28 Янв 2023 10:46:38)
#
sibrat
66
Спорный вопрос, но размер CDDA именно оттуда пошёл.
Самое известное длинное музыкальное произведение в мире.
|
|
Дата: 28 Янв 2023 10:49:26 · Поправил: wazzoo (28 Янв 2023 10:52:47)
#
Programmist
Кто верит в 96 дБ
Вы все с ног на голову перевернули. Это не вопрос веры, чистая математика. Количество разных чисел в 32 битах не может быть больше чем 2 в степени 32. Хоть как вы эти числа кодируйте - и во флоате дельфийском тоже количество разных чисел будет не больше.
А вот что касается ДД - вы просто подменяете ДД, свободный от искажений на ДД сигнала с искажениями.
Вы можете сделать например ДД=100дБ на 2х битах:
00=напряжение 1 от максимального
01=напряжение 1/100
10=напряжение 1/1000
11=напряжение 1/100000
Это тоже float, только мы сэкономили 30 бит и взяли 2 битный. И ДД здесь = 100 дБ
И легким изменением этого флоата вы можете получить ДД и 1000дБ - догадаетесь, думаю, как.
Но только вот сигнал у вас будет иметь искажения. И конечо, когда говорят о кодировании сигнала - речь ведут о ДД сигнала без искажений. И расчет требуемой частоты отсчетов и требуемой битности (а если точнее - требуемого числа градаций) идет для сигнала без искажений.
Тут даже не надо быть обучаемым - просто логику включите. Дельфийский флоат (как и флоат в других языках) - это именно оно, число с плавающей запятой - у которого могут быть какие угодно максимальные/минимальные значения, но количество разных чисел все равно будет не выше 2ки в степени числа бит.
|
|
Дата: 28 Янв 2023 10:55:38
#
Programmist
Самое известное длинное музыкальное произведение в мире.
Вот это уж действительно спорное утвреждение. =)
К тому же 9-я сифония состоит из четырёх частей - нет ни малейшей даже гипотетической причины подгонять формат под их суммарную длительность.
|
Реклама Google |
|