SDR
812 subscribers
68 photos
96 videos
63 files
231 links
ارتباط
@Arman_TeleCo_admin

این کانال جهت آموزش SDR تاسیس شده است.


علاوه بر این پروژه در این حوزه نیز پذیرفته میشود. به عنوان مثال پیاده‌سازی فرستنده و گیرنده های دیجیتال.
شماره جهت ارتباط

۰۹۳۹۳۶۱۶۲۸۷

آپارات:
https://www.aparat.com/miladseif13760806
Download Telegram
SDR
به نام خدا سلام وقت همگی بخیر شکل فوق ساختار کلی یک AGC می‌باشد، در این متن کوتاه قراره اهمیت استفاده از AGC را بیان کنیم: تصور کنید ورودی یک گیرنده، سیگنال بی‌سیمی است که دامنه و فاز آن به دلیل شرایط کانال مدام در حال تغییر است. همان‌طور که PLL در بخش…
پاسخ در عملکرد الگوریتم‌های Timing Recovery و Carrier Recovery نهفته است. در ساختار هر دو این الگوریتم‌ها از PLL استفاده شده که قلب پویای آن‌ها یک Loop Filter است. نکته‌ی فنی مهم اینجاست که در فرآیند Carrier Recovery، Loop Bandwidth مستقیماً بهPhase Error Detector Gain وابسته است. از آنجا که خودِ این بهره نیز تابع Average Symbol Level می‌باشد، هرگونه نوسان در دامنه‌ی سیگنال ورودی باعث تغییر ناخواسته‌ی Phase Error Detector Gain و در نتیجه تغییر لحظه‌ای Loop Bandwidth می‌شود.
این تغییر Loop Bandwidth، پایداری و رفتار طراحی‌شده‌ی Loop را مختل می‌کند. بنابراین، ما از AGC استفاده می‌کنیم تا با تثبیت دامنه‌ی سیگنال در یک محدوده‌ی معین، پارامترهای کنترلی Loop را ثابت نگه داشته و از عملکرد صحیح synchronizerها اطمینان حاصل کنیم.

منبع:

https://wirelesspi.com/how-automatic-gain-control-agc-works/

و در نهایت:


https://t.me/SDR_two
❤6
سلام مهندس شما hack rf one برای این آزمایش ها استفاده میکنید؟
❤2
به نام

سلام وقت همگی بخیر

یکی از شرکت انگار به تازگی RTL-SDR اش موجود شد. این شرکت ..

دانگل RTL-SDR RTL2832U R828D همراه با آنتن

🖊 Part # AT1022

✅ گیرنده رادیویی نرم‌افزاری پهن‌باند RTL-SDR USB مجهز به چیپ RTL2832U و تیونر R820T2

🟢 موجود در انبار
🛒 خرید و بررسی مشخصات فنی
@arvidtek

جهت خرید

https://arvidtek.com/product/rtl-sdr-rtl2832u-r828d/
...............
و کانال یکی از دوستان که خیلی قوی عمل کردند و ما پیش ایشون درس پس میدیم آدرس کانالشون به صورت زیر است.

https://t.me/edward1stark

...............
و یکی از کانال ها به نام

https://t.me/archive_eeuma

فایل های درسی مانند ویدیو و ... مربوط به برق قرار میده به عنوان یک منبع منبعی خوبی می‌باشد.
.........................
و درنهایت

https://t.me/SDR_two
👍3❤2
به نام خدا

سلام وقت همگی بخیر امروز به صورت گذری با یک موضوع در کتاب Rice برخوردم این مطلب در صفحه 501 قرار داشت.

در این متن که مربوط به Timing recovery بود می‌گفت اگر samples per symbol یا sps مقدارش 8 یا بیشتر از 8 باشه اگر از Interpolator خطی استفاده بشود مشکلی ایجاد نمیکند و دقت خوب است.

https://t.me/SDR_two
👏4❤3
به نام خدا

سلام وقت همگی بخیر در ادامه مطالعه کتاب rice برای موضوع timing synchronization دو پارامتر وجود دارند به نام Phase detector gain, Kp و K0 که مقدار K0 برابر با منفی یک است که به modulo-1 counter مربوط می‌شود.

همانطور که در زیر شکل و خود شکل می‌بینید KP به Roll off factor بستگی دارد (( و همچنین باید متوسط سطح سیگنال برابر با یک باشد که می‌توان گفت نیاز به AGC قبل از Timing recovery حس می‌شود.))

متن داخل پرانتز تحلیل خودم می‌باشد و ممکن است اشتباه باشد.


https://t.me/SDR_two
❤2💯2
Modern_Digital_and_Analog_Communication.rar
24.6 MB
به نام خدا

سلام وقت همگی بخیر این کتاب نیز مانند برخی از کتابها کد متلب داره

و علاوه بر این مطالبی داره که در یادگیری تاثیر دارد

خیلی ممنون از گروه و کانال زیر که این کتاب رو قرار داده بودند:

https://t.me/TAAcad

@Persian_IEEEComSoc


و در نهایت


https://t.me/SDR_two
❤4❤‍🔥2👍1
به نام خدا

سلام وقت همگی بخیر

در یکی از موضوعات جالبی که با آن رو به رو شدم قبلا فکر میکردم ناهمسان بودن اسلاتور فرستنده و گیرنده فقط باعث ایجاد افست فرکانسی و فازی میشه اما دیروز در کتاب rice به یک مطلب جالبی بر خوردم و آن به صورت زیر بود:

یکی دیگر از موضوعات مهم، clock recovery می‌باشد که برای حل این مشکل از timing recovery کمک می‌گیریم. فرض کنیم مدولاسیون مورد استفاده، مدولاسیون PAM می‌باشد، و Sample per symbol یا به عبارتی SPS برابر با 2 می‌باشد بنابراین در صورتی که Symbol duration برابر با Ts باشد sample duration برابر است با:

T=Ts/2

و بنابراین F=2Fs، که F، Sample rate و Fs نیز symbol rate می‌باشد. اما قبلا به این موضوع اشاره شد که در RTL-SDR‌ها ورژن پایین و Hack RF که از اسیلاتور خارجی استفاده نکرده است به خاطر ناهمسان بودن و نا دقیق بودند این اسیلاتور‌های افست فرکانسی ایجاد می‌شود اما علاوه بر این موضوع، موضوع دیگری نیز رخ می‌دهد. به عنوان مثال اگر شما نرخ نمونه‌برداری را روی ۱ مگاهرتز (1,000,000 نمونه در ثانیه) تنظیم کرده باشید:

ادامه پست بعدی

https://t.me/SDR_two
👍4❤1
خطای 25 ppm یعنی:

Δf=1,000,000×(25×10^(-6))=25 Hz

یعنی نرخ نمونه‌برداری واقعی شما می‌تواند بین ۹۹۹,۹۷۵ تا ۱,۰۰۰,۰۲۵ نمونه در ثانیه باشد. و این یعنی در هر ثانیه، سیستم شما به جای ۱,۰۰۰,۰۰۰ نمونه، حدود ۲۵ نمونه کمتر یا بیشتر دریافت می‌کند. از دیگر نکاتی که باید به آن توجه شود اسیلاتورهای RTL-SDR ورژن پایین با گذشت زمان گرم می‌شوند یعنی وقتی دانگل کار می‌کند، گرم می‌شود. با گرم شدن، فرکانس کریستال تغییر می‌کند. این یعنی خطای شما ثابت نیست! مثلاً در شروع کار ممکن است 10 ppm خطا داشته باشید، ولی بعد از ۱۰ دقیقه کار کردن و گرم شدن دستگاه، این خطا ممکن است به40 ppm برسد. به همین خاطر RTL-SDR‌های ورژن‌های بالاتر داری اسیلاتورهای با ppm پایین می‌باشند و علاوه بر این اسیلاتورهای آن از نوع TCXO می‌باشد اما TCXO هم گرم می‌شود، ولی drift فرکانسی ناشی از دما را تا حد زیادی جبران می‌کند. که به این خطا Sample Clock Frequency Offset می‌گویند.

https://t.me/SDR_two
❤5👍3
SDR
به نام خدا سلام وقت همگی بخیر در ادامه مطالعه کتاب rice برای موضوع timing synchronization دو پارامتر وجود دارند به نام Phase detector gain, Kp و K0 که مقدار K0 برابر با منفی یک است که به modulo-1 counter مربوط می‌شود. همانطور که در زیر شکل و خود شکل می‌بینید…
به نام خدا

سلام وقت همگی بخیر

به سایت زیر مراجعه کنید و دربارهی موضوع timing recovery یک سری کد وجود دارد:

https://github.com/igorauad/symbol_timing_sync

در یک قسمت از کد که در شکل فوق مشاهده می‌کنید برای محاسبه Kp به متوسط انرژی سیگنال توجه شده است و همچین نیاز به AGC مورد توجه قرار گرفته است.

البته این کد به این صورت در خود سایت وجود ندارد من مقداری خط های کد را جابه جا که بتوانم از آن عکس بگیرم.

https://t.me/SDR_two
❤3💯2🔥1
به نام خدا

سلام وقت همگی بخیر

فرض کنید در مدولاسیون BPSK قصد این را داریم که افست فرکانسی Coarse را حذف کنیم راه‌های متفاوتی وجود دارد که من خیلی از این راه‌ها را نمی‌دانم اما با استفاده از دو روش زیر که تقریبا یکسان هست می‌توانیم افست فرکانسی را حذف کنیم.

1) روش اول:
سیگنال ورودی را در خودش ضرب کرده، وقتی این کار را انجام می‌دهیم اثر مدولاسیون حذف می‌شود و تنها افست فرکانسی باقی می‌ماند سپس از آن FFT گرفته و افست فرکانسی را به دست می‌آوریم.
2) روش دوم:
زاویه سیگنال ورودی را به دست آورده و سپس آن را در مرتبه مدولاسیون ضرب کرده که در اینجا 2 می‌باشد و سپس از آن exp می‌گیریم و دوباره مانند حالت قبل از آن FFT می‌گیریم.


در اینجا چند نکته موجود می‌باشد فرض کنید sample rate برابر با یک مگاهرتز و طول FFT برابر با 1024 می‌باشد. و فرض کنید تعداد کل نمونه‌ها ما 500,000 نمونه می‌باشد و برای اینکه بتوان افست فرکانسی را به دست آورد به دلیل اینکه طول FFT برابر با 1024 می‌باشد. باید 1024 نمونه به ورودی FFT داد و نکته ای که وجود دارد خروجی FFT نیز دارای 1024 نمونه است.

#ادامه‌دارد


https://t.me/SDR_two
👍2❤1
SDR
Photo
سپس Index نمونه‌ای که دارای بیشترین مقدار است را به دست می‌آوریم. و index مورد نظر افست فرکانسی ما می‌باشد. اما باید آن را نرمالیزه کنیم. برای انجام این کار sample rate را بر طول FFT تقسیم کرده و بنابراین داریم:

Sample rate/FFT_Length = delta_F = 1,000,000/1024=976Hz

و نکته‌ای که وجود دارد باید این مقدار را به خاطر اینکه مدولاسیون Bpsk می‌باشد تقسیم بر 2 کرد. اکنون فرض کنید index شماره صفر انتخاب شده است:
بنابراین افست فرکانسی برابر با صفر می‌باشد.
و اگر 1 انتخاب شود برابر با 488 هرتز می‌باشد.

نابراین اگر از index شماره صفر به index شماره یک انتقال پیدا کنیم به یک بار افست فرکانسی 488 هرتز تغییر می‌کند.

فرض کنید افست فرکانسی واقعی برابر با 200 هرتز می‌باشد و به علت اینکه این مقدار به صفر نزدیک می‌باشد مقدار افست فرکانسی تخمین زده شده برابر با صفر در نظر گرفته شده است.

#ادامه‌دارد.


https://t.me/SDR_two
💯2👍1
SDR
سپس Index نمونه‌ای که دارای بیشترین مقدار است را به دست می‌آوریم. و index مورد نظر افست فرکانسی ما می‌باشد. اما باید آن را نرمالیزه کنیم. برای انجام این کار sample rate را بر طول FFT تقسیم کرده و بنابراین داریم: Sample rate/FFT_Length = delta_F = 1,000,000/1024=976Hz…
اکنون فرض کنید به علت گرم شدن اسلاتور فرستنده و گیرنده و یا حتی doppler و یا حتی نویز موجود در الگوریتم، افست فرکانسی به آرامی تغییر می‌کند و به حدود 250 هرتز می‌رسد در این صورت افست فرکانسی که ما در مرحله بعد تخمین می‌زنیم برابر با 488 هرتز است.

وقتی این اتفاق می‌افتد به یک باره افست فرکانسی تغییر می‌کند و در نتیجه سایر بلوک‌های synchronization که با PLL کار می‌کنند مانند timing recovery و carrier recovery و ... واگر شده و به زمان نیاز دارند که دوباره Lock شوند.

برای جلوگیری از این کار در مرجع زیر دو روش پیشنهاد شده است که یکی از این روش‌ها استفاده #ازفیلتری‌است‌که‌ازتخمین‌های‌به‌دست‌آمده‌در‌طول‌زمان‌میانگین‌گیری‌کند.

مرجع:

Software-Defined Radio for Engineers

نکته این عکس که همراه این محتوا می‌باشد باید ابتدا خوانده شود نسبت به عکس قبلی.

و در نهایت داریم:

https://t.me/SDR_two
❤2👏2
به نام خدا سلام وقت همگی بخیر

چند روز پیش با یکی از اساتید صحبت می‌کردم البته لطف کردند و جواب بنده رو دادند یک مطلبی گفتند خیلی برای من جالب بود.

برخی الگوریتم‌های synchronization که در متلب وجود دارد به صورت تابع هستند و من فکر می‌کردم به کدهای آن نمیشه دسترسی پیدا کرد اما انگار به برخی از تابع‌های میشه دسترسی پیدا کرد.

به عنوان مثال موضوع timing synchronization از تابع یا به عبارتی از object زیر استفاده می‌کند:

comm.SymbolSynchronizer

اگر در command window متلب دستور زیر را بزنید:

which comm.SymbolSynchronizer

خروجی نمایش داده شده به صورت زیر است:

D:\MATLAB_MILAD\toolbox\comm\comm\+comm\SymbolSynchronizer.m

و سپس می‌توانیم با رفتن به مسیر نوشته شده فایل m. را مشاهده کرد.


https://t.me/SDR_two
❤2👍2
به نام خدا

سلام وقت همگی بخیر از دیگر نکاتی که یاد گرفتم این بود.

در متلب برخی توابع مانند HelperGPSNavigationConfig وجود دارند که در ابتدا فایل‌های آن در متلب وجود ندارد برای این که این فایل‌ها در متلب ایجاد شود.

با زدن دکمه F1 در متلب وارد Help متلب می‌شویم. سپس وارد صفحه‌ای می‌شویم در قسمت منو بار پایین آن روی دکمه open help browser زده و وارد help متلب می‌شویم و در قسمت جستجو عبارت را GPS Waveform Generation جستجو کرده. و مانند عکس فوق را مشاهده می‌کنید و سپس با زدن دکمه open live script فایل‌ها در متلب بالا می‌آید و با run کردن آن فایل‌ها در متلب برای من در مسیر:

C:\Users\USER\Documents\MATLAB\Examples\R2024a

ایجاد شده است. و می‌توانم از آن استفاده کنم.



https://t.me/SDR_two
💯4❤1
agc_pulse_shaping.py
1.2 KB
به نام خدا

سلام وقت همگی بخیر

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

سلام خدمت همگی

در پیاده سازی گیرنده بهتر اول AGC قرار بگیره یا match filter دلیل این سوال این است من در پیاده‌سازی گیرنده ام در شبیه سازی اومدم ابتدا بدون AGC استفاده کردم.
بعد در مرحله بعد خروجی match filter دادم به AGC اما جالب این بود AGC سطح سیگنال من رو تغییر نداد.


نکته من مدولاسیون BPSK با دامنه مثبت و منفی یک بود. و دامنه مرجع AGC ام برابر با یک بود.


با خودم گفتم اگه در گیرنده من اول AGC قرار بدهم و سپس match filter دیگه متوسطه دامنه سیگنالم یک نیست و برای timing recovery و carrier recovery مناسب نیست.

ممنون میشم راهنمایم کنید؟

نتیجه ای که گرفتم این است دامنه مرجع رو از یک به دو دهم یا سه دهم کاهش میدهم


کد فوق از صفحه زیر گرفته شده است:

https://wirelesspi.com/how-automatic-gain-control-agc-works/

و در نهایت:

https://t.me/SDR_two
💯3❤2
به نام خدا

سلام وقت همگی بخیر

دیروز در یک کد که مربوط به Timing recovery متلب بود چنین چیزی می‌خوندم می‌گفت با توجه به TEDهای موجود اگه مدولاسیونتون BPSK است از Muller and Muller و Zero crossing تصیمیم محور استفاده نکنید به خاطر دلیلی که در متن گفته شده.

و به جای اون از early-late و gardner استفاده کنید.

الان فکر کنید اگه بخواهیم در gnu radio از بلوکهای timing recovery استفاده کنیم دیگه باید به این موضوع دقت کنیم.

https://t.me/SDR_two
💯3❤2