Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠŸΡ€Π΅Π΄ΠΈΡΡ‚ΠΎΡ€ΠΈΡ

ΠšΠ°Ρ‚ΠΎ Π»ΡŽΠ±ΠΈΡ‚Π΅Π» Π½Π° Ρ€Π΅Ρ‚Ρ€ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π°, ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ Π·Π°ΠΊΡƒΠΏΠΈΡ… ZX Spectrum+ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ във ВСликобритания. Π—Π°Π΅Π΄Π½ΠΎ с ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ… няколко аудиокасСти с ΠΈΠ³Ρ€ΠΈ (Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° с инструкции), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, записани Π½Π° касСти Π±Π΅Π· спСциални обозначСния. Π£Ρ‡ΡƒΠ΄Π²Π°Ρ‰ΠΎ, Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ касСтитС Π½Π° 40 Π³ΠΎΠ΄ΠΈΠ½ΠΈ бяха Π΄ΠΎΠ±Ρ€Π΅ Ρ‡Π΅Ρ‚ΠΈΠΌΠΈ ΠΈ успях Π΄Π° зарСдя ΠΏΠΎΡ‡Ρ‚ΠΈ всички ΠΈΠ³Ρ€ΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΎΡ‚ тях.

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠžΠ±Π°Ρ‡Π΅, Π½Π° някои касСти ΠΎΡ‚ΠΊΡ€ΠΈΡ… записи, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ явно Π½Π΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ZX Spectrum. Π’Π΅ Π·Π²ΡƒΡ‡Π°Ρ…Π° съвсСм ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ ΠΈ, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ записитС ΠΎΡ‚ спомСнатия ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€, Π½Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ…Π° с краткия BASIC bootloader, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² записи Π½Π° всички ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΈ ΠΈΠ³Ρ€ΠΈ.

Някакво Π²Ρ€Π΅ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Π½Π΅ ΠΌΠΈ давашС ΠΏΠΎΠΊΠΎΠΉ β€” ΠΌΠ½ΠΎΠ³ΠΎ исках Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ скрито Π² тях. Ако моТСшС Π΄Π° сС ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ Π°ΡƒΠ΄ΠΈΠΎ сигнала ΠΊΠ°Ρ‚ΠΎ послСдоватСлност ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅, ΠΌΠΎΠΆΠ΅Ρ… Π΄Π° ΠΏΠΎΡ‚ΡŠΡ€ΡΡ символи ΠΈΠ»ΠΈ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π²Π° Π½Π° ΠΏΡ€ΠΎΠΈΠ·Ρ…ΠΎΠ΄Π° Π½Π° сигнала. НСщо ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Ρ‚Ρ€ΠΎ-архСология.

Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ… ΠΏΡ€Π΅Π· цСлия Ρ‚ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ ΠΈ Π³Π»Π΅Π΄Π°ΠΌ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π° самитС касСти, сС усмихвам, Π·Π°Ρ‰ΠΎΡ‚ΠΎ

ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ бСшС Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ ΠΎΡ‡ΠΈΡ‚Π΅ ΠΌΠΈ ΠΏΡ€Π΅Π· всичкото Π²Ρ€Π΅ΠΌΠ΅
На Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° лявата касСта β€” ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80, Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° производитСля: β€žManufactured by Radio Shack in USAβ€œ

(Ако искатС Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Ρ€ΠΈΠ³Π°Ρ‚Π° Π΄ΠΎ края, Π½Π΅ Π²Π»ΠΈΠ·Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ спойлСра)

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡƒΠ΄ΠΈΠΎ сигналитС

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ, Π΅ Π΄Π° Π΄ΠΈΠ³ΠΈΡ‚Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ аудиозаписитС. МоТС Π΄Π° сС Ρ‡ΡƒΠ΅ ΠΊΠ°ΠΊ Π·Π²ΡƒΡ‡ΠΈ:


И ΠΊΠ°ΠΊ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π²ΡƒΡ‡ΠΈ Π·Π°ΠΏΠΈΡΡŠΡ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ZX Spectrum:


И Π² Π΄Π²Π°Ρ‚Π° случая Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° записа ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Ρ‚. Π½Π°Ρ€. ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½ β€” Π·Π²ΡƒΠΊ с Π΅Π΄Π½Π° чСстота (Π² ΠΏΡŠΡ€Π²ΠΈΡ запис Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡ€Π°Ρ‚ΡŠΠΊ <1 сСк, Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌ). ΠŸΠΈΠ»ΠΎΡ‚Π½ΠΈΡΡ‚ Ρ‚ΠΎΠ½ слуТи ΠΊΠ°Ρ‚ΠΎ сигнал Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π°, Ρ‡Π΅ трябва Π΄Π° сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠšΠ°ΠΊΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, всСки ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π° само β€žΡΠ²ΠΎΡβ€œ ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° сигнала ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° чСстота.

Врябва Π΄Π° спомСна ΠΈ самата Ρ„ΠΎΡ€ΠΌΠ° Π½Π° сигнала. НапримСр, ΠΏΡ€ΠΈ ZX Spectrum Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΡƒ Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Π°:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΠ΅ Π½Π° пилотния Ρ‚ΠΎΠ½, ZX Spectrum ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ€Π΅Π΄ΡƒΠ²Π°Ρ‰ΠΈ сС Ρ‡Π΅Ρ€Π²Π΅Π½ΠΎ-сини ΠΈΠ²ΠΈΡ†ΠΈ Π½Π° Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π°, ΠΏΠΎΠΊΠ°Π·Π²Π°ΠΉΠΊΠΈ, Ρ‡Π΅ ΡΠΈΠ³Π½Π°Π»ΡŠΡ‚ Π΅ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Ρ‚. ΠŸΠΈΠ»ΠΎΡ‚Π½ΠΈΡΡ‚ Ρ‚ΠΎΠ½ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π° с синхро-импулс, ΠΊΠΎΠΉΡ‚ΠΎ сигнализира Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π°, Ρ‡Π΅ трябва Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠΉ сС Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΈΡ€Π° с ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠ° (Π² сравнСниС с пилотния Ρ‚ΠΎΠ½ ΠΈ послСдващитС Π΄Π°Π½Π½ΠΈ) ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚ (Π²ΠΆ. Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚Π°)

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ синхро-ΠΈΠΌΠΏΡƒΠ»ΡΡŠΡ‚ Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ записва всяко ΠΏΠΎΠ²Π΄ΠΈΠ³Π°Π½Π΅/спусканС Π½Π° сигнала, ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°ΠΉΠΊΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚. Ако ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°, Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° сС записва Π±ΠΈΡ‚ 1, ΠΈΠ½Π°Ρ‡Π΅ 0. Π‘ΠΈΡ‚ΠΎΠ²Π΅Ρ‚Π΅ сС ΡΡŠΠ±ΠΈΡ€Π°Ρ‚ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ сС повтаря, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ N Π±Π°ΠΉΡ‚Π°. Числото N ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС Π²Π·Π΅ΠΌΠ° ΠΎΡ‚ Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Π½Π° зарСТдания Ρ„Π°ΠΉΠ». ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π΅ слСдната:

  1. ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½
  2. Π·Π°Π³Π»Π°Π²ΠΈΠ΅ (с фиксирана дълТина), ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ (N), ΠΈΠΌΠ΅ ΠΈ Ρ‚ΠΈΠΏ Π½Π° Ρ„Π°ΠΉΠ»Π°
  3. ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½
  4. самитС Π΄Π°Π½Π½ΠΈ

Π—Π° Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈ, Ρ‡Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ZX Spectrum Ρ‡Π΅Ρ‚Π΅ послСдния Π±Π°ΠΉΡ‚, извСстСн ΠΊΠ°Ρ‚ΠΎ Π±Π°ΠΉΡ‚ Π½Π° ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚Π° Β (parity byte), ΠΊΠΎΠΉΡ‚ΠΎ сС изчислява ΠΏΡ€ΠΈ запис Π½Π° Ρ„Π°ΠΉΠ»Π° Ρ‡Ρ€Π΅Π· опСрация XOR Π²ΡŠΡ€Ρ…Ρƒ всички Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ Π½Π° записанитС Π΄Π°Π½Π½ΠΈ. ΠŸΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ изчислява Π±Π°ΠΉΡ‚Π° Π½Π° ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΈ, Π°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ запазСния, ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° β€žR Tape loading errorβ€œ. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π΄Π°Π΄Π΅ Ρ‚ΠΎΠ²Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎ-Ρ€Π°Π½ΠΎ, Π°ΠΊΠΎ ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π΅ импулса (пропуснат Π΅ ΠΈΠ»ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚ Π½Π΅ отговаря Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π³Ρ€Π°Π½ΠΈΡ†ΠΈ)

И Ρ‚Π°ΠΊΠ°, Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ сСга ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° нСизвСстният сигнал:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

Π’ΠΎΠ²Π° Π΅ пилотният Ρ‚ΠΎΠ½. Π€ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° сигнала Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°, Π½ΠΎ сС Π²ΠΈΠΆΠ΄Π°, Ρ‡Π΅ ΡΠΈΠ³Π½Π°Π»ΡŠΡ‚ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ повтарящи сС ΠΊΡ€Π°Ρ‚ΠΊΠΈ импулси с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° чСстота. ΠŸΡ€ΠΈ дискрСтизация Π½Π° 44100 Hz, разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ β€žΠ²ΡŠΡ€Ρ…ΠΎΠ²Π΅Ρ‚Π΅β€œ Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 48 сСмпла (ΠΊΠΎΠ΅Ρ‚ΠΎ отговаря Π½Π° чСстота ~918 Hz). НСка Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ Ρ‚ΠΎΠ²Π° число.

Π‘Π΅Π³Π° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ с Π΄Π°Π½Π½ΠΈ:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

Ако ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΠΌ разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ импулси, Ρ‰Π΅ сС ΠΎΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ β€žΠ΄ΡŠΠ»Π³ΠΈΡ‚Π΅β€œ импулси разстояниСто всС ΠΎΡ‰Π΅ Π΅ ΠΎΠΊΠΎΠ»ΠΎ ~48 сСмпла, Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΡ‚Π΅ β€” ~24. Малко ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ, Ρ‰Π΅ ΠΊΠ°ΠΆΠ°, Ρ‡Π΅ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС установи, Ρ‡Π΅ β€žΠΎΠΏΠΎΡ€Π½ΠΈΡ‚Π΅β€œ импулси с чСстота 918 Hz слСдват Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ, ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π΄ΠΎ края Π½Π° Ρ„Π°ΠΉΠ»Π°. МоТС Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈ, Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π°ΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠΎΡ€Π½ΠΈΡ‚Π΅ импулси сС появи Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ импулс, Ρ‰Π΅ Π³ΠΎ считамС Π·Π° Π±ΠΈΡ‚ 1, ΠΈΠ½Π°Ρ‡Π΅ 0.

Какво с синхро-импулса? Π”Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠŸΠΈΠ»ΠΎΡ‚Π½ΠΈΡΡ‚ Ρ‚ΠΎΠ½ ΡΠ²ΡŠΡ€ΡˆΠ²Π° ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅. Малко ΠΏΠΎ-късно, слСд Π°Π½Π°Π»ΠΈΠ· Π½Π° няколко Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ аудиозаписи, успяхмС Π΄Π° установим, Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ (10100101b, A5h). ВСроятно ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° Ρ‡Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅, слСд ΠΊΠ°Ρ‚ΠΎ Π³ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ.

МоТС ΡΡŠΡ‰ΠΎ Π΄Π° сС ΠΎΠ±ΡŠΡ€Π½Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° измСстванСто Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ импулс Π²Π΅Π΄Π½Π°Π³Π° слСд послСдната 1-Ρ†Π° Π² синхробайта. УспяхмС Π΄Π° Π³ΠΎ установим Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-късно Π² процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° сС Ρ‡Π΅Ρ‚Π°Ρ‚ стабилно.

Π‘Π΅Π³Π° Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° опишСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ Π°ΡƒΠ΄ΠΈΠΎΡ„Π°ΠΉΠ»Π° ΠΈ Ρ‰Π΅ Π·Π°Ρ€Π΅Π΄ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅.

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

