OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 29.03.2024, 01:25

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 12 ] 
Autor Zpráva
 Předmět příspěvku: Digitalizace kazet - analýza signálu
PříspěvekNapsal: 11.02.2021, 12:31 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 424
Has thanked: 31 times
Been thanked: 100 times
Ahojky,

Zabýval se někdo nějakou hlubší analýzou vlnovek ze zdigitalizovaných Speccy kazet?
Chtělo by to nějaký adaptabilní algoritmus, běžné nástroje, jako fuse-utils fungují dost náladově.

Jak se v zesilovači magnetofonu nabíjejí a vybíjejí kondenzátory, tak běžný komparátor často nestačí

Příloha:
wave.jpg
wave.jpg [ 18.69 KiB | Zobrazeno 5181 krát ]


Jak vidno, nejhorší je, když se nachází jediná 0 mezi skupinou několika 1, signál se úrovňově úplně šíbne. Jaké máte zkušenosti?


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 13:11 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
Někdy mi pomohlo protažení filtrem hloubky/výšky - zeslabení hloubek, zesílení výšek.

Více by ale pomohla digitální napodobenina obvodu, který je ve Spectru, pokud tedy takovou nahrávku přečte. Na něco takového ovšem nestačím. Elektronici, prosím opravte mne, jestli plácám pitomosti.

Příloha:
speccy_in.png
speccy_in.png [ 50.06 KiB | Zobrazeno 5167 krát ]


Nejlépe by bylo takový obvod nakreslit, odsimulovat a převést na kód v C. Existuje nějaký takový software?


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 13:41 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08.07.2013, 00:28
Příspěvky: 1554
Has thanked: 485 times
Been thanked: 634 times
omikron píše:
Příloha:
wave.jpg


Jak vidno, nejhorší je, když se nachází jediná 0 mezi skupinou několika 1, signál se úrovňově úplně šíbne. Jaké máte zkušenosti?


Nevím čím jsi to ukládal, ale přijde mi to jako ukládání bez prekompenzace signálu. Magnetické pulzy se navrzájem ovlivňujou, takže je nutné tohle ovlivňování vzít v úvahu a některé signály v čase malinko zpozdit, jiné malinko předsadit. Ten zákmit na čtvrté (a dalších) vlně je to ovlivnění.

Zde pro diskový zápis (ale podstata je stejná). Floppy dekodér ty drobounké zákmity (tvoje nula) zahazuje, resp. lépe řečeno sčítá a rozhodnutí jestli se jedná o 1 nebo 0 udělá až když mu přijde další větší puls. Možná podobně by se dal udělat dekodér páskového záznamu.

Obrázek

_________________
より良い競争相手からソフトウェアを購入する (。◕‿‿◕。)
Ďábel se skrývá v detailu (staré technické rčení)


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 13:58 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 424
Has thanked: 31 times
Been thanked: 100 times
baktra píše:
Někdy mi pomohlo protažení filtrem hloubky/výšky - zeslabení hloubek, zesílení výšek.

Více by ale pomohla digitální napodobenina obvodu, který je ve Spectru, pokud tedy takovou nahrávku přečte. Na něco takového ovšem nestačím. Elektronici, prosím opravte mne, jestli plácám pitomosti.

Příloha:
speccy_in.png


Nejlépe by bylo takový obvod nakreslit, odsimulovat a převést na kód v C. Existuje nějaký takový software?


Ten obvod jen odstraní ss. složku kondenzátorem a omezí příliš silný signál diodou a odporem.
Většina součástek tam je hlavně kvůli rozdělení BEEP a SAVE, aby reproduktor pískal při BEEP a byl zticha při SAVE. Protože vývod 28 ULA se používá vlastně na 3 věci.

Uvnitř obvodu ULA je klopný obvod, který se překlopí do 1 při při překročení určitého napětí. A při poklesu pod mírně odlišné napětí zase spadne na 0. Dá se říct, že je to vlastně Schmittův klopný obvod.
Podobné, docela vtipné řešení mají novější Didaktiky. Komparátor LM311 s šikovně zavedenou zpětnou vazbou.

Mě jde hlavně o vývoj něčeho, čemu se předhodí takovýhle .wav a ono by to prohlíželo vlnku po vlnce a rozhodovalo, jestli 1 nebo 0. Podobnou věc mají dnešní velkokapacitní HDD ve svém signálovém procesoru, z částečně se překrývajících jedniček a nul umí vydedukovat správná data.

Napadlo mě třeba pomocí derivace detekovat rychlost změny a tím vlastně restaurovat původní "hrany" signálu. Na to ale není moje matematika dost vyspělá.


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 14:08 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 424
Has thanked: 31 times
Been thanked: 100 times
tomascz píše:

Nevím čím jsi to ukládal, ale přijde mi to jako ukládání bez prekompenzace signálu. Magnetické pulzy se navrzájem ovlivňujou, takže je nutné tohle ovlivňování vzít v úvahu a některé signály v čase malinko zpozdit, jiné malinko předsadit. Ten zákmit na čtvrté (a dalších) vlně je to ovlivnění.

Jasně, vždyt je to záznam obdélníku běžným mgf pro záznam hudby. Ten si může o nějaké pokročilé kompenzaci nechat jen zdát.

Záznam Spectra je velmi jednoduchý.
0 je -+
1 je --++
z pohledu proudu záznamovou hlavou.

Takže to vlastně nemá stabilní bitový interval, jelikož 1 trvá dvojnásobně než 0
průměrná rychlost, při stejném počtu 0 i 1 je tuším 1350 bit/s.


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 14:17 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 864 times
Been thanked: 697 times
omikron píše:
...Napadlo mě třeba pomocí derivace detekovat rychlost změny a tím vlastně restaurovat původní "hrany" signálu. Na to ale není moje matematika dost vyspělá.
Na to stačí jen z rozdílu samplů: sinusovka jde nahoru -> signál je H, jde dolů -> signál je L.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 14:28 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08.07.2013, 00:28
Příspěvky: 1554
Has thanked: 485 times
Been thanked: 634 times
omikron píše:
Záznam Spectra je velmi jednoduchý.
0 je -+
1 je --++
z pohledu proudu záznamovou hlavou.

Takže to vlastně nemá stabilní bitový interval, jelikož 1 trvá dvojnásobně než 0
průměrná rychlost, při stejném počtu 0 i 1 je tuším 1350 bit/s.

Čili jistá forma FM kódování? Ano, u té z jejího principu nelze použít něco jako prekompenzace. No základní pointou každopádně je si někde načítávat ty drobné pulzy a uběhlý čas (od posledního "velkého" pulzu) vyhodnotit až když přijde další "velký" pulz (a při té přiležitosti čítač drobných pulzů zresetovat). Nebyl by to problém ani pokud by zákmit ve čtvrté vlně překročil nulu - izolovaný drobný pulz by nepřekročil časový práh pro "jedničku" (a protože před ním nebyly nasčítány další drobné pulzy, tak ani pro "nulu") a ignoroval by se. Jenom naivně fantazíruju bez předchozích znalostí páskového záznamu...

_________________
より良い競争相手からソフトウェアを購入する (。◕‿‿◕。)
Ďábel se skrývá v detailu (staré technické rčení)


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 14:57 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 424
Has thanked: 31 times
Been thanked: 100 times
Příloha:
zaznam.jpg
zaznam.jpg [ 35.82 KiB | Zobrazeno 5108 krát ]


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 15:00 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
Derivaci lze numericky spočítat snadno. Tam kde se znaménko derivace mění, tak tam je "špička". A někde v půlce mezi špičkami je myšlená hrana jejichž vzdálenost se měří. Je ovšem potřeba dát si pozor na drobné zákmity a eliminovat je - nejjednodušší je stanovit minimální šířku pulzu - to může být třeba 3/4 nejužšího možného pulzu a kratší zákmity ignorovat. Taky je třeba počítat s derivací nulovou - ideální obdélníkové pulzy.


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 16:45 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
Ještě bych se mrknul na knihovnu liba8cas https://sourceforge.net/p/a8cas/liba8cas/ci/master/tree/src/pwm_demod.c. Je to algoritmus, který je o chlup lepší než pouhý "přechod přes nulu".
A nebo ještě vylepšenou verzi http://www.arus.net.pl/FUJI/a8cas-util/uploads/files/liba8cas-custom-1.5.3.tgz


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 17:00 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 424
Has thanked: 31 times
Been thanked: 100 times
baktra píše:
Derivaci lze numericky spočítat snadno. Tam kde se znaménko derivace mění, tak tam je "špička". A někde v půlce mezi špičkami je myšlená hrana jejichž vzdálenost se měří. Je ovšem potřeba dát si pozor na drobné zákmity a eliminovat je - nejjednodušší je stanovit minimální šířku pulzu - to může být třeba 3/4 nejužšího možného pulzu a kratší zákmity ignorovat. Taky je třeba počítat s derivací nulovou - ideální obdélníkové pulzy.

To by mohlo chodit.

I u ostatních počítačů jde vlastně o hrany.

Atari Turbo 2000 - naprosto stejné jako Spectrum, jen jiné délky elementárního pulsu.
SAPI1, PMD-85, IQ-151 používají Manchester modulaci. Hrany blízko = tento bit je stejný jako předchozí. Hrany dvojnásobně daleko = tento bit je opačný než předchozí.


Nahoru
 Profil  
 
PříspěvekNapsal: 11.02.2021, 17:34 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
omikron píše:
Uvnitř obvodu ULA je klopný obvod, který se překlopí do 1 při při překročení určitého napětí. A při poklesu pod mírně odlišné napětí zase spadne na 0. Dá se říct, že je to vlastně Schmittův klopný obvod. Podobné, docela vtipné řešení mají novější Didaktiky. Komparátor LM311 s šikovně zavedenou zpětnou vazbou.
Ano, tak nejak.
omikron píše:
Mě jde hlavně o vývoj něčeho, čemu se předhodí takovýhle .wav a ono by to prohlíželo vlnku po vlnce a rozhodovalo, jestli 1 nebo 0.
Ale ved si vyssie prave napisal, ako presne to ma fungovat, tak naco vyvoj ? :)
Naprogramovat taky Schmitt je uplne trivialna vec. Ak je aktualna hodnota vo WAVke nad urcitu hranicu (povedzme napriklad +1/16 rozsahu) tak sa vystup preklopi do jednicky, a ak je hodnota pod -1/16 rozsahu, tak sa vystup prepne do nuly. No a tieto jednicky a nuly sa nasledne dekodoju algoritmom ako to robi load rutina v romke. A je to :)

No a vplyv vsetkej tej pasivnej bizuterie okolo vstupu ULA sa doladi ekvalizerom a nastavenim hlasitosti.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 12 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 9 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz