ایجاد شکل موج بی سیم برای ارتباطات مخابراتی در Simulink متلب
در این مقاله آموزشی متلب مثال پیش رو نحوه پیکربندی و استفاده از بلوک هایی که در برنامه Wireless Waveform Generator برای شبیه سازی سیستم های ارتباطات مخابراتی وجود دارد را نشان می دهد که با استفاده از قابلیت Export to Simulink ایجاد می شود.
مقدمه
برنامه Wireless Waveform Generator یک ابزار تعاملی برای ایجاد، تداخل، تجسم و خروجی گرفتن شکل موج است. شما می توانید شکل موج (Waveform) را به فضای کاری خود انتقال داده یا با فرمت mat و bb از آن خروجی بگیرید. همچنین می توانید پارامتر های تولید شکل موج را به یک اسکریپت متلب قابل اجرا یا یک بلوک Simulink انتقال بدهید. همینطور از بلوک سیمولینک انتقال یافته برای بازتولید شکل موج خود در سیمولینک استفاده کنید. این مثال نحوه استفاده از قابلیت Export to Simulink برنامه و نحوه پیکربندی بلوک انتقال یافته برای تولید شکل موج در محیط Simulink را نشان می دهد. اگرچه این مثال بر انتقال یک شکل موج OFDM تمرکز دارد، اما فرآیند مشابه برای همه انواع شکل موج پشتیبانی شده اعمال می شود.
پیکربندی انتقال شکل موج بی سیم به Simulink
برنامه Wireless Waveform Generator را با کلیک کردن بر روی نماد برنامه در تب Apps، در بخش پردازش سیگنال و ارتباطات، باز کنید. همچنین، عبارت wirelessWaveformGenerator را در خط فرمان MATLAB وارد کنید. در قسمت Waveform Type با کلیک بر روی OFDM یک شکل موج OFDM را انتخاب کنید. در سمت چپ برنامه، پارامتر های پیکربندی را برای شکل موج انتخابی تنظیم کنید. سپس با کلیک بر روی Export در نوار ابزار برنامه و انتخاب Export to Simulink، پیکربندی را انتقال دهید.
گزینه Export to Simulink یک بلوک Simulink ایجاد می کند که هنگام اجرای مدل Simulink شکل موج انتخاب شده را در خروجی نشان می دهد. اگر مدل باز وجود نداشته باشد، بلوک به یک مدل جدید انتقال پیدا می کند.
1 2 | modelName = 'WWGExport2SimulinkBlock'; open_system(modelName); |
شکل خروجی بعد از مقدار داده نهایی توسط پارامتر بلوک، خروجی را پس از تولید تمام نمونه سیگنال های تعیین شده مشخص می کند. گزینه های مقدار برای این پارامتر تکرار و تعیین صفر است. گزینه Cyclic repetition سیگنال را از ابتدا پس از رسیدن به آخرین نمونه در سیگنال تکرار می کند. گزینه Setting to zero خروجی هایی با ارزش صفر را برای مدت زمان شبیه سازی پس از تولید آخرین شکل سیگنال تولید می کند. نرخ نمونه شکل موج (Fs) و پارامتر های بلوک طول شکل موج از پیکربندی شکل موجی که در تب Initialization در کادر محاوره ای Mask Editor وجود دارد، به دست می آید. برای اطلاعات بیشتر در مورد پارامترهای بلوک، به مقاله آموزشی برنامه Waveform From Wireless Waveform Generator مراجعه کنید. این شکل پارامترهای بلوک انتقال یافته را نشان می دهد.
1 | close_system(modelName); |
یک بلوک Spectrum Analyzer را به بلوک انتقال یافته وصل کنید.
1 2 | modelName = 'WWGExport2SimulinkModel'; open_system(modelName); |
مدل را برای تجسم شکل موج با استفاده از پیکربندی فعلی شبیه سازی کنید.
1 | sim(modelName); |
بلوک Spectrum Analyzer پارامتر نرخ نمونه شکل موج را به ارث می برد که ۶۴ مگاهرتز است.
1 | close_system(modelName); |
تغییر پیکربندی شکل موج بی سیم
هنگامی که مدل Simulink را اجرا می کنید، بلوک انتقال یافته شکل موج تولید شده در تب Initialization و کادر محاوره ای Mask Editor برای بلوک را فراهم می کند. کد MATLAB که شکل موج را در این برگه مقداردهی اولیه می کند، مطابق با پیکربندی است که در برنامه Wireless Waveform Generator قبل از انتقال بلوک انتخاب کرده اید. برای تغییر پیکربندی شکل موج، یکی از این گزینه ها را انتخاب کنید:
- برنامه Wireless Waveform Generator را باز کنید، پیکربندی مورد نظر خود را انتخاب کرده و یک بلوک جدید را انتقال دهید. این گزینه تعامل با رابط برنامه را به جای کد متلب، اعتبار سنجی محدوده پارامتر در طول فرآیند پارامترسازی، و تجسم شکل موج قبل از اجرای مدل Simulink را فراهم می کند.
- پارامترهای پیکربندی موجود در برگه Initialization و کادر محاوره ای Mask Editor بلوک صادر شده را به روز کنید. این گزینه نیاز به تغییر کد MATLAB موجود در این تب دارد تا اعتبار دامنه پارامتر تنها زمانی رخ دهد که تغییرات را اعمال کنید. این گزینه تجسم شکل موج را قبل از اجرای مدل سیمولینک ارائه نمی دهد. اگر با کد متلب که شکل موج انتخاب شده را تولید می کند، آشنایی ندارید، تغییر پارامترهای شکل موج با استفاده از این گزینه توصیه نمی شود.
- اگر با استفاده از زبانه Initialization پیکربندی را انتخاب کنید، می توانید با کلیک روی بلوک exported آن را باز کنید، سپس کلید Ctrl+M را فشار دهید تا ادیتور باکس را باز کند و سپس بر روی تب Initialization کلیک کنید.
از کد MATLAB که در تب Initialization موجود است برای به روز رسانی پارامترهای انتخابی خود استفاده کنید. به عنوان مثال، فاصله حامل فرعی، scs را روی ۱٫۵۰۰٫۰۰۰ هرتز تنظیم کنید.
برای اعمال تغییرات روی OK کلیک کنید و کادر محاوره ای Mask Editor را ببندید. مدل را برای تجسم شکل موج به روز شده شبیه سازی کنید.
1 2 | modelName = 'WWGExport2SimulinkModelSCSModified'; sim(modelName); |
بلوک Spectrum Analyzer اکنون نرخ نمونه ۹۶ مگاهرتز را نشان می دهد که همان طور که انتظار می رفت ۱٫۵ برابر نرخ نمونه قبلی است.
اشتراک گذاری پیکربندی شکل موج بی سیم
در این بخش می توانید پیکربندی شکل موج بی سیم را با بلوک های دیگر در مدل به اشتراک بگذارید. برای دسترسی به پارامترهای بلوک فقط خواندنی و پارامترهای پیکربندی شکل موج، از ویژگی بلوک مشترک UserData استفاده کنید که ساختاری با این فیلدها است.
- پیکربندی شکل موج (WaveformConfig)
- طول شکل موج (WaveformLength)
- نرخ نمونه شکل موج (Fs)
با استفاده از تابع get_param می توانید به داده های کاربر بلوک انتقال یافته دسترسی داشته باشید.
1 | get_param([gcs '/OFDM Waveform Generator'],'UserData') |
ساختار موجود در داده های کاربر را در یک متغیر فضای کاری پایه با استفاده از InitFcn در قسمت callback ذخیره کنید. قسمت InitFcn از callback در طول به روز رسانی و شبیه سازی مدل اجرا می شود. برای استفاده از این فراخوان، روی تب MODELING کلیک کنید، سپس روی منوی کشویی تنظیمات مدل کلیک کنید و گزینه Model Properties را کلیک کنید. در قسمت Callbacks، InitFcn Callback را انتخاب کنید. داده های کاربر را به یک متغیر فضای کاری پایه جدید (مثلا cfg) اختصاص دهید.
هر بار که تغییرات پیکربندی را در تب Initialization اعمال می کنید، پارامترهایی که در بخش یوزر دیتای بلوک انتقال یافته وجود دارد، به روز می شوند. برای تغییر شکل موج OFDM ، یک بلوک Demodulator OFDM به مدل اضافه کنید. یک بلوک کانال AWGN را بین بلوک های OFDM Waveform Generator و OFDM Demodulator وصل کنید تا نویز سفید گاوسی را به سیگنال ورودی اضافه کنید. همچنین یک بلوک نمودار صورت فلکی را برای رسم نمادهای دمودوله شده اضافه کنید.
1 2 | modelName = 'WWGExport2SimulinkModelWithDemod'; open_system(modelName); |
پارامترهایی که برای پیکربندی بلوک Demodulator OFDM مورد نیاز هستند باید با پارامترهایی که برای پیکربندی بلوک انتقال داده شده استفاده می شوند مطابقت داشته باشند (در غیر این صورت، دمدولاسیون با شکست مواجه میشود). برای دسترسی به پارامترهای پیکربندی بلوک انتقال یافته شده، از متغیر cfg استفاده کنید. این شکل پارامترهای بلوک OFDM Demodulator را نشان می دهد.
از آنجایی که بلوک OFDM Demodulator به کل شکل موج OFDM برای دمودولاسیون نیاز دارد، پارامتر Samples per frame در بلوک انتقال یافته را روی cfg.WaveformLength تنظیم کنید و سپس مدل را شبیه سازی کنید.
1 | sim(modelName); |
پس از تغییر شکل موج OFDM با استفاده از بلوک OFDM Demodulator، بلوک Constellation Diagram نمادهای QAM حاصل را نمایش می دهد.
ایجاد شکل موج های چند حامل
برای تولید شکل موج چند حامل، نرخ نمونه برداری باید برای همه شکل موج ها یکسان باشد. برای تغییر شکل موج ها به یک افست حامل و تجمیع آنها، می توانید از بلوک Multiband Combiner استفاده کنید.
1 2 | modelName = 'WWGExport2SimulinkMulticarrier'; open_system(modelName); |
برای جابجایی شکل موج در فرکانس، ممکن است مجبور باشید نرخ های نمونه برداری را افزایش دهید. بلوک Multiband Combiner این امکان را فراهم می کند که شکل موج های ورودی را قبل از جابجایی و ترکیب آنها بیش از حد نمونه برداری کنید. این شکل پارامترهای بلوک Multiband Combiner را نشان می دهد.
مدل را برای تجسم شکل موج هایی که در ۸۰-، ۲۰ و ۱۰۰ مگاهرتز در مرکز هستند شبیه سازی کنید.
1 | sim(modelName); |
1 | openExample('comm/GenerateWWInSimulinkUsingAppGenBlockExample') |
منبع: mathworks
هیچ نظری ثبت نشده است