ΠŸΡŠΡ€Π²ΠΎ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ няколко допускания, Π·Π° Π΄Π° Π½Π΅ услоТнявамС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ°:

  1. Π©Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ само във WAV Ρ„ΠΎΡ€ΠΌΠ°Ρ‚;
  2. ΠΡƒΠ΄ΠΈΠΎΡ„Π°ΠΉΠ»ΡŠΡ‚ трябва Π΄Π° Π·Π°ΠΏΠΎΡ‡Π²Π° с ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½ ΠΈ Π½Π΅ трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ‚ΠΈΡˆΠΈΠ½Π° Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ.
  3. Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ Ρ„Π°ΠΉΠ» трябва Π΄Π° ΠΈΠΌΠ° дискрСтизационна чСстота ΠΎΡ‚ 44100 Hz. Π’ Ρ‚Π°ΠΊΡŠΠ² случай разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ импулси ΠΎΡ‚ 48 сСмпъла Π²Π΅Ρ‡Π΅ Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈ Π½Π΅ Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π³ΠΎ изчислявамС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ;
  4. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ Π½Π° сСмплитС ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ (8/16 Π±ΠΈΡ‚Π°/с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая) β€” Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π² нСобходимия;
  5. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅, Ρ‡Π΅ изходният Ρ„Π°ΠΉΠ» Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎ Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π±ΠΈ трябвало Π΄Π° стабилизира Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°;

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Ρ‰Π΅ бъдС слСдният:

  1. Π§Π΅Ρ‚Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° сСмплитС Π² 8 Π±ΠΈΡ‚Π°;
  2. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠΌΠ΅ позицията Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ импулс Π² Π°ΡƒΠ΄ΠΈΠΎΠ΄Π°Π½Π½ΠΈΡ‚Π΅. Π—Π° Ρ†Π΅Π»Ρ‚Π° трябва Π΄Π° изчислим Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° сСмпъла с максимална Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°. Π—Π° опростяванС Ρ‰Π΅ Π³ΠΎ изчислим вСднъТ Ρ€ΡŠΡ‡Π½ΠΎ. Π©Π΅ Π³ΠΎ Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π² ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° prev_pos;
  3. ΠŸΡ€ΠΈΠ±Π°Π²ΡΠΌΠ΅ 48 към позицията Π½Π° послСдния импулс (pos := prev_pos + 48)
  4. Въй ΠΊΠ°Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° позицията с 48 Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‰Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π΅ΠΌ Π² позицията Π½Π° слСдващия Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ импулс (Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΈ Π½Π° Π»Π΅Π½Ρ‚Π°Ρ‚Π°, нСстабилна Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π»Π΅Π½Ρ‚ΠΈ ΠΈ Π΄Ρ€.), Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΌΠ΅ позицията Π½Π° импулса pos. Π—Π° Ρ†Π΅Π»Ρ‚Π° Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ малък ΡƒΡ‡Π°ΡΡ‚ΡŠΠΊ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ (pos-8;pos+8) ΠΈ Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ максимума Π½Π° стойността Π½Π° Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°Ρ‚Π°. ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΡ‚Π°, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰Π° Π½Π° максимума, Ρ‰Π΅ Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π² pos. Π’ΡƒΠΊ 8 = 48/6 β€” СкспСримСнтално ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° константа, която Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ вСрния максимум ΠΈ няма Π΄Π° засСгнСм Π΄Ρ€ΡƒΠ³ΠΈ импулси, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° са Π² ΡΡŠΡΠ΅Π΄ΡΡ‚Π²ΠΎ. Π’ ΠΌΠ½ΠΎΠ³ΠΎ лоши случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ импулситС Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 48, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π΅Π½ поиск Π½Π° импулса, Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° статията няма Π΄Π° описвам Ρ‚ΠΎΠ²Π° Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ°;
  5. На ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ° ΡΡŠΡ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΄Π°Π»ΠΈ рСфСрСнтният импулс ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½. ВоСст, Π°ΠΊΠΎ просто Ρ‚ΡŠΡ€ΡΠΈΠΌ максимума, Ρ‚ΠΎΠ²Π° Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΈΠΌΠΏΡƒΠ»ΡΡŠΡ‚ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π² Ρ‚ΠΎΠ·ΠΈ ΡƒΡ‡Π°ΡΡ‚ΡŠΠΊ. Π’ своята послСдна рСализация Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ провСрявам Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ максималната ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° стойност Π½Π° Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°Ρ‚Π° Π² ΡƒΡ‡Π°ΡΡ‚ΡŠΠΊΠ°, ΠΈ Π°ΠΊΠΎ тя надвишава ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°, считам, Ρ‡Π΅ ΠΈΠΌΠΏΡƒΠ»ΡΡŠΡ‚ Π΅ Π½Π°Π»ΠΈΡ†Π΅. Π’ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ, Π°ΠΊΠΎ рСфСрСнтният импулс Π½Π΅ Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½. Π’ΡƒΠΊ ΠΈΠΌΠ° 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са ΡΠ²ΡŠΡ€ΡˆΠΈΠ»ΠΈ ΠΈ слСдва Ρ‚ΠΈΡˆΠΈΠ½Π°, ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π° слСдва Π΄Π° сС счита Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ. Но Ρ‰Π΅ пропуснСм Ρ‚ΠΎΠ²Π° Π·Π° опростяванС Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ°;
  6. На слСдващата ΡΡ‚ΡŠΠΏΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° импулса Π½Π° Π΄Π°Π½Π½ΠΈ (Π±ΠΈΡ‚ 0 ΠΈΠ»ΠΈ 1), Π·Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ срСдната Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΡƒΡ‡Π°ΡΡ‚ΡŠΠΊΠ° (prev_pos;pos) middle_pos Ρ€Π°Π²Π½Π° Π½Π° middle_pos := (prev_pos+pos)/2 ΠΈ Π² извСстна околност Π½Π° middle_pos Π² ΡƒΡ‡Π°ΡΡ‚ΡŠΠΊΠ° (middle_pos-8;middle_pos+8) Ρ‰Π΅ изчислим максимума ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° Π½Π° Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°Ρ‚Π°. Ако Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ тях Π΅ ΠΏΠΎ-голяма ΠΎΡ‚ 10, записвамС Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° Π±ΠΈΡ‚ 1, ΠΈΠ½Π°Ρ‡Π΅ 0. 10 β€” константа, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° СкспСримСнтално;
  7. Π—Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° позиция Π² prev_pos (prev_pos := pos)
  8. ΠŸΠΎΠ²Ρ‚Π°Ρ€ΡΠΌΠ΅ ΠΎΡ‚ ΡΡ‚ΡŠΠΏΠΊΠ° 3, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ΠΌ цСлия Ρ„Π°ΠΉΠ»;
  9. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡΡ‚ Π±ΠΈΡ‚ΠΎΠ² масив трябва Π΄Π° бъдС Π·Π°ΠΏΠ°Π·Π΅Π½ ΠΊΠ°Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅. ПонСТС Π½Π΅ Π²Π·Π΅Ρ…ΠΌΠ΅ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ синхро-Π±ΠΈΡ‚Π° ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ, броят Π½Π° Π±ΠΈΡ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ ΠΊΡ€Π°Ρ‚Π½ΠΎ Π½Π° 8, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ нСизвСстно Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ измСстванС Π² Π±ΠΈΡ‚ΠΎΠ²Π΅. Π’ ΠΏΡŠΡ€Π²Π°Ρ‚Π° рСализация Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Π½Π΅ Π·Π½Π°Π΅Ρ… Π·Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° синхро-Π±ΠΈΡ‚Π° ΠΈ Π·Π°Ρ‚ΠΎΠ²Π° просто Π·Π°ΠΏΠ°Π·Π²Π°Ρ… 8 Ρ„Π°ΠΉΠ»Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ количСство Π±ΠΈΡ‚ΠΎΠ²ΠΎ измСстванС. Π•Π΄ΠΈΠ½ ΠΎΡ‚ тях ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ окончатСлния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ просто ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΌ всички Π±ΠΈΡ‚ΠΎΠ²Π΅ Π΄ΠΎ A5h, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° ΠΊΠΎΡ€Π΅ΠΊΡ‚Π΅Π½ Ρ„Π°ΠΉΠ» Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°.

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π½Π° Ruby, Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС интСрСсуват
ΠšΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊ Π·Π° написванС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈΠ·Π±Ρ€Π°Ρ… Ruby, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎ-голямата част ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΠΌ Π½Π° Π½Π΅Π³ΠΎ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΡŠΡ‚ Π½Π΅ Π΅ високопроизводитСлСн, Π½ΠΎ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΄Π° направя скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ максимално Π±ΡŠΡ€Π·Π° Π½Π΅ Π΅ основна.

# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ gem 'wavefile'
require 'wavefile'

reader = WaveFile::Reader.new('input.wav')
samples = []
format = WaveFile::Format.new(:mono, :pcm_8, 44100)

# Π§ΠΈΡ‚Π°Π΅ΠΌ WAV Ρ„Π°ΠΉΠ», ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Mono, 8 bit 
# Массив samples Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±Π°ΠΉΡ‚ со значСниями 0-255
reader.each_buffer(10000) do |buffer|
  samples += buffer.convert(format).samples
end

# ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° (вмСсто 0)
prev_pos = 0
# РасстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°ΠΌΠΈ
distance = 48
# Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ расстояния для окрСстности поиска локального максимума
delta = (distance / 6).floor
# Π‘ΠΈΡ‚Ρ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ строки ΠΈΠ· "0" ΠΈ "1"
bits = ""

loop do
  # РассчитываСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°
  pos = prev_pos + distance
  
  # Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ 
  break if pos + delta >= samples.size

  # ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ pos ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ максимума Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ [pos - delta;pos + delta]
  (pos - delta..pos + delta).each { |p| pos = p if samples[p] > samples[pos] }

  # Находим сСрСдину ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [prev_pos;pos]
  middle_pos = ((prev_pos + pos) / 2).floor

  # Π‘Π΅Ρ€Π΅ΠΌ ΠΎΠΊΡ€Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π² сСрСдинС 
  sample = samples[middle_pos - delta..middle_pos + delta]

  # ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Π±ΠΈΡ‚ ΠΊΠ°ΠΊ "1" Ссли Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10
  bit = sample.max - sample.min > 10
  bits += bit ? "1" : "0"
