Есть некоторые затруднения с анализом статистики
Такой пример:
Тут - обычный MFM. Должно быть 3 полоски. но их тут 6. Это и есть то самое перемагничивание. Четные импульсы удлиняются, нечётные укорачиваютсяКод:us------2-------3-------4-------5-------6-------7-------8-------9 x#, xx+.. -#x. .,+x+. .,, ..... +#x .+x++, ,+x, +x+-. ,++. .--,, #x, .x+x,. .x#, .-xx, ., ... .x#, .xxx.. ,#x .,xx- ,,. ...,. x#- .#x--. .+x. ,-++. ,- ..,,, . ##. .#++ .,x+. . +-+, . . +#+.,x+x+. .xx, ..-+++. .--. .---,. xx, x+x- -#x- .+xx+. ... .... x#, .xx-. ,#x, .-+#- .,. .., +xx.,++x+, ,+x-. .+++-. ,++, ,-+-- +#, .xx-. . +#x, .-x+x, .. .... +#+ ,xx-, .x#-. ,-xx. . ..,,.. . +#+ +x+x, . xx-, .-x+x- ., . .
Происходит вот такое:
Соответственно, выделять первые три (две) полоски для разметки таймингов для таких вот дисков - нельзя. Тут надо делить на четные и нечетные. Проблема в том что есть плавающая скорость, а есть плавающая перемагниченность, и их нужно обрабатывать соответствующе. Поскольку изменение скорости влияет на 1.5х и 2х длительности как множитель, а перемагничивание влияет как суммирование. Если это просто скорость - тут проблем нет. Можно за счет динамического изменения пороговых значений, которые перед чтением впихнуть в ардуину перед чтением MFM потока.Код:-------\ /------\ \ / \ +++++++++\-----------/++++++++++\------ \ / \ \_______/ \____ -----\ /--\ \ / \ +++++++\---------------/++++++\-------- \ / \ \ / \ \ / \ \_______/ \____
Но для каждой такой "перемагниченной" дорожки нужно несколько раз считывать статистику четных и нечетных (несколько - потому что нет никакой гарантии, что чтение начнется с четной или не четной - импульсы одинаково кодируются). Потом находить траекторию по каждому потоку - четному и нечетному, если они совпадают - значит перемагничивания нет, и можно читать без четного/нечетного, если расходятся - значит есть перемагниченность, и тогда нужна ОТДЕЛЬНАЯ процедура чтения, в которую нужно впихивать два массива для компенсации внутридорожной динамики - помимо пороговых значений, еще и отклонения для четных-нечетных импульсов. А потом читать дорогу, возможно несколько раз, поскольку также нет никакой гарантии, что четные попадут на четные.
Сразу понять что в дороге есть эта перемагниченность в принципе можно - статистика для них будет не из трёх бугров состоять а как минимум четырёх. Но это не обязательно - если там плавает скорость (как в примере из поста №3), то количество бугров вообще ничего не значит - там они все дико размыты:
В случае плавающих скоростей - нечетких бугров, необходим такой вот многократный сбор статистики, чтобы при чтении компенсировать все эти плавающие штуки (если они там имеются). Достоверно и быстро задетектить треки с перемагниченностью не так-то просто, если они маскируются плавающей скоростью. Поэтому придется раз по 10 читать дорожку чтобы все тайминги вытащить с вероятностю в 95%. Ведь возможно что так не повезет, и перемагниченный трек будет 10 раз подряд прочитан по четным импульсам вне зависимости от пропуска одного импульса, и тогда утилита не увидит разницы между четными и нечетными, подумает что это просто скорость плавает. И трек все равно не прочитается.Код:. ... .. ::: . ::::::::::.:::::..:::: :::::::::::::::::::::::. :::::::::::::::::::::::::: ::::::::::::::::::::::::::. ::::::::::::::::::::::::::::.:.:: .. . .::.. ::::::::::::::::::::::::::::::::::.::.:::.:.::::::.::: : :: : :::::::::::::::::::::::::::::::::::::::::::::::::::::: us------2-------3-------4-------5-------6-------7-------8-------9




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
