SHADOW-MSK

2650/2950 Hz SELFTEST …

فرستنده/گیرنده‌ی متنی CP-MSK روی FM آنالوگ، در لبه‌ی بالای باند صوتی

READY
لاگ برست‌ها 0 برست

مودم CP-MSK آماده است

متن کوتاه UTF-8 را به برست‌های صوتی با فاز پیوسته در لبه‌ی باند تبدیل می‌کند و با GF(2⁸) Reed-Solomon محافظت می‌کند. بدون رادیو هم می‌توانی چرخه‌ی کامل را آزمایش کنی.

میکروفون کار نکرد؟ فایل ضبط‌شده را همین‌جا بکش و رها کن، یا «تحلیل فایل صوتی» را بزن (کاملاً آفلاین).

SYNC: 0x1ACFFC1DCORR: 0.0%SNR: -- dB
RS FEC: 0 / 8 BCRC-16: STANDBY

نوشتن پیام برست

RS(48,32)
Air Time: 0.83sBytes: 0 / 29
پریست:

بازرس فریم و کدورد GF(2⁸) Reed-Solomon

Len+PayloadCRC-16RS Parity (16B)بایت اصلاح‌شده

هنوز برستی ارسال یا دریافت نشده است.

01 // System Architecture

CPFSK/MSK در لبه‌ی باند صوتی روی رپیتر و دستگاه FM آنالوگ

دستگاه‌های FM آنالوگ (مثل Baofeng UV-5R) و رپیترها صدا را در باند 300–3000 Hz عبور می‌دهند. مودم‌های کلاسیک مثل Bell 202 (1200/2200 Hz) درست وسط حساس‌ترین ناحیه‌ی شنوایی کار می‌کنند و صدای جیغ‌مانند دارند. SHADOW-MSK تُن‌ها را به لبه‌ی بالای باند می‌برد (پیش‌فرض: Mark 2650 / Space 2950 هرتز) و با فاز پیوسته مدوله می‌کند: φ[n] = φ[n−1] + 2π·f[n]/Fs.

MSK واقعی یعنی h = (fSpace − fMark) / baud = 0.5. در 600 baud این یعنی فاصله‌ی ۳۰۰ هرتز. گزینه‌ی قدیمی 2650/2800 در 600 baud فقط h=0.25 دارد: MSK نیست، پهنای باند کمتری می‌گیرد ولی در شبیه‌سازی‌های ما حدود ۳ تا ۴ dB نسبت به h=0.5 به نویز حساس‌تر بود. پله‌های فرکانس با یک boxcar به طول ¼ سمبل نرم می‌شوند و برست با رمپ کسینوسی ۵ms شروع و تمام می‌شود.

زنجیره‌ی پردازش:
TX: متن UTF-8 → Len+Flags+Payload+CRC16 → RS → Preamble/Sync/Postamble → CPFSK 48kHz × شیب پیش‌تأکید × سطح خروجی
RX: میکروفون/AUX → ریسمپل به 48k → میکس به باند پایه → LPF مرتبه ۴ → دیسکریمیناتور FM arg(z[n]·z*[n−1]) → جمع لغزان یک‌سمبلی → همبستگی ۹۶ بیتی Preamble+Sync → حذف bias → RS (پروفایل خودکار) → CRC

نکته: متر‌های Goertzel و طیف فقط برای نمایش‌اند؛ رمزگشایی واقعی با دیسکریمیناتور FM انجام می‌شود، چون با فاصله‌ی ۱۵۰–۳۰۰ هرتز و سمبل ۱٫۶۷ms فیلتر Goertzel یک‌سمبلی دو تُن را به‌خوبی جدا نمی‌کند (تفکیک فرکانسی ≈ 600 Hz).

02 // Frame Specification

ساختار برست و کدگذاری Reed-Solomon روی GF(2⁸)

هر ارسال یک برست مستقل است و نیازی به handshake ندارد. در 600 baud هر بیت ۱٫۶۶۷ ms است (۸۰ نمونه در 48 kHz). فریم استاندارد ۴۹۶ بیت است: 0.827 ثانیه.

۱. Preamble (64 bit / 8 B)0xAA ×8 • AGC و قفل کلاک
۲. Sync (32 bit / 4 B)0x1ACFFC1D (CCSDS ASM)
۳. Len+Flags (8 bit)b0–5: Len | b6: ReqACK | b7: IsACK
۴. Payload (۲۹ یا ۴۵ بایت)UTF-8، با صفر تا پر می‌شود
۵. CRC-16 (16 bit)CCITT: poly 0x1021, init 0xFFFF
۶. RS Parity (۱۶ یا ۸ بایت)GF(2⁸) poly 0x11D • اصلاح t بایت
۷. Postamble (16 bit)0x5555 • محافظت از پریتی هنگام رمپ پایین
پروفایلk / پریتیپی‌لوداصلاحبیت کل@600 Bd@1200 Bd
RS(48,32)32 / 1629 B8 B4960.827 s0.413 s
RS(64,48)48 / 1645 B8 B6241.040 s0.520 s
RS(40,32)32 / 829 B4 B4320.720 s0.360 s

گیرنده پروفایل را از روی خود جریان بیت تشخیص می‌دهد: همه‌ی طول کدوردها را امتحان می‌کند و فقط جوابی را می‌پذیرد که هم RS و هم CRC را بگذراند.

RS(64,32) (۳۲ بایت پریتی، اصلاح ۱۶ بایت) برای حالت‌های کند و متوسط است؛ پی‌لود همان ۲۹ بایت.

02b // Speed Modes

سه سرعت: سریع، متوسط، کند

هر چه سمبل طولانی‌تر باشد، انرژی بیشتری برای هر بیت جمع می‌شود: با نرخ ۱۲ برابر کمتر، ۱۰٫۸ dB انرژی بیشتر برای هر بیت (در عمل کمتر، چون گیرنده غیرهم‌فاز است). برای همین حالت کند حتی وقتی صدای خش‌خش از خود سیگنال بلندتر شنیده می‌شود جواب می‌دهد.

سرعتنرختُن‌هازمان برست (RS 48,32)آستانه‌ی SNR* (≥۹۰٪)
سریع600 Bd2650/29500.83 s≈ +4 dB
متوسط150 Bd2650/29503.57 s≈ −3 dB
کند50 Bd2650/280010.7 s≈ −8.5 dB

* SNR داخل باند ۳۰۰–۳۰۰۰ هرتز در شبیه‌سازی نویز سفید. روی رادیو واقعی، نویز FM پایین‌تر از آستانه (squelch tail، شکست‌های ناگهانی) سفید نیست و عدد میدانی را باید خودت اندازه بگیری.

حالت‌های کند و متوسط FSK متعامد با آشکارساز غیرهم‌فاز (فیلتر منطبق روی انرژی دو تُن) هستند؛ همگام‌سازی با یک الگوی ۱۳۵ بیتی (۸ بیت متناوب + دنباله‌ی m ۱۲۷ بیتی) و آستانه‌ی تطبیقی انجام می‌شود. گیرنده بایت‌های کم‌اعتماد را «پاک‌شده» (erasure) می‌گیرد و RS آن‌ها را دو برابر ارزان‌تر اصلاح می‌کند. کلیک‌های ناگهانی کوتاه با blanker حذف می‌شوند.

02c // Slow-mode caveats

محدودیت‌های حالت کند

  • آفست فرکانس: فاصله‌ی تُن‌ها ۱۵۰ هرتز و هر تُن فقط ~۵۰ هرتز پهنا دارد؛ در شبیه‌سازی تا ±۳۰ هرتز آفست فرکانس را تحمل می‌کند و از ±۴۰ هرتز دیگر رمزگشایی نمی‌شود (کارت صدا و رادیوی معمولی معمولاً زیر چند هرتز آفست دارند). حالت متوسط تا ±۶۰ هرتز را در همان تست تحمل کرد.
  • نویز ضربه‌ای: کلیک‌های کوتاه و نادر (تا حدود ۸ در ثانیه) با blanker حذف می‌شوند؛ ولی انفجارهای ۳۰ms با نرخ ~۵ در ثانیه همچنان رمزگشایی کند را می‌شکنند.
  • RS(64,32): در حالت کند حدود ۰٫۵ dB دیگر مقاومت می‌دهد ولی برست از ۱۰٫۷ به ۱۳٫۳ ثانیه می‌رود؛ پیش‌فرض RS(48,32) است.
  • زمان هوایی ۱۱ ثانیه: PTT و hang-time رپیتر را باید به همان اندازه نگه داری؛ بعضی رپیترها timeout ۳۰ ثانیه دارند، ولی بعضی ۱۰ تا ۱۵ ثانیه. اگر قطع شد، حالت متوسط را بزن.
  • پیش‌تأکید: جبران −2 dB روی Space برای حالت کند حدود ۱ dB هزینه دارد؛ اگر رادیویت پیش‌تأکید ندارد (سیمی)، اسلایدر را روی 0 بگذار.
  • گوش‌دادن زنده: تحلیل سنگین‌تر هر ۲٫۵ ثانیه روی ۲۴ ثانیه‌ی اخیر انجام می‌شود؛ پیام کند ممکن است تا چند ثانیه بعد از پایان ارسال نمایش داده شود.
03 // Wired AUX Mode

کابل مستقیم و زمان‌بندی زنده

با کابل K1 یا Digirig به جک 3.5mm (مثلاً BTECH APRS-K1) وصل می‌شود:

  • سربار FEC کمتر: RS(40,32) با ۸ بایت پریتی؛ برست حدود ۱۳٪ کوتاه‌تر (۴۳۲ از ۴۹۶ بیت) و تا ۴ بایت خراب را اصلاح می‌کند.
  • 1200 baud: برست RS(40,32) فقط ۰٫۳۶ ثانیه (فقط روی کانال تمیز سیمی).
  • Enter = ارسال فوری: برست با یک تُن راه‌انداز ۳۰۰ms (برای VOX) ارسال می‌شود.
  • سازگاری: گیرنده هر سه پروفایل و هر سه جفت تُن را خودکار تشخیص می‌دهد؛ جفت‌تُن درست را با کم‌ترین آفست میانگین انتخاب می‌کند.
04 // Baofeng & Repeater Setup

روال میدانی آکوستیک و سیمی

  • منوی Baofeng (نام دقیق منو بسته به فرم‌ور فرق می‌کند): SQL=1، STE=OFF، WN=WIDE (۲۵kHz تا انرژی 2950Hz عبور کند) و SAVE=OFF.
  • کوپل آکوستیک: میکروفون ۳ تا ۸ سانتی‌متر از بلندگو، اتاق ساکت. PTT را حدود ۲۵۰ms قبل از زدن «کدگذاری و پخش» بگیر تا اسکوئلچ رپیتر و دیکدر CTCSS باز شوند؛ برنامه هم ۱۵۰ms سکوت ابتدایی اضافه می‌کند.
  • سیمی / VOX: VOX=1 یا 2 و سطح خروجی حدود -6 dBFS. تُن راه‌انداز ۳۰۰ms قبل از داده VOX را باز می‌کند.
  • تحلیل فایل ضبط‌شده (آفلاین): با «تحلیل فایل صوتی» هر ضبط WAV/M4A/MP3 را دیکد کن. برای موبایل: ضبط‌کننده‌ی گوشی را کنار بلندگوی رادیو بگذار (در iPhone اپ Voice Memos، فرمت M4A). فرمت‌های بدون فشرده‌سازی یا با بیت‌ریت بالا بهتر از فایل‌های خیلی فشرده‌اند، و «حذف نویز» یا «بهبود صدا»ی ضبط‌کننده را خاموش کن.
  • میکروفون مرورگر: برنامه echoCancellation و AGC و noiseSuppression را خاموش می‌خواهد؛ اگر مرورگر نادیده گرفت، SNR افت می‌کند.
05 // Limits & Reality Check

محدودیت‌ها و واقعیت میدانی

  • تست‌ها شبیه‌سازی‌اند: AWGN، آفست فرکانس، dropout و خطای بایتی را در لوپ‌بک امتحان کرده‌ایم، ولی فیلتر واقعی رپیتر، دی‌امفازیس، کلیپ دویاسیون میکروفون و کلاک ناهمگام کارت صدا اثر دارند و فقط روی رادیو واقعی معلوم می‌شوند.
  • افت لبه‌ی باند: دی‌امفازیس FM در 2.9kHz نسبت به 1kHz حدود ۲ تا ۴ dB افت می‌دهد و بعضی رپیترها فیلتر پایین‌گذر تندی حوالی 3kHz دارند. اگر تُن Space ضعیف شد، اسلایدر جبران را بالا ببر یا جفت‌تُن 2650/2800 را امتحان کن (افت کمتر، حساسیت نویز بیشتر).
  • سطح خروجی: سطح −18 تا −24 dBFS کم‌صداست، ولی هر چه پایین‌تر بروی SNR کم می‌شود. با «SNR» نوار پایین پنجره‌ی لاگ تنظیمش کن.
  • زمان‌بندی: برست را بلافاصله بعد از صحبت و قبل از رها کردن PTT بفرست تا رپیتر در hang-time باز بماند.
  • مقررات: رعایت مجوز فرکانس و قوانین هر سرویس رادیویی (از جمله محدودیت روی کدگذاری/پنهان‌سازی در برخی سرویس‌ها) با خود توست.