به نام خدا
سلام وقت همگی بخیر
فرض کنید در مدولاسیون BPSK قصد این را داریم که افست فرکانسی Coarse را حذف کنیم راههای متفاوتی وجود دارد که من خیلی از این راهها را نمیدانم اما با استفاده از دو روش زیر که تقریبا یکسان هست میتوانیم افست فرکانسی را حذف کنیم.
1) روش اول:
سیگنال ورودی را در خودش ضرب کرده، وقتی این کار را انجام میدهیم اثر مدولاسیون حذف میشود و تنها افست فرکانسی باقی میماند سپس از آن FFT گرفته و افست فرکانسی را به دست میآوریم.
2) روش دوم:
زاویه سیگنال ورودی را به دست آورده و سپس آن را در مرتبه مدولاسیون ضرب کرده که در اینجا 2 میباشد و سپس از آن exp میگیریم و دوباره مانند حالت قبل از آن FFT میگیریم.
#ادامهدارد
https://eitaa.com/SDR_one
به نام خدا
سلام وقت همگی بخیر
فرض کنید در مدولاسیون BPSK قصد این را داریم که افست فرکانسی Coarse را حذف کنیم راههای متفاوتی وجود دارد که من خیلی از این راهها را نمیدانم اما با استفاده از دو روش زیر که تقریبا یکسان هست میتوانیم افست فرکانسی را حذف کنیم.
1) روش اول:
سیگنال ورودی را در خودش ضرب کرده، وقتی این کار را انجام میدهیم اثر مدولاسیون حذف میشود و تنها افست فرکانسی باقی میماند سپس از آن FFT گرفته و افست فرکانسی را به دست میآوریم.
2) روش دوم:
زاویه سیگنال ورودی را به دست آورده و سپس آن را در مرتبه مدولاسیون ضرب کرده که در اینجا 2 میباشد و سپس از آن exp میگیریم و دوباره مانند حالت قبل از آن FFT میگیریم.
در اینجا چند نکته موجود میباشد فرض کنید sample rate برابر با یک مگاهرتز و طول FFT برابر با 1024 میباشد. و فرض کنید تعداد کل نمونهها ما 500,000 نمونه میباشد و برای اینکه بتوان افست فرکانسی را به دست آورد به دلیل اینکه طول FFT برابر با 1024 میباشد. باید 1024 نمونه به ورودی FFT داد و نکته ای که وجود دارد خروجی FFT نیز دارای 1024 نمونه است.
سپس Index نمونهای که دارای بیشترین مقدار است را به دست میآوریم. و index مورد نظر افست فرکانسی ما میباشد. اما باید آن را نرمالیزه کنیم. برای انجام این کار sample rate را بر طول FFT تقسیم کرده و بنابراین داریم:
Sample rate/FFT_Length = delta_F = 1,000,000/1024=976Hz
#ادامهدارد.
https://eitaa.com/SDR_one
و نکتهای که وجود دارد باید این مقدار را به خاطر اینکه مدولاسیون Bpsk میباشد تقسیم بر 2 کرد. اکنون فرض کنید index شماره صفر انتخاب شده است:
بنابراین افست فرکانسی برابر با صفر میباشد.
و اگر 1 انتخاب شود برابر با 488 هرتز میباشد.
بنابراین اگر از index شماره صفر به index شماره یک انتقال پیدا کنیم به یک بار افست فرکانسی 488 هرتز تغییر میکند.
فرض کنید افست فرکانسی واقعی برابر با 200 هرتز میباشد و به علت اینکه این مقدار به صفر نزدیک میباشد مقدار افست فرکانسی تخمین زده شده برابر با صفر در نظر گرفته شده است.
اکنون فرض کنید به علت گرم شدن اسلاتور فرستنده و گیرنده و یا حتی doppler و یا حتی نویز موجود در الگوریتم، افست فرکانسی به آرامی تغییر میکند و به حدود 250 هرتز میرسد در این صورت افست فرکانسی که ما در مرحله بعد تخمین میزنیم برابر با 488 هرتز است.
وقتی این اتفاق میافتد به یک باره افست فرکانسی تغییر میکند و در نتیجه سایر بلوکهای synchronization که با PLL کار میکنند مانند timing recovery و carrier recovery و ... واگر شده و به زمان نیاز دارند که دوباره Lock شوند.
برای جلوگیری از این کار در مرجع زیر دو روش پیشنهاد شده است که یکی از این روشها استفاده #ازفیلتریاستکهازتخمینهایبهدستآمدهدرطولزمانمیانگینگیریکند.
مرجع:
Software-Defined Radio for Engineers
و در نهایت داریم:
https://eitaa.com/SDR_one
به نام خدا
سلام وقت همگی بخیر در آپارت یک سیر ویدیو وجود داشت که در آن به مدولاسیونهای آنالوگ پرداخته بودیم و تا قسمت 11 ادامه داشت.
اکنون بعد از مدتهای قسمت 12 و 13 در آپارت بارگذاری شدند لینک قسمت 12 در زیر آمده است:
https://www.aparat.com/v/fekpqx3
نکته این ویدیوها نیز در کانال تلگرام نیز قرار گرفته است:
https://t.me/SDR_two
https://t.me/Engilandacademy
در این دو قسمت به موضوعات زیر پرداخته شده است:
به موضوع مدولاسیونهای QPSK و BPSK، موضوع Bit rate و symbol rate و samples per symbols و ...
https://eitaa.com/SDR_one
python-gps-receiver-main.zip
حجم:
1.1M
به نام خدا
سلام وقت همگی بخیر
در این کد به صورت خیلی ساده به موضوع گیرنده gps پرداخته است این کد به نظرم خیلی جالبه چون خودم هم مقداری خوندمش.
نکته مهم این است که حتما نباید از داده های GPS استفاده کنید میتونیم از این کد برای گیرنده DSSS استفاده کنیم. و برای فهم گیرنده DS به شدت توصیه میشود.
https://eitaa.com/SDR_one
به نام خدا
سلام وقت همگی بخیر
در ادامه جلسات مخابرات دیجیتال در 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