| Автор | Сообщение | 
|  | Дата: 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
 | 
|  | Дата: 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-я сифония состоит из четырёх частей - нет ни малейшей даже гипотетической причины подгонять формат под их суммарную длительность.
 |