end

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ синхро-Π±Π°ΠΉΡ‚ ΠΈ замСняСм всС ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ Π½Π° 256 Π±ΠΈΡ‚ Π½ΡƒΠ»Π΅ΠΉ (согласно спСцификации Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°) 
bits.gsub! /^[01]*?10100101/, ("0" * 256) + "10100101"

# БохраняСм Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ», упаковывая Π±ΠΈΡ‚Ρ‹ Π² Π±Π°ΠΉΡ‚Ρ‹
File.write "output.cas", [bits].pack("B*")

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΎΠΏΠΈΡ‚Π°Ρ… няколко Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° ΠΈ константитС, ΠΈΠΌΠ°Ρ… ΠΊΡŠΡΠΌΠ΅Ρ‚ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° Π½Π΅Ρ‰ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ интСрСсно:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

И Ρ‚Π°ΠΊΠ°, съдСйки ΠΏΠΎ символнитС Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° построяванС Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Π² тСкста Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° липсват ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ. Всички ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ са ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ (стойността Π½Π° всСки > 80h). Π‘Π΅Π³Π° трябва Π΄Π° установим, какъв ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΎΡ‚ 80-Ρ‚Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π΅ могъл Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π² Ρ‚Π°ΠΊΡŠΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ напомня Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° BASIC. ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π² Ρ‚Π°ΠΊΡŠΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ ZX Spectrum Π·Π°ΠΏΠ°Π·Π²Π° ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°. Π—Π° всСки случай ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ… ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΡƒΠΌΠΈ Π·Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. ΠšΠ°ΠΊΡ‚ΠΎ Π΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ… ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΡƒΠΌΠΈ Π½Π° BASIC ΠΎΡ‚ популярнитС ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ Atari, Commodore 64 ΠΈ няколко Π΄Ρ€ΡƒΠ³ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ успях Π΄Π° намСря докумСнтация, Π½ΠΎ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ β€” Π·Π½Π°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΈ Π·Π° разновидноститС Π½Π° Ρ€Π΅Ρ‚Ρ€ΠΎ-ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ Π½Π΅ бСшС Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ.

Π’ΠΎΠ³Π°Π²Π° Ρ€Π΅ΡˆΠΈΡ… Π΄Π° ΠΏΠΎΠ΅ΠΌΠ° ΠΏΠΎ списъка, ΠΈ Ρ‚ΡƒΠΊ ΠΏΠΎΠ³Π»Π΅Π΄ΡŠΡ‚ ΠΌΠΈ ΠΏΠΎΠΏΠ°Π΄Π° Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° производитСля Radio Shack ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80. ИмСнно Ρ‚Π΅Π·ΠΈ ΠΈΠΌΠ΅Π½Π° бяха написани Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π° касСтитС, ΠΊΠΎΠΈΡ‚ΠΎ Π»Π΅ΠΆΠ°Ρ…Π° Π½Π° масата ΠΌΠΈ! Въй ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ… ΠΏΡ€Π΅Π΄ΠΈ Ρ‚Π΅Π·ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΈ Π½Π΅ бях Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ с ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80, ΠΌΠΈ сС ΡΡ‚Ρ€ΡƒΠ²Π°ΡˆΠ΅, Ρ‡Π΅ Radio Shack Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π» Π½Π° аудиокасСти, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° BASF, Sony ΠΈΠ»ΠΈ TDK, Π° TRS-80 Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅. Π—Π°Ρ‰ΠΎ Π½Π΅?

ΠšΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ Tandy/Radio Shack TRS-80

Много Π΅ вСроятно, Ρ‡Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π°Ρ‚Π° аудиозапис, ΠΊΠΎΠΉΡ‚ΠΎ посочих ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° статията, Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ Π½Π° Ρ‚Π°ΠΊΡŠΠ² ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

Установи сС, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ разновидности (Model I/Model III/Model IV ΠΈ Ρ‚.Π½.) са Π±ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ популярни Π² своСто Π²Ρ€Π΅ΠΌΠ΅ (Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π½Π΅ Π² Русия). Π—Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΅, Ρ‡Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² тях, ΡΡŠΡ‰ΠΎ Π΅ Z80. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ информация. ΠŸΡ€Π΅Π· 80-Ρ‚Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ информацията Π·Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° сС Ρ€Π°Π·ΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΠ²Π°ΡˆΠ΅ Π² списания. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ няколко Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ.

Π‘Π²Π°Π»ΠΈΡ… Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° trs80gp ΠΈ Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚ успях Π΄Π° видя ΠΊΠ°ΠΊ Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ» Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ Ρ†Π²Π΅Ρ‚Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄, Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΡΡ‚Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π° бСшС само 128x48 пиксСла, Π½ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ…Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Ρ‚ Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΡΡ‚Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π°. ИмашС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π½Π° рСализация Π½Π° Π΅Π·ΠΈΠΊΠ° BASIC (ΠΊΠΎΠΉΡ‚ΠΎ, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ZX Spectrum, Π² някои ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΡ€ΠΈ Π½Π΅ бСшС "Π²Π³Ρ€Π°Π΄Π΅Π½" Π² ΠŸΠ—Π£ ΠΈ всСки Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ моТСшС Π΄Π° сС Π·Π°Ρ€Π΅ΠΆΠ΄Π° ΠΎΡ‚ Ρ„Π»ΠΎΠΏΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ самата ОБ)

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° аудиозаписи Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CAS, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, Π½ΠΎ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ успях Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π° записитС ΠΎΡ‚ касСтитС си с тях.

Π Π°Π·Π±ΠΈΡ€Π°ΠΉΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Ρ„Π°ΠΉΠ»Π° CAS (ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΎΠΊΠ°Π·Π° просто ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Π° ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ Π»Π΅Π½Ρ‚Π°Ρ‚Π°, която Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ…, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° със синхро-Π±ΠΈΡ‚Π°), Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… няколко ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° си ΠΈ успях Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° Ρ€Π°Π±ΠΎΡ‚Π΅Π½ CAS Ρ„Π°ΠΉΠ» Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° (TRS-80 Model III):

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ опрСдСлянС Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ импулс ΠΈ разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠΎΡ€Π½ΠΈΡ‚Π΅ импулси оформях Π² Π²ΠΈΠ΄ GEM ΠΏΠ°ΠΊΠ΅Ρ‚, изходният ΠΊΠΎΠ΄ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π½Π° Github.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΠΈΠ½Π°Π»ΠΈΡΡ‚ ΠΏΡŠΡ‚ сС ΠΎΠΊΠ°Π·Π° Π²ΡŠΠ»Π½ΡƒΠ²Π°Ρ‰ΠΎ ΠΏΡŠΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Π² ΠΌΠΈΠ½Π°Π»ΠΎΡ‚ΠΎ, ΠΈ сС Ρ€Π°Π΄Π²Π°ΠΌ, Ρ‡Π΅ накрая Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… Ρ€Π°Π·Π³Π°Π΄Π°. ОсвСн Ρ‚ΠΎΠ²Π°:

  • Π Π°Π·Π±Ρ€Π°Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² ZX Spectrum ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ… Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Π² ΠŸΠ—Π£ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅/Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ аудиокасСти
  • Π‘Π΅ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ… с ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80 ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ разновидности, ΠΈΠ·ΡƒΡ‡ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΈ Π΄ΠΎΡ€ΠΈ ΠΈΠΌΠ°Ρ… Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ с ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π² машинни ΠΊΠΎΠ΄ΠΎΠ²Π΅ (всС ΠΏΠ°ΠΊ всички ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ Z80 ΠΌΠΈ са Π΄ΠΎΠ±Ρ€Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ)
  • Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ… цялостСн инструмСнт Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° аудиозаписи Π² CAS Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ‡Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ, Π½Π΅Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈ ΠΎΡ‚ "официалния" инструмСнт.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster