بیژن بینایی GitHub
بیژن بینایی Rss

کمی نکات حول ADS جان

نوشته شده توسط بیژن | در دسته مخابرات, مهندسی برق | نوشته شده در ۲۱-۱۱-۱۳۹۵

۰

یه چند وقتیه زیاد سر و کلم به ADS افتاده. این پست جنبه آموزشی داره بنابراین فقط نکاتی رو که یادگرفتم رو می گم. از مقدمات و توضیح اینکه ADS چیه و کیه می گذریم

■ آنالیز HB

آنالیز Harmonic Balance همونطور که می دونید در فرکانس های مشخصی مدار رو حل می کنه و پاسخ رو بهتون می ده. یک بدی بزرگ HB اینه که افزایش تعداد فرکانس توی مدار، resource مورد نیاز برای حل مسیله رو بصورت هندسی می بره بالا. یه ایراد دیگش نداشتن مفهمومی برای نویزه. HB به شما SNR رو می تونه بده، می تونه بهتون NF یک پرت رو بده ولی اینا همه یه عددن! توی نمودارتون به هیچ وجه نمی تونید نویز رو چه روی طیف چه روی محور زمان ببینید. در نتیجه در دید کارفرما و مدیرپروژه و هر شخص دیگری یکم جذاب نیست نتایج.

برای حل این داستان ها، یا باید Time Domain حل کنید مسیله رو یا باید با آنلیز Envelope مدار رو پیش ببرید. توی Time Domain همه جور جنگولک بازی می شه سر سیگنال درآورد اما یه مشکل بزرگ وجود داره. فرض کنید مدار شما یه مدولاتوره که یه باند پایه مثلا ۱ مگ داره و یه سیگنال RF دو گیگی. توی این شرایط آنالیز تو فضای Time Domain فقط یه کابوسه... چرا؟ چون time step اتون رو باید جوری بکنید که تا ۴ گیگ (نرخ نایکویست جان) تو شبیه سازی وجود داشته باشه (تا LO رو داشته باشید) و از طرفی بازه زمانی باید اون قدر زیاد باشه که با bitrate ای برابر با 1Msps حدود ۱۰۰ تا سمبل تولید بشه. خلاصه مینیمم قضیه اگه فرض کنیم در لحظه صفر هم مدار تو steady state هه یه یکی دو ساعتی باید صبر کنید تا آنالیز تموم شه.

حالا اگه نخوایم این فاجعه رخ بده تنها راه استفاده از Envelope هست

■ آنالیز Envelope

طبق داستان های بالا Envelope خوبه (واقعا حس درست نوشتن نیست). اما یه دلیل دیگه هم مجبور می کنه خیلی جاها آنالیز Envelope تنها راه باشه. اگه بخوایم اثر fading و الگوریتم های دیجیتال مثل equalizer تو eye openning رو ببینیم باید حوزه آنالیز رو برد تو ADS Ptolemy. و ADS Ptolemy هم فقط می تونه با آانالیز Envelope و ترنزینت Cosimulation داشته باشد. که انتخاب Transient به دلیل بالا غیر منطقیه پس تنها راه Envelope هست. آنالیز Envelope یه سری ریزه کاری ها داره که احساس کردن manual خود ADS با اینکه ۴۰۴۲ صفحس توش خیلی اشاره ای نشده. اینجا ماحصل دو هفته ور رفتم با Document و خود ADS رو می یارم بعدها که از حافظه فندقیم پاک شد داشته باشمشون.

۱. آنالیز Envelope، فقط برای حالتی کاربرد داره که شما یه baseband دارین که تو یه LO ای میکس شده و رفته رو RF. آنالیز Envelope با توجه به این چرندی که گفتم فرض می کنه خیلی جاها توی طیفتون خالیه با این حال حول LO و DC کلی فرکانس دارین که براتون خیلی مهمه. بنابراین افزایش دقت Envelope بر خلاف HB خطیه و زمان آنالیزش هم مثل Transient طولانی نیست.

۲. توی Envelope شما می تونید هم از source های فرکانس و هم از سورس های Timed استفاده کنید. با این حال برای بهترین نتیجه بهتره که baseband با timed componentها پیاده سازی شن و قسمت RF با Frequency Sources.

۳. Envelope پارامتر های زیادی داره که هر کدوم رو اشتباه وارد کنید چون فرض می کنه غیر از جاهایی که بهش دادین توی طیف سیگنالی وجود نداره بهتون خروجی صفر می ده. پس تنظیم پارامترها برای جواب درست خیلی مهمه

۴. آنالیز Envelope یک جور TAHB یا Transient Assisted Harmonic Balance هست. Envelope در حقیقت توی step های مشخص یه transient simulation روی base band یا BB می ره. بعد با توجه به جواب،بین دو تا time step متوالی، یه HB با پارامترهای داده شده رو مدار انجام میگیره و پاسخ RF هم بدست می یاد. (برای توضیح بیشتر به همراه شکل مراجعه کنید به Doc/Evelope_Simulation.

۵. اینجا حوصله توضیح پارامتر های نویز رو ندارم اما مدار رو برای یک 64QAM مدولاتور، با فرض Direct Conversion بخش RF می گیم.

فرض کنید bit rate شما 320Msps است. فرکانس کاری یه فرکانس دلخواه تو باند Ka مثلا 20 گیگه و شما قراره آنالیزتون رو روی ۱۰۰ سمبل ببندید. به عبارت دیگه فرض می شه بعد صد سمبل دیتا تکرار می شه (تا طیف مفهموم پیدا کنه)

time step: این پارامتر بر حسب سرعت تغییر بیت تعیین می شه حداقل باید دو برابر حداکثر فرکانس موجود تو base band باشه، با این وجود برای نتیج بهتر ‌time step رو حدود ۱۰ برابر بیشتر فرض کنید. اینجا با توجه مدولاسیون، حداکثر فرکانس روی I و Q می شه 10Mhz. که معادله ۱۰۰ نانوثانیس. پس ما time step رو می گیرم ۱۰ نانوثانیه

time stop: این قسمت حداقل تناوب رو تعیین می کنه. قراره ۱۰۰ تا سمبل رو ما آنالیز کنیم پس طبق دوره ۱۰۰ نانوثانیه ای می شه ۱۰ میکروثانیه. باز ADS پیشنهاد می کنه برای طیف دقیقتر این پارامتر هم چندین برابر حداقل بگذاریم پس عدد ۵۰ میکروثانیه به نظر مناسب می یاد.

freq[1]: حالا باید پارامترهای HB رو وارد کرد. نکته اینجاست که تو اینجا نیازی به وارد کردن فرکانس های baseband نیست. در حقیقت وارد کردن فرکانس های baseband توی هارمونیک علاوه بر اینکه فرض های simulation رو بهم می زند (چرا؟) زمان شبیه سازی رو هم بیشتر می کند. خلاصه فرکانس های RF رو اینجا وارد می کنید. پیشنهاد keysight اینه که freq ۱ پردامنه ترین سیگنال و فرکانس های بعدی با دامنه های کمتر قرار گیرند.

نکته آخر اینکه اگر فرکانس LO رو توی HB وارد کنید، خروجی ts برای رسم زمانی سیگنال فقط یه دوره از بیت رو نشون می ده. برای درست کردن این مشکل فرکانس LO تقسیم بر تعداد سمبل رو ورودی بدید. پس توی اینجا می شه 200MHz. یادتون نره که order رو هم بگذارید ۱۰۰ (تعداد بیت ها).

خروجی این آنالیز می تونه برای محاسبه BER یا eye diagram استفاده بشه. آنالیز بالا حدود ۳۰ دقیقه طول می کشه که بر حسب پردازندتون می تونه این مقدار کم و زیاد بشه.

■ نتایج Envelope

نتایج Envelope واقعا شگفت آوره و در عین حال گیج کننده.

۱. برای رسم کل سیگنال (BB+RF) از ts روی ولتاژ گره بدون اندیس استفاده کنید.

۲. برای رسم سیگنال BB اندیس صفر استفاده می شه

۳. با استفاده از Kaiser window و انتخاب اندیس مناسب می تونید پهنای باند حول RF رو خیلی تر و تمیز حول DC ببینید.

۴. به صورت پیشفرض اندیس صفر بیانگر BB و یک بیانگر RF هست. اما چون تعداد سمبل ها ها رو ۱۰۰ گرفتیم و LO یک صدم شد اندیس RF می ره رو صد

در آخر بلاگ رضا توی ماه اخیر راه اندازی شده. به نظرم بلاگ عالی می شه. وقت داشتید شما هم دنبال کنید ببینیم داستان RF به کجا به می ره.