به نام خدا
سلام وقت همگی بخیر
در ادامه جلسات مخابرات دیجیتال در gnu radio به موضوع pulse shaping پرداخته شده است pulse shaping مورد استفاده square root raised cosine میباشد و سپس نحوه به دست آوردن پهنای باند آن.
در ادامه تیز مقایسهای بین pulse مستطیلی و square root raised cosine شده است.
لینک جلسه 14 و 15 به صورت زیر میباشد:
https://www.aparat.com/v/hstq5rz?refererRef=channel_page
https://www.aparat.com/v/fada46s
به خاطر کیفیت بد صدا عذرخواهم.
https://eitaa.com/sdr_one
به نام خدا
سلام وقت همگی بخیر
اما امروز داشتم با دقت به موضوع Direct sequence spread spectrum توجه میکردم بعد از این افست فرکانسی درشت تخمین زده شد، صد در صد ما یک خطا داریم .
من رفتم و بیت اولم رو despread کردم اما با چنین صحنه ای روبه رو شدم یعنی شکل بالا به جای شکل پایین.
اما قبلا این رو میدونستم که #هرچهزمانبگذرهاینCFOباقیماندهرویهمجمعمیشوند و این جا دقیقا به چشم دیدم تجمع این خطاها رو. و این تجمع خطاها باعث شده که قسمت موهومی به جای اینکه صفر باشه به تدریج مقدارش زیاد بشه.
و قسمت حقیقی هم به جای اینکه منفی یک باشه مقدارش به تدریج کم میشه.
این نیاز به یک بلوک carrier recovery را نشان میدهد که بر مبنای PLL است.
https://eitaa.com/sdr_one
DSSS.py
حجم:
6.8K
به نام خدا
سلام وقت همگی بخیر
در این قسمت به موضوع تکنیک مدولاسیون direct sequence spread spectrum پرداختهایم. در جلسات گذشته این تکنیک را به صورت غیر استاندارد به صورت عملی پیادهسازی کردهایم. تقریبا مانند الگوریتم دریافت داده در GPS. در ادامه لینک ویدیو در آپارات آمده است:
https://www.aparat.com/v/reod731
ولی در این قسمت و در قسمتهای اینده قصد داریم این تکنیک را به صورت استاندارد پیادهسازی کنیم.
در این قسمت ابتدا از شبیهسازی شروع کردهایم و بعد از این که فرستنده پیادهسازی شد به موضوع گیرنده ورود پیدا کردیم.
در گیرنده ابتدا در قسمت Acquisition با استفاده از FFT و IFFT افست فرکانسی و افست code phase به دست اوریم.
در ادامه نیز وارد tracking شدیم اما به صورت کامل توضیح داده نشده است زیرا هنوز خودم کامل نتونستم آن را پیادهسازی کنم.
مراجعه استفاده شده:
https://github.com/justkow/python-gps-receiver/blob/main/acquisition_and_tracking.py
https://github.com/archity/GPS-Receiver
#قسمتهشتم: پیادهسازی direct sequence spread spectrum در پایتون
و در نهایت
https://eitaa.com/SDR_one
final_DSSS.zip
حجم:
15.3K
به نام خدا سلام وقت همگی بخیر
پیش نمایش لینک direct sequence spread spectrum قرار داده شد در این قسمت در SNR پایین تونستیم جواب بگیریم.
https://www.aparat.com/v/wqoev6z
البته ان شاءالله در جلسههای آینده بیشتر دربارهی خود پیادهسازی صحبت میکنیم و ان شاءالله در اینده بتونیم این لینک رو تقویت و قوی کنیم.
#قسمتنهم: پیادهسازی direct sequence spread spectrum در پایتون
فایل پیادهسازی در قسمت نظرات قرار گرفته است
و در نهایت
https://eitaa.com/SDR_one
به نام خدا
سلام وقت همگی بخیر
کد زیر مربوط به timing recovery میباشد که برای مدولاسیون BPSK نوشته شده است برای نوشتن کد زیر از مرجع زیر استفاده شده است:
https://github.com/igorauad/symbol_timing_sync
این کد از الگوریتم Timing error detector، گاردنر و early-late به همراه interpolator یا به عبارتی درون یاب cubic استفاده میکند.
چند نکته در این کدها افست فرکانسی و زمانی اضافه شده است ولی در گیرنده فقط خروجی بعد از timing recovery مورد بررسی قرار گرفته است.
https://eitaa.com/SDR_one
به نام خدا
سلام وقت بخیر با توجه به پست قبلی و کد ارائه شده دربارهی timing recovery چند نکته وجود داشت وقتی که افست فرکانسی وجود ندارد همانطور که میبینید داده به درستی decode میشود.
اما وقتی که افست فرکانسی وجود دارد هر چند کم مثلا در این مثال 600 هرتز این افست مقدارش تغییر نمیکند ولی به تدریج باعث میشود فاز سیگنال به صورت خطی تغییر کند.
و اگر نگاه کنید در انجایی که داده ها به درستی decode نشدهاند داری یک الگوریتم مشخص هستند و آن این است که بیتهای decode شده دقیقا عکس بیت های اصلی هستند.
من نظرم این است که این تغییر فاز وقتی به 180 درجه میرسد این اتفاق میافتد الیته این نتیجه گیری رو خودم گرفتم و ممکن است اشتباه باشه و اگه کسی دلیلش رو میدونه ممنون میشم کمکم کنه تا دلیل اصلیش رو بدونم.
https://eitaa.com/SDR_one
به نام خدا
سلام وقت همگی بخیر
به صورت کلی در ایتا و بله و تلگرام و روبیکا کانال sdr تشکیل شده است
البته با توجه به امکانات هر اپلیکشین ممکن است در برخی کانال ها مانند تلگرام مطلب خیلی بیشتری وجود داشته باشد.
کانال تلگرام: @sdr_two
کانال ایتا: @sdr_one
کانال بله و روبیکا: @gnu_radio
و در نهایت
https://eitaa.com/SDR_one
به نام خدا
سلام وقت همگی بخیر در این قسمت با استفاده از Pluto SDR و RTL-SDR بر روی هوا یک تست عملی انجام دادیم.
https://www.aparat.com/v/dcu64kr
در یک مدولاسیون که شبیه bpsk است در ابتدا افست فرکانسی رو حذف کرده ولی خوب مقداری از اون باقی موند و سپس عملیات timing recovery انجام دادیم و سپس تعداد خطا ها رو مشاهده کردیم.
دفعه بعد اومدیم به بعد از ابن که افست فرکانسی برطرف کردیم یک PLL نیز قرار دادیم و خروجی کار به شدت بهتر شد.
اما دلیل بهتر شدن چیست؟
همانطور که گفته شد اگر #افست_فرکانس کوچیکی وجود داشته باشید این باعث #چرخش_فاز میشود.
و ما برای اصلاح آن از PLL استفاده کردیم.
https://eitaa.com/SDR_one
coding_hamming.zip
حجم:
1.5M
به نام خدا
سلام وقت همگی بخیر
در این فایل اومدیم و کدینگ همینگ رو به دو روش پیاده کردهایم یکی با استفاده از gnu radio و دیگری پایتون.
مرجع استفاده شده:
http://kcl.digimat.in/nptel/courses/video/108101373/L58.html
PDF مرجه نیز در فایل ZIP قرار داده شده است و در این پیادهسازی از Chat GPT نیز استفاده شده است.
در نهایت
https://eitaa.com/SDR_one