Оцифровка при том, что считать данные в этом формате получилось и на другом компьютере - PC. Если бы всё было совсем плохо с форматом, считать данные на PC бы не получилось - невозможно было бы отличить 0 от 1. А так получилось, хоть и не без ухищрений.
Полупериодов на бит в моем формате - один. То есть весь формат построен на неравных полупериодах, причем полупериоды ещё и сокращены вдвое по сравнению со стандартным спектрумовским кодированием (а поскольку один бит у меня - один фронт, в целом получается в 4 раза быстрее). И всё читалось. Конечно, с учетом цифрового усилителя записи на записывающем магнитофоне, и хороших кассет. Но читалось, и с разными магнитофонами, правда, с подстройкой головки.
- - - Добавлено - - -
Вот именно этим мой формат и занимался - передавал биты каждым фронтом волны. Удваивая скорость, да. Плюс еще одно удвоение за счет укорачивания фронтов вдвое.
Ну я уже объяснил, почему считывание данных на любом компьютере PC не имеет никакого значения. Это не имеет ничего общего с однобитным АЦП реального Спектрума. Где там у вас чего читалось с полупериодом на бит - сильно частный случай. А в PC - на здоровье, грузите что угодно, и расшифровывайте как угодно, тем более с ухищрениями, что само за себя уже говорит о надежности. Но к рассматриваемой теме это все не относится. Иначе в формате еще меньше смысла, чем даже было заявлено автором изначально.
Ну вот да, и надежность никакая... Будем реалистами.
Последний раз редактировалось cafedead; 24.07.2018 в 21:14.
Надежность была на высоте в заданной конфигурации - заводской Орель БК-08, магнитофон Весна с доработкой - цифровым усилителем записи (читал и с других магов), и кассеты с качественной пленкой. Если бы надежность была никакая, я бы этот формат не использовал, остановился бы на обычном турбо, скорее всего. Но мне захотелось проверить, будет ли работать вот так. И оказалось, что вполне работает. И причем даже спустя много лет данные с кассет считать реально. Так что надежность вполне приличная. Как я уже упомянул, она оказалась выше (намного), чем на учетверённой скорости обычного формата, с двумя фронтам на бит - такой формат не вытягивал даже с цифровым усилителем и качественной пленкой.
Конечно, оригинальный формат работал и на обычных советских кассетах, с обычной записью. Но у многих людей и с ним были проблемы.
На многих ретрокомпьютерах на магнитофонах использовалась фазовая модуляция для записи данных. Она также предполагает разные длины соседних фронтов (зато фиксированную длину бита на ленте). Разработчики Спектрума вполне могли остановиться на ней.
Ну и я не утверждал, что широтно-импульсная модуляция так же надежна, как частотная. Нет - но она вполне может использоваться при некоторых условиях (цифровом усилении сигнала при записи, например, или коррекции ошибок). А судя по вашим словам её вообще использовать не получится.
Ну у нас речь про реальный "Спектрум", а не про другие ретро-компьютеры, вероятно, с другим железом. Поэтому действительно не получится. В алгоритме же коррекции ошибок, как я понимаю, нет, и пока не предвидится, или с этого стоило бы начать, а не с безудержного разгона кривых волн. Сплошные фантазии какие-то на тему.
У меня получилось, так что не "сплошные фантазии какие-то на тему". Возможно, и у других получилось бы, или получится. Другое дело, что сейчас в этом смысла нет.
- - - Добавлено - - -
Я могу сделать модифицированный вариант стандартного ПЗУ Спектрума 48, с ШИМ вместо ЧМ на стандартных частотах, с которым любой обладатель реала, позволяющего впечатывать в нижнее окно памяти страницу ОЗУ (а это Орель, Робик, Скорпионы, +2А/+3), может сделать ШИМ-записи программ и потестить их читаемость на его железе. Это альтернативный обычным турбо-записям вариант ускорения загрузки в два раза.
Спасибо! Кассету записал и выслал. Проверить качество записи не удалось, т.к. у моего компьютера, оказывается, нет аудиовхода А через микрофон не прочиталось. Магнитофон довольно паршивенький, на слух - много детонаций. Так что должен быть хороший тест с этой кассетой!
Для остальных - tzx-файл, который можно как испытывать непосредственно в эмуляторах, так и записать на живую кассету и потом грузить на реале или через PC и обработку. Вот. Там загрузчик в стандартном формате и много экранов в 8b/10b.
- - - Добавлено - - -
Добро пожаловать!
Честно говоря, не помню уже. Но они все рабочие, некоторые только чуть хуже, не так строго выдерживают времянки.
Что значит "неравномерно выдержаны фронты сигнала"?
Можешь выложить звуковой файл с этой записью на гуглодрайв или еще куда, и дать мне ссылку? Хочу посмотреть, что именно произошло с сигналом. Вообще, мой формат был испытан на нескольких магнитофонах и имел проблемы пока только на одном (Haywire).
А мой становится нечитаемым?
Это ты описываешь обработку сигнала эмулятором? Не факт, что именно описанный тобой способ там используется. По-моему ты описал работу фильтра высоких частот (ФВЧ) с двухуровневым квантователем, но не уверен.
В моем случае никакой цифровой обработки сигнала в эмуляторе не производилось. Я брал звуковой файл (в том числе файлы, присланные другими пользователями, оцифрованные с реальных кассет) и с помощью своей матлаб-утилиты "wav2tzx", переводил его в формат TZX. А этот файл уже скармливал эмулятору, который никаких скользящих средних или другой обработки сигнала не производил.
Правильно ли я понял, что ты описываешь некий алгоритм расчета значения, по которому надо отличать в сигнале единицы от нулей? Что если сигнал выше некоторого порогового значения - то он будет воспринят как "1", а если ниже - то как "0"?
Если так, то не все так плохо, как ты описываешь. Расчет порогового значения скользящим средним - это то же самое, что фильтр высоких частот (ФВЧ). Если этот фильтр имеет низкую частоту среза (20Гц и ниже) - то он удалит постоянную составляющую из сигнала, а нулевой уровень окажется оптимальным, чтобы использовать его в качестве порогового значения.
Обычно совпадает, потому что во всех магнитофонах постоянная составляющая не записывается и не воспроизводится. Все тракты сигнала содержат проходные конденсаторы, которые (совместно с резисторами) образуют ФВЧ с низкими частотами среза.
У меня обычно полосы были одинаковыми, но я имел счастье использовать спектрум с хорошим магнитофонным входом ("Орель БК-08"), где для квантования сигнала используется микросхема компаратора (554СА3). Вот в дешевых клонах, где вместо компаратора используется логический элемент, может быть такое, что квантование производится не по нулевому уровню, а со смещением. Стандартный формат таким не убивается, а вот мой, в зависимости от прочих искажений, может пострадать. Надо будет поизучать вопрос.
При увеличении громкости величина смещения нуля относительно амплитуды сигнала уменьшается, а следовательно, симметрия порогового значения должна улучшаться. Другое дело, если там смещение составляет десятки процентов от максимально возможной амплитуды сигнала магнитофона - тогда повышать некуда.
Можно здесь подробнее, что имеется в виду? Если речь идет об инверсии сигнала - то мой формат устойчив к инверсии, будет грузить.
Что значит "не выдерживаю фронты сигнала по длительности"? Что под этим имеется в виду?
Нет, не превращается. Где-то прямоугольный сигнал искажается, но совсем в синус не переходит. Я при испытаниях обрабатывал сигнал фильтрами низких частот где-то 4 порядка с частотой среза 2000Гц. После этого от прямоугольника действительно мало что остается, но этого тем не менее достаточно для уверенной загрузки в новом формате. В теории должно грузиться, даже если убрать полностью все частоты выше 2000Гц без существенных фазовых искажений. Должно грузиться. Теорема Котельникова, однако.
Со мной можно на эти темы разговаривать не на образном, а на строгом языке теории линейных систем и фильтров, и обработки сигналов. Пожалуйста, объясни точнее, что ты имеешь в виду. Тогда мы сможем проанализировать и точно выяснить, делают ли некоторые фильтры невозможной загрузку в предлагаемом мной формате.
Длительность фронтов спектрумом не контролируется. Фронт кусочно-постоянного сигнала, каким является сигнал с магнитофонного выхода - это процесс перехода его с одного уровня на другой. Длительность этого процесса обусловлена не программой, а характеристикой магнитофонного выхода, наличием ФНЧ, конечностью быстродействия микросхем.
Возможно, ты "длительностью фронтов" называешь на самом деле длительность нахождения сигнала на постоянном уровне, т.е. длительность участков между фронтами. Давай тогда использовать общепринятые в отрасли термины, а то тяжело.
Если я правильно понял твои образные объяснения - то на строгом языке это звучит как опасение, что в сигнале 8b/10b присутствует постоянная составляющая. Нет, постоянной составляющей сигнал 8b/10b не имеет, хотя разбаланс количества нулей и единиц может кратковременно достигать +-4, что выше, чем в сигнале Спектрума (там максимально 2).
Да, получается НЧ-волна (я достаточно хорошо представляю себе такие вещи, чтобы не проводить эксперимент). Это свидетельствует о том, что в сигнале 8b/10b содержится несколько больше низких частот, чем в сигнале стандартного формата. Хотя в сигнале стандартного формата тоже есть низкие частоты. Попробуй запиши на кассету файл с псевдослучайным содержимым (например, содержим ПЗУ) и проведи на нём описанный тобой эксперимент - тоже получится НЧ-волна.
Также хочу заметить, что скользящее среднее - это частный случай фильтра низких частот (ФНЧ). Поэтому для иллюстрации сказанного тобой выше можно пользоваться не только скользящим средним, но и другими ФНЧ с похожей АЧХ. Также можно использовать спектральный анализатор для определения того, сколько и каких частот содержится в сигнале. Я в этой теме, кажется, выкладывал спектрограммы сигналов как в формате 8b/10b, так и в стандартном.
Вообще говоря, усиление низов должно убить и синклерский формат, если оно совсем уж чрезмерное. Хотя для синклерского формата характерно очень низкое содержание НЧ по сравнению со всеми другими форматами, которые я изучал, поэтому, с точки зрения "горба на низах", синклерский формат имеет преимущество. Так как меньше исходное содержание НЧ - то меньше будет и их содержание после усиления.
Но я думаю, что магнитофон все же должен соответствовать хотя бы некоторым минимальным требованиям, например, четвёртой (самой худшей) группе сложности по ГОСТ 24863-87. Там указана максимальная неравномерность АЧХ, а значит, ограничена и величина возможного "усиления по низам".
Никаких специализированных. Способ уже проверялся на нескольких магнитофонах и работает. Я для определённости хочу потребовать соответствие магнитофона требованиям ГОСТ 24863-87 для четвёртой группы сложности. Любой формат можно убить чрезмерными искажениями, поэтому следует задаться каким-то определенным максимально допустимым их уровнем и испытывать на нём.
Если, как ты говоришь, "уравновешивать" (то есть использовать только последовательности кодированного сигнала вида "10" и "1100" - то получится синклерский стандартный формат, который в этих рамках уже нельзя улучшить. Но я верю, что в этом нет необходимости. Кроме Спектрума есть компьютеры, использовавшие для записи на кассету Манчестерский код (также известный под названием "фазовая модуляция"), а это уже шаг вперёд по эффективности. Код 8b/10b ещё более эффективный, и он показал работоспособность, по меньшей мере, на некоторых магнитофонах. Тот магнитофон, где формат не заработал - он ужасно убивает сигнал, по меньшей мере, при записи. Он точно не соответствует никакому ГОСТу; проблема только в том, что он встроен в Spectrum +2.
Формат 8b/10b делает даже больше. Он передаёт биты каждым битовым интервалом, в течение которого может быть, а может и не быть изменения уровня сигнала (т.е. "фронта"). Так как частота кодированных битовых интервалов как на синклерском формате, так и на 8b/10b, составляет 4кГц - то передаётся 4 килобита в секунду. Для обеспечения заданных свойств кодированного сигнала (отсутствие постоянной составляющей и др.) каждым 8 полезным битам соответствует 10 кодированных бит (отсюда и название формата). Формат даёт скорость в 400 полезных байт в секунду, что в среднем в 2 с половиной раза выше, чем скорость стандартного формата на файлах, состоящих из 50% нулей и единиц. При этом скорость записи 8b/10b не зависит от содержания файла (у синклерского формата - зависит).
Последний раз редактировалось Barmaley_m; 28.07.2018 в 22:59.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)