User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 313

Тема: Новый, более эффективный кассетный формат

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    04.07.2012
    Адрес
    г. Москва
    Сообщений
    578
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    43 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Ребята, может, оживим тему немного? Надо сделать еще один рывок и понять, почему формат не работал на магнитофоне Haywire.

    Перечитал старые сообщения. Похоже, я был слишком категоричен и отказывался от реальных испытаний, считая, что причины искажений понятны, а на самом деле это не так. Хочу попробовать выяснить конкретно по магнитофону Haywire - что там именно за искажения. Возникают ли они при записи или при считывании. И проявляются ли они на других экземплярах Spectrum +2.

    Требуется помощь клуба. Обладатели Spectrum +2 со встроенными магнитофонами, включая Haywire - отзовитесь! Я вышлю вам кассету с записью в новом формате, ваша задача будет вставить ее в магнитофон и попробовать загрузить.
    Я тут. Не вопрос, хотите высылайте кассету. Хотите, файл - запишу на магнитофоне. Есть 2 штуки +2 со встроенными мафонами. Есть +3 с декой JVC TD-W7SD.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня получилось, так что не "сплошные фантазии какие-то на тему". Возможно, и у других получилось бы, или получится. Другое дело, что сейчас в этом смысла нет.

    - - - Добавлено - - -

    Я могу сделать модифицированный вариант стандартного ПЗУ Спектрума 48, с ШИМ вместо ЧМ на стандартных частотах, с которым любой обладатель реала, позволяющего впечатывать в нижнее окно памяти страницу ОЗУ (а это Орель, Робик, Скорпионы, +2А/+3), может сделать ШИМ-записи программ и потестить их читаемость на его железе. Это альтернативный обычным турбо-записям вариант ускорения загрузки в два раза.

  4. #3

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от haywire Посмотреть сообщение
    Я тут. Не вопрос, хотите высылайте кассету. Хотите, файл - запишу на магнитофоне. Есть 2 штуки +2 со встроенными мафонами. Есть +3 с декой JVC TD-W7SD.
    Спасибо! Кассету записал и выслал. Проверить качество записи не удалось, т.к. у моего компьютера, оказывается, нет аудиовхода А через микрофон не прочиталось. Магнитофон довольно паршивенький, на слух - много детонаций. Так что должен быть хороший тест с этой кассетой!
    Для остальных - tzx-файл, который можно как испытывать непосредственно в эмуляторах, так и записать на живую кассету и потом грузить на реале или через PC и обработку. Вот. Там загрузчик в стандартном формате и много экранов в 8b/10b.

    - - - Добавлено - - -

    Цитата Сообщение от cafedead Посмотреть сообщение
    Привет... Мне, как фанату ленточных загрузок, стало интересно,
    Добро пожаловать!
    Цитата Сообщение от cafedead Посмотреть сообщение
    В общем, я сохранил то, что сохраняет твоя сохранялка (версия 130717, это последняя?).
    Честно говоря, не помню уже. Но они все рабочие, некоторые только чуть хуже, не так строго выдерживают времянки.
    Цитата Сообщение от cafedead Посмотреть сообщение
    И мне сразу не понравилось то, что у тебя неравномерно выдержаны фронты сигнала,
    Что значит "неравномерно выдержаны фронты сигнала"?
    Цитата Сообщение от cafedead Посмотреть сообщение
    в результате чего волна после выхода из эмулятора, и из звуковой карты, и после входа в другую звуковую карту, превращается во что-то вообще непотребное... И это без всяких магнитофонов.
    Можешь выложить звуковой файл с этой записью на гуглодрайв или еще куда, и дать мне ссылку? Хочу посмотреть, что именно произошло с сигналом. Вообще, мой формат был испытан на нескольких магнитофонах и имел проблемы пока только на одном (Haywire).
    Цитата Сообщение от cafedead Посмотреть сообщение
    Стандартный спектрумовский сигнал так же уродуется, но при этом остается читаемым.
    А мой становится нечитаемым?
    Цитата Сообщение от cafedead Посмотреть сообщение
    Я могу объяснить, почему эмуляторы твой контент могут прочитать. Поскольку эмулятору не известно, что придет на современный вход с АЦП хорошего разрешения, то, как вариант, по входящим данным считается скользящая средняя необходимой глубины, которую можно принять за середину, все что выше нее принимается за 0 для порта, все что ниже - за 1, ну или наоборот.
    Это ты описываешь обработку сигнала эмулятором? Не факт, что именно описанный тобой способ там используется. По-моему ты описал работу фильтра высоких частот (ФВЧ) с двухуровневым квантователем, но не уверен.

    В моем случае никакой цифровой обработки сигнала в эмуляторе не производилось. Я брал звуковой файл (в том числе файлы, присланные другими пользователями, оцифрованные с реальных кассет) и с помощью своей матлаб-утилиты "wav2tzx", переводил его в формат TZX. А этот файл уже скармливал эмулятору, который никаких скользящих средних или другой обработки сигнала не производил.
    Цитата Сообщение от cafedead Посмотреть сообщение
    В результате, какой бы ужасной ни была волна, эмулятор, или утилита для выделения сигнала, без труда передаст нужный бит либо в виртуальный порт виртуального Спектрума, либо в файл образа кассеты. Но реальный Спектрум такое вряд ли сможет. У него середина фиксированная, никуда с этого значения не уедет.
    Правильно ли я понял, что ты описываешь некий алгоритм расчета значения, по которому надо отличать в сигнале единицы от нулей? Что если сигнал выше некоторого порогового значения - то он будет воспринят как "1", а если ниже - то как "0"?

    Если так, то не все так плохо, как ты описываешь. Расчет порогового значения скользящим средним - это то же самое, что фильтр высоких частот (ФВЧ). Если этот фильтр имеет низкую частоту среза (20Гц и ниже) - то он удалит постоянную составляющую из сигнала, а нулевой уровень окажется оптимальным, чтобы использовать его в качестве порогового значения.
    Цитата Сообщение от cafedead Посмотреть сообщение
    Более того, она еще и не совпадает обычно с серединой, которую выдает магнитофон...
    Обычно совпадает, потому что во всех магнитофонах постоянная составляющая не записывается и не воспроизводится. Все тракты сигнала содержат проходные конденсаторы, которые (совместно с резисторами) образуют ФВЧ с низкими частотами среза.
    Цитата Сообщение от cafedead Посмотреть сообщение
    У моих Спектрумов при загрузке ни разу не было красно-голубых полос одинакового размера, т.е. один фронт у приходящей волны пилота всегда оказывался длиннее, второй - короче.
    У меня обычно полосы были одинаковыми, но я имел счастье использовать спектрум с хорошим магнитофонным входом ("Орель БК-08"), где для квантования сигнала используется микросхема компаратора (554СА3). Вот в дешевых клонах, где вместо компаратора используется логический элемент, может быть такое, что квантование производится не по нулевому уровню, а со смещением. Стандартный формат таким не убивается, а вот мой, в зависимости от прочих искажений, может пострадать. Надо будет поизучать вопрос.
    Цитата Сообщение от cafedead Посмотреть сообщение
    И дело не в громкости, ибо громкость увеличивала амплитуду сигнала относительно центра сигнала магнитофона, а центр разделения 0 и 1 порта Спектрума был иным.
    При увеличении громкости величина смещения нуля относительно амплитуды сигнала уменьшается, а следовательно, симметрия порогового значения должна улучшаться. Другое дело, если там смещение составляет десятки процентов от максимально возможной амплитуды сигнала магнитофона - тогда повышать некуда.
    Цитата Сообщение от cafedead Посмотреть сообщение
    Более того, частотная модуляция предполагает, что в случае чего может быть пойман вообще противоположный фронт волны, и без проблем данные начнут читаться с него...
    Можно здесь подробнее, что имеется в виду? Если речь идет об инверсии сигнала - то мой формат устойчив к инверсии, будет грузить.
    Цитата Сообщение от cafedead Посмотреть сообщение
    В рамках одной звуковушки все более ли менее хорошо выглядит, ну и там отлично видно, что фронты сигнала ты по длительности не выдерживаешь.
    Что значит "не выдерживаю фронты сигнала по длительности"? Что под этим имеется в виду?
    Цитата Сообщение от cafedead Посмотреть сообщение
    К чему это приводит?! Тебе ведь известно, что прямоугольная волна, которую выдает Спектрум, после всех усилителей, процессов записей, процессов чтения, превращается в синус?
    Нет, не превращается. Где-то прямоугольный сигнал искажается, но совсем в синус не переходит. Я при испытаниях обрабатывал сигнал фильтрами низких частот где-то 4 порядка с частотой среза 2000Гц. После этого от прямоугольника действительно мало что остается, но этого тем не менее достаточно для уверенной загрузки в новом формате. В теории должно грузиться, даже если убрать полностью все частоты выше 2000Гц без существенных фазовых искажений. Должно грузиться. Теорема Котельникова, однако.
    Цитата Сообщение от cafedead Посмотреть сообщение
    Этот синус - это результат работы всего этого НЧ-фильтра, представленного в виде всех этих процессов, всей электроники, которую проходит сигнал... Ну там на пути сигнала всякие конденсаторы заряжаются, разряжаются... Математически можно представить тоже в виде скользящей средней по данным сигнала с определенной глубиной.
    Со мной можно на эти темы разговаривать не на образном, а на строгом языке теории линейных систем и фильтров, и обработки сигналов. Пожалуйста, объясни точнее, что ты имеешь в виду. Тогда мы сможем проанализировать и точно выяснить, делают ли некоторые фильтры невозможной загрузку в предлагаемом мной формате.
    Цитата Сообщение от cafedead Посмотреть сообщение
    Таким образом, когда ты не выдерживаешь равномерность волны, делая один фронт длиннее, а второй - короче,
    Длительность фронтов спектрумом не контролируется. Фронт кусочно-постоянного сигнала, каким является сигнал с магнитофонного выхода - это процесс перехода его с одного уровня на другой. Длительность этого процесса обусловлена не программой, а характеристикой магнитофонного выхода, наличием ФНЧ, конечностью быстродействия микросхем.

    Возможно, ты "длительностью фронтов" называешь на самом деле длительность нахождения сигнала на постоянном уровне, т.е. длительность участков между фронтами. Давай тогда использовать общепринятые в отрасли термины, а то тяжело.
    Цитата Сообщение от cafedead Посмотреть сообщение
    ты как бы не даешь волне вернуться к противоположному... Эмм... Бортику. Уровень остается по большей части выше центра, затем за более равномерные колебания возвращается к центру, но у тебя уже часть данных прошла над центром Спектрума (ну та граница, разделяющая значения 0 и 1 для порта), и он там уже что-то пропустил,
    Если я правильно понял твои образные объяснения - то на строгом языке это звучит как опасение, что в сигнале 8b/10b присутствует постоянная составляющая. Нет, постоянной составляющей сигнал 8b/10b не имеет, хотя разбаланс количества нулей и единиц может кратковременно достигать +-4, что выше, чем в сигнале Спектрума (там максимально 2).
    Цитата Сообщение от cafedead Посмотреть сообщение
    Построй график скользящей средней по значениям генерируемой тобою неравномерной прямоугольной волны, и увидишь наглядно, о чем я говорю. Кстати, получается ни что иное, как НЧ-волна, которую как раз ты и порождаешь своими действиями...
    Да, получается НЧ-волна (я достаточно хорошо представляю себе такие вещи, чтобы не проводить эксперимент). Это свидетельствует о том, что в сигнале 8b/10b содержится несколько больше низких частот, чем в сигнале стандартного формата. Хотя в сигнале стандартного формата тоже есть низкие частоты. Попробуй запиши на кассету файл с псевдослучайным содержимым (например, содержим ПЗУ) и проведи на нём описанный тобой эксперимент - тоже получится НЧ-волна.

    Также хочу заметить, что скользящее среднее - это частный случай фильтра низких частот (ФНЧ). Поэтому для иллюстрации сказанного тобой выше можно пользоваться не только скользящим средним, но и другими ФНЧ с похожей АЧХ. Также можно использовать спектральный анализатор для определения того, сколько и каких частот содержится в сигнале. Я в этой теме, кажется, выкладывал спектрограммы сигналов как в формате 8b/10b, так и в стандартном.
    Цитата Сообщение от cafedead Посмотреть сообщение
    Если магнитофон хороший, то он прилежно ее запишет, и потом проиграет... Если где-то усиление низов, тогда плохо совсем...
    Вообще говоря, усиление низов должно убить и синклерский формат, если оно совсем уж чрезмерное. Хотя для синклерского формата характерно очень низкое содержание НЧ по сравнению со всеми другими форматами, которые я изучал, поэтому, с точки зрения "горба на низах", синклерский формат имеет преимущество. Так как меньше исходное содержание НЧ - то меньше будет и их содержание после усиления.

    Но я думаю, что магнитофон все же должен соответствовать хотя бы некоторым минимальным требованиям, например, четвёртой (самой худшей) группе сложности по ГОСТ 24863-87. Там указана максимальная неравномерность АЧХ, а значит, ограничена и величина возможного "усиления по низам".
    Цитата Сообщение от cafedead Посмотреть сообщение
    но вроде бы речь шла о надежном способе чтения, и чтоб никаких специализированных магнитофонов?!
    Никаких специализированных. Способ уже проверялся на нескольких магнитофонах и работает. Я для определённости хочу потребовать соответствие магнитофона требованиям ГОСТ 24863-87 для четвёртой группы сложности. Любой формат можно убить чрезмерными искажениями, поэтому следует задаться каким-то определенным максимально допустимым их уровнем и испытывать на нём.
    Цитата Сообщение от cafedead Посмотреть сообщение
    В общем, я вам предлагаю, прежде чем возиться с кассетами, для начала зафиксить этот момент... Всегда уравновешивать порт для каждого элемента данных. Дал длинный фронт, второй таким же длинным должен быть. Иначе, боюсь, не выйдет...
    Если, как ты говоришь, "уравновешивать" (то есть использовать только последовательности кодированного сигнала вида "10" и "1100" - то получится синклерский стандартный формат, который в этих рамках уже нельзя улучшить. Но я верю, что в этом нет необходимости. Кроме Спектрума есть компьютеры, использовавшие для записи на кассету Манчестерский код (также известный под названием "фазовая модуляция"), а это уже шаг вперёд по эффективности. Код 8b/10b ещё более эффективный, и он показал работоспособность, по меньшей мере, на некоторых магнитофонах. Тот магнитофон, где формат не заработал - он ужасно убивает сигнал, по меньшей мере, при записи. Он точно не соответствует никакому ГОСТу; проблема только в том, что он встроен в Spectrum +2.
    Цитата Сообщение от cafedead Посмотреть сообщение
    Ну или же стало бы возможным и без всяких алгоритмов удвоить скорость, передавая биты каждым фронтом волны...
    Формат 8b/10b делает даже больше. Он передаёт биты каждым битовым интервалом, в течение которого может быть, а может и не быть изменения уровня сигнала (т.е. "фронта"). Так как частота кодированных битовых интервалов как на синклерском формате, так и на 8b/10b, составляет 4кГц - то передаётся 4 килобита в секунду. Для обеспечения заданных свойств кодированного сигнала (отсутствие постоянной составляющей и др.) каждым 8 полезным битам соответствует 10 кодированных бит (отсюда и название формата). Формат даёт скорость в 400 полезных байт в секунду, что в среднем в 2 с половиной раза выше, чем скорость стандартного формата на файлах, состоящих из 50% нулей и единиц. При этом скорость записи 8b/10b не зависит от содержания файла (у синклерского формата - зависит).
    Вложения Вложения
    Последний раз редактировалось Barmaley_m; 28.07.2018 в 22:59.

  5. #4

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Это ты описываешь обработку сигнала эмулятором? Не факт, что именно описанный тобой способ там используется. По-моему ты описал работу фильтра высоких частот (ФВЧ) с двухуровневым квантователем, но не уверен.

    В моем случае никакой цифровой обработки сигнала в эмуляторе не производилось. Я брал звуковой файл (в том числе файлы, присланные другими пользователями, оцифрованные с реальных кассет) и с помощью своей матлаб-утилиты "wav2tzx", переводил его в формат TZX. А этот файл уже скармливал эмулятору, который никаких скользящих средних или другой обработки сигнала не производил.
    Я так понимаю, речь идет про способ разделения входного аналогового сигнала на 0/1 эмулятором. Можно брать фиксированную границу разделения, а можно делать её скользящей, подстраиваясь под текущие экстремумы сигнала, второй способ надежнее.

  6. #5

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Я так понимаю, речь идет про способ разделения входного аналогового сигнала на 0/1 эмулятором.
    Если речь идет о TZX-файлах - то там эмулятор ничего не разделяет, там сигнал уже квантован (т.е. может принимать только два уровня, 0 и 1). Квантование (т.е. "разделение") производится не эмулятором, а программой, которая подготавливает TZX-файл на основе либо wav-файла, либо непосредственно с аудиовхода.
    Цитата Сообщение от weiv Посмотреть сообщение
    Можно брать фиксированную границу разделения, а можно делать её скользящей, подстраиваясь под текущие экстремумы сигнала, второй способ надежнее.
    Надёжнее? Ты уверен? Я думаю, что лучший способ - это ФВЧ с низкой частотой среза (типа 1-5Гц), а после - фиксированная граница разделения, равная нулю. Тем самым будет удален средний уровень сигнала, если он отличается от нуля, а после этого сигнал будет разделен на уровни оптимальным образом с точки зрения вероятности ошибки. Тебе что-нибудь говорит словосочетание "глазковая диаграмма"?

  7. #6

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Если речь идет о TZX-файлах - то там эмулятор ничего не разделяет, там сигнал уже квантован (т.е. может принимать только два уровня, 0 и 1). Квантование (т.е. "разделение") производится не эмулятором, а программой, которая подготавливает TZX-файл на основе либо wav-файла, либо непосредственно с аудиовхода.
    Я имел ввиду WAV файлы, или прямое чтение с входа звуковухи.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Надёжнее? Ты уверен?
    Я основываюсь на своем опыте написания кода чтения WAV -файлов для эмулятора. Поскольку уровни сигнала плавают, и не только от файла к файлу, но и внутри одного файла, для более надежного их разделения стоит сделать плавающей и границу разделения. Предварительная обработка всего WAV файла перед его чтением может быть довольно тормозным процессом в случае больших файлов, а скользящая граница разделения позволяет квантовать данные на лету.

    - - - Добавлено - - -

    И да, в теории цифровой обработки сигналов я не силен.

  8. #7

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Я основываюсь на своем опыте написания кода чтения WAV -файлов для эмулятора.
    Окей. А у тебя остались тестовые файлы, на которых ты испытывал эффективность своего кода (т.е. надежность их считывания загрузчиком)? Давай попробуем сравнить оба предложенных метода.
    Цитата Сообщение от weiv Посмотреть сообщение
    Поскольку уровни сигнала плавают, и не только от файла к файлу, но и внутри одного файла, для более надежного их разделения стоит сделать плавающей и границу разделения.
    Да вот не факт. Для простоты рассмотрим синус. Допустим, что его амплитуда плавает. Если мы будем разделять уровни строго по нулю - то, очевидно, независимо от амплитуды синуса, мы получим на выходе цифровой прямоугольный сигнал с одним и тем же периодом, фазой и скважностью 2.

    Теперь допустим, что наш синус имеет некоторую неизвестную постоянную составляющую. Тогда мы пропустим его через ФВЧ. Тем самым постоянная составляющая будет ликвидирована, и на выходе снова будет прямоугольник с постоянной частотой, фазой и скважностью 2, независимо от амплитуды входного синуса.

    Даже, если постоянная составляющая меняется во времени, ФВЧ ее устранит, если он имеет достаточно высокую частоту среза.

    В случае, если входной сигнал не синус, а имеет сплошной спектр (что имеет место в случае записи на кассету данных в каком-либо формате) - то картина усложняется, и тут выбор может быть сделан в пользу того алгоритма, который даёт лучшие результаты на тестах. У тебя есть тестовый материал в виде различных записей данных с кассет?

  9. #8

    Регистрация
    24.07.2018
    Адрес
    г. Москва
    Сообщений
    93
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    50
    Поблагодарили
    35 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Да вот не факт. Для простоты рассмотрим синус. Допустим, что его амплитуда плавает. Если мы будем разделять уровни строго по нулю - то, очевидно, независимо от амплитуды синуса, мы получим на выходе цифровой прямоугольный сигнал с одним и тем же периодом, фазой и скважностью 2.

    Даже, если постоянная составляющая меняется во времени, ФВЧ ее устранит, если он имеет достаточно высокую частоту среза.
    А где у тебя будет находиться "ноль"? Ну вот допустим приехали отчеты, и там цифры от 0 до -5000. А может быть от 1000 до -10000. Т.е. "ноль" надо как минимум отыскать. Также может быть сюда замешана более низкая частота... Самое простое и быстрое - считать скользящую среднюю.
    Последний раз редактировалось cafedead; 29.07.2018 в 05:20.

  10. #9

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Окей. А у тебя остались тестовые файлы, на которых ты испытывал эффективность своего кода (т.е. надежность их считывания загрузчиком)? Давай попробуем сравнить оба предложенных метода.

    Да вот не факт. Для простоты рассмотрим синус. Допустим, что его амплитуда плавает. Если мы будем разделять уровни строго по нулю - то, очевидно, независимо от амплитуды синуса, мы получим на выходе цифровой прямоугольный сигнал с одним и тем же периодом, фазой и скважностью 2.

    Теперь допустим, что наш синус имеет некоторую неизвестную постоянную составляющую. Тогда мы пропустим его через ФВЧ. Тем самым постоянная составляющая будет ликвидирована, и на выходе снова будет прямоугольник с постоянной частотой, фазой и скважностью 2, независимо от амплитуды входного синуса.

    Даже, если постоянная составляющая меняется во времени, ФВЧ ее устранит, если он имеет достаточно высокую частоту среза.

    В случае, если входной сигнал не синус, а имеет сплошной спектр (что имеет место в случае записи на кассету данных в каком-либо формате) - то картина усложняется, и тут выбор может быть сделан в пользу того алгоритма, который даёт лучшие результаты на тестах. У тебя есть тестовый материал в виде различных записей данных с кассет?
    Тут на форуме выкладывались записи данных с кассет, обычно файлы довольно объемные, я их не храню. Не приведено аргументов, почему не стоит делать плавающей границу квантования, только некоторые соображения о использовании ФВЧ в случае, если входной сигнал синус, и общие слова. Чтобы говорить предметно, приведи форму сигнала, с которой при квантовании не справится плавающая граница, но справится ФВЧ.

  11. #10

    Регистрация
    24.07.2018
    Адрес
    г. Москва
    Сообщений
    93
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    50
    Поблагодарили
    35 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Вообще, мой формат был испытан на нескольких магнитофонах и имел проблемы пока только на одном (Haywire).

    А мой становится нечитаемым?
    На 27 странице к верхнему комментарию добавлял картинку. Там я примерно накидал, в чем беда.

    С этих нескольких магнитофонов данные в реал загружались?

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Это ты описываешь обработку сигнала эмулятором? Не факт, что именно описанный тобой способ там используется. По-моему ты описал работу фильтра высоких частот (ФВЧ) с двухуровневым квантователем, но не уверен.
    Ну да, ФНЧ - это, в простом исполнении, скользящая средняя...

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    В моем случае никакой цифровой обработки сигнала в эмуляторе не производилось. Я брал звуковой файл (в том числе файлы, присланные другими пользователями, оцифрованные с реальных кассет) и с помощью своей матлаб-утилиты "wav2tzx", переводил его в формат TZX. А этот файл уже скармливал эмулятору, который никаких скользящих средних или другой обработки сигнала не производил.
    В любом случае, это - идеальные условия. Реальность далека от идеала. Также, как и смотреть 2-х мегапиксельной камерой на мир, это не то же самое, что смотреть фотоэлементом с двумя состояниями.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Правильно ли я понял, что ты описываешь некий алгоритм расчета значения, по которому надо отличать в сигнале единицы от нулей? Что если сигнал выше некоторого порогового значения - то он будет воспринят как "1", а если ниже - то как "0"?
    Правильно. У реала он выражается в некотором фиксированном значении напряжения, которое задается электронными компонентами. У эмулятора - например, скользящей средней, или с найденными экстремумами что-то можно городить, как здесь привели в пример.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    У меня обычно полосы были одинаковыми, но я имел счастье использовать спектрум с хорошим магнитофонным входом ("Орель БК-08"), где для квантования сигнала используется микросхема компаратора (554СА3). Вот в дешевых клонах, где вместо компаратора используется логический элемент, может быть такое, что квантование производится не по нулевому уровню, а со смещением. Стандартный формат таким не убивается, а вот мой, в зависимости от прочих искажений, может пострадать. Надо будет поизучать вопрос.
    Он не просто не убивается, а еще и выходит, что запись можно подразогнать. Что, у пилота прям одинаковые красно-голубые полосы были? Потрясающе.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Что значит "не выдерживаю фронты сигнала по длительности"? Что под этим имеется в виду?

    Возможно, ты "длительностью фронтов" называешь на самом деле длительность нахождения сигнала на постоянном уровне, т.е. длительность участков между фронтами. Давай тогда использовать общепринятые в отрасли термины, а то тяжело.
    Да, извини, именно длительность и имелась в виду. Пытался сокращать. Волна состоит из двух полу-волн, сл-но между одной сменой значения, и другой сменой должны быть выдержаны равные интервалы времени... А когда ты не выдерживаешь интервалы, меняя скважность, получаешь гуляние аналогового сигнала, порождаешь НЧ-волны. НЧ-волна, вероятнее всего, мешает прочесть соседние биты одно-битовому АЦП реала. Тем более, что ты стремишься и по скорости взять все возможное. Думаю, стоит умерить аппетиты, хотя бы для начала.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Да, получается НЧ-волна (я достаточно хорошо представляю себе такие вещи, чтобы не проводить эксперимент). Это свидетельствует о том, что в сигнале 8b/10b содержится несколько больше низких частот, чем в сигнале стандартного формата. Хотя в сигнале стандартного формата тоже есть низкие частоты. Попробуй запиши на кассету файл с псевдослучайным содержимым (например, содержим ПЗУ) и проведи на нём описанный тобой эксперимент - тоже получится НЧ-волна.
    У тебя полу-волны разного размера, что приводит к порождению НЧ-волны. Глянь иллюстрацию, что я сверху накидал. Это волны-паразиты, мешающие считать данные.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Если, как ты говоришь, "уравновешивать" (то есть использовать только последовательности кодированного сигнала вида "10" и "1100" - то получится синклерский стандартный формат, который в этих рамках уже нельзя улучшить. Но я верю, что в этом нет необходимости. Кроме Спектрума есть компьютеры, использовавшие для записи на кассету Манчестерский код (также известный под названием "фазовая модуляция"), а это уже шаг вперёд по эффективности. Код 8b/10b ещё более эффективный, и он показал работоспособность, по меньшей мере, на некоторых магнитофонах. Тот магнитофон, где формат не заработал - он ужасно убивает сигнал, по меньшей мере, при записи. Он точно не соответствует никакому ГОСТу; проблема только в том, что он встроен в Spectrum +2.
    Ну если веришь, тогда приготовься к тому, что предел разгона такой волны будет заметно ниже классической Турбо-загрузки, со всеми вытекающими выводами по надежности. Это просто здравый смысл. И что, что на каких-то компьютерах реализована для сохранения на ленте фазовая модуляция? Другие-компьютеры - другое железо.

    Попробуй начать с более скромными показателями. Выяснишь, где косяки, и затем будешь уже искать пределы. На данный момент, заявленные тобой цифры запредельные, и ничего общего с надежностью точно иметь не могут.

    Еще могу посоветовать немного переработать загрузчик, чтобы он, вместо самой загрузки, сохранял временные задержки приходящего потока данных, чтобы это можно было затем как-то проанализировать для разных связок магнитофон-реал, сравнить с эталоном... Процесс пойдет более продуктивно.

    Успехов.
    Последний раз редактировалось cafedead; 29.07.2018 в 04:43.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. [Поиск 1] Кассетный интерфейс
    от Tronix в разделе Поиск
    Ответов: 112
    Последнее: 06.02.2024, 08:14
  2. Кассетный магнитофон.
    от Николай в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 03.04.2010, 15:49
  3. Куплю Магнитофон кассетный Электроника-302-1
    от hardrice в разделе Барахолка (архив)
    Ответов: 16
    Последнее: 18.02.2010, 12:13
  4. Ответов: 13
    Последнее: 05.11.2007, 22:48
  5. Ответов: 2
    Последнее: 26.02.2005, 18:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •