תכנון ובניית אב טיפוס של מערכות (Software Defined Radio (SDR בצורה קלה ומהירה עם MATLAB ו-Simulink
כמפתח אלגוריתמים למערכות תקשורת מורכבות, אתה יודע שאי אפשר לפתח אלגוריתם בוואקום. אתה צריך להתחשב בכל מרכיב במערכת שמשפיע על ביצועי האלגוריתם, וזקוק ליכולת לנתח ביצועים בזמן אמת, עם אותות תקניים. לצורך כך, MathWorks מציעה שיטת פיתוח ב-5 שלבים אותה אציג בבלוג הזה.
SDR הינו התקן האלחוטי שבדרך-כלל מכיל מקלט-משדר (מקמ"ש) RF מתוכנת + FPGA או SoC. פלטפורמות SDR מסחריות מסוגלות לשדר ולקלוט בתדרים שונים לצורך יישום תקנים אלחוטיים, מרדיו FM ועד תקשורת Wi-Fi ו-LTE.
ניתן לתקשר עם פלטפורמות אלו ישירות מ-MATLAB ו-Simulink ולבצע בדיקות ובניית אבטיפוס Radio-in-the-Loop. זה אומר שאם אתה אלגוריתמאי, אתה יכול לשדר ולקלוט מידע אלחוטי בזמן אמת ולבחון אלגוריתמים שאתה מפתח ע"ג SDR.
לדוגמא:
- ניתן לעשות וריפיקציה ולבנות במהירות אבי טיפוס למערכות תקשורת באמצעות ה-Zynq-7000 של Xilinx (חומרה מבוססת SoC עם ראש RF של Analog Devices)
(תוכל לבחון את ביצועי התכן שלך בתרחישים אמיתיים ע"י שידור אותות RF באמצעות MATLAB ו-Simulink) - ניתן לייבא אותות RF אמיתיים לתוך סביבת MATLAB ע"י שימוש ב-SDR מסוג USRP של חברת National Instruments.
(גם כאן תוכל להשתמש בחומרת ה-USRP להטמעת קוד HDL שנוצר ישירות מתוך מודל ה-Simulink שלך).
אלו רק 2 דוגמאות מתוך כמה פלטפורמות SDR הנתמכות ב-MATLAB ו-Simulink (קישור לרשימה המלאה בהמשך). אבל אם אתה משתמש בצב"דים במעבדה, MATLAB ו-Simulink תומכים גם בהם.
לדוגמא, סדרת ה-X-Series Signal Analyzers של Keysight. מהנדסים מתעשיות תקשורת הסלולר, תקשורת לוויינית, צבאית, Wireless, ועוד משתמשים בצב"דים אלו, המשמשים להקלטה ולאנליזה של בדיקות מעבדה.
מהנדסי בדיקות יכולים לשלוט, לקנפג, ולרכוש אותות ממכשירים אלו ישירות מ-MATLAB ולבצע בדיקות ייחודיות (customized).
>> תוכל לבדוק אם ה–SDR או צב"ד שלך נתמך כאן.
וכפי שתראה בדוגמא הבאה, ניתן אפילו להשתמש בצב"דים אלו לניתוח אותות LTE תקניים. (ניתן לבנות דוגמאות דומות לתקשורת 5G ו-WLAN)
דוגמא: תיקוף תכן LTE באמצעות אותות אמיתיים וצב"דים
דרישה קריטית לתכן ווריפיקציה של מערכת LTE (או Advanced-LTE) היא היכולת לעבוד עם אותות אמיתיים. לכן, מהנדסים צריכים תוכנה שמאפשרת התממשקות לתכן עם אותות "חיים" תוך שימוש בצב"דים לשיערוך ווריפיקציה.
דוגמא זו מראה כיצד להשתמש ב- RF Signal Generator and Analyzer כחלק מתהליך וריפיקציה לתכן מערכת LTE (ראה Figure 1 למטה).
ה-setup: מייצרים סיגנל LTE תקני ב-MATLAB ומכינים אותו לשידור over-the-air בצב"ד. משתמשים בצב"ד נוסף לרכישת האות שאח"כ מנותח ב-MATLAB.
שלב #1: יצירת סיגנל ה-BaseBand
ניתן לייצר סיגנל Downlink E-TM לבדיקות יחד עם אותות uplink and downlink reference channel RMC בקלות מ-GUI ייעודי ב-MATLAB:
שלב #2: שידור סיגנל Over-the-Air באמצעות צב"ד RF
באמצעות Instrument Control Toolbox אפשר כעת לטעון לצב"ד את האות שבנינו ב-MATLAB.
פונקציית MATLAB בשם hDownloadAndPlayWaveformUsingN5172B.m (מוצגת למטה) יוצרת ממשק עם הצב"ד Agilent N5172B Signal Generator
txaddress = ‘192.168.10.1’;
% Instrument address iq = waveform;
% IQ data sr = cfg.SamplingRate; % Sampling rate (Hz)
fc = 1e9; % Center frequency (Hz)
power = 0; % Output power (dBm)
hDownloadAndPlayWaveformUsingN5172B(txaddress,iq,sr,fc,power);
שלב #3: טעינת הסיגנל הנקלט ל-MATLAB
נשתמש שוב ב- Instrument Control Toolbox כדי לנתח את האות הנקלט ב-MATLAB.
פונק' MATLAB בשם hCaptureIQUsingN9010A.m היא דוגמא שניתן להשתמש בה עם צב"ד Agilent N9010A.
(פונקציה זו מחזירה את אות הנקלט ואת קצב הדגימה מהצב"ד).
המידע מיובא ל-MATLAB באמצעות הקוד הבא:
rxaddress = ‘192.168.10.2’; % Instrument address
t = cfg.TotSubframes*1e-3; % Capture time (s), one subframe is 1 ms
fc = 1e9; % Center frequency (Hz)
bw = 10e6; % Bandwidth (Hz)
trig = false; % External trigger
[rxwaveform, capsr] = hCaptureIQUsingN9010A(rxaddress,t,fc,bw,trig);
אובייקט ה-Spectrum Analyzer ב-MATLAB מציג את ספקטרום האות הנקלט במרחב הזמן באמצעות הקוד למטה.
ניתן לראות את השפעות ה-RF בשידור ובקליטה.
hsa = dsp.SpectrumAnalyzer(‘SampleRate’,capsr, …
‘SpectrumType’,’Power density’,’PowerUnits’,’dBm’, …
‘RBWSource’,’Property’,’RBW’,1.3e3,...
‘FrequencySpan’,’Span and center frequency’,’Span’,bw, …
‘CenterFrequency’,0,’Window’,’Rectangular’,’SpectralAverages’,10, …
‘YLabel’,’PSD’,’ShowLegend’,false, ...
‘Title’,’Received Signal Spectrum: 10 MHz LTE Carrier’);
step(hsa,rxwaveform);
שלב #4: הכנת אות LTE הנקלט לניתוח
כדי לנתח את האות הנקלט, צריך לדעת כמה פרמטרים של המערכת. באמצעות פונק' מובנות ב-LTE System Toolbox נוכל לייצר בקלות פרמטרי מערכת עבור אותות E-TM וגם downlink and uplink RMCs:
% System parameters for Test Model 1.1, 10 MHz bandwidth
cfg = lteTestModel(‘1.1’,’10MHz’);
כדי לשחזר את ה-resource grid, נמיר את קצב הדגימה של האות הנקלט לזה הנדרש עבור OFDM demodulation, ואז נסנכרן אותו ל-frame boundary הראשון.
לאחר מכן נוכל לעשות דמודולציה ושחזור, כפי שמוצג בקטע הקוד הבא:
% Obtain sampling rate and resample for OFDM demodulation
info = lteOFDMInfo(cfg);
cfg.SamplingRate = info.SamplingRate;
rxwaveform = resample(rxwaveform,cfg.SamplingRate,capsr);
% Synchronize to the first frame head
offset = lteDLFrameOffset(cfg,rxwaveform);
rxwaveform = rxwaveform(1+offset:end,:);
% OFDM demodulate to recover resource grid
rxgrid = lteOFDMDemodulate(cfg,rxwaveform);
שלב #5: ניתוח האות הנקלט
כעת נוכל לנתח את האות המשוחזר ואת ה-resource grid.
ה-LTE System Toolbox מספק דוגמאות ופונקציה לניתוח אותות, כולל יחס אות לערוצים שכנים (ACLR), ו- EVM.
הפונקציה hACLRMeasurementEUTRA.m, hACLRMeasurementUTRA.m מתוך ה-LTE System Toolbox מודדות את ה-UTRA ACLR וה-E-UTRA ACLR של האות הנקלט:
% Calculate ACLR measurement parameters
rmc.UTRAChipRate = 3.84; % UTRA chip rate in MCPS
[aclr, nRC, R _ C, BWUTRA] = hACLRParameters(cfg);
% Apply required oversampling
resampled = resample(rxwaveform,aclr.OSR,1);
% Measure E-UTRA ACLR
aclr = hACLRMeasurementEUTRA(aclr,resampled);
aclr = hACLRMeasurementUTRA(aclr,resampled,nRC,R_C,BWUTRA);
ניתן גם לבנות גרפים להצגת מדידות ה-ACLR:
הפונקציה hPDSCHEVM.m מודדת EVM של ה-PDSCH:
% Configure the channel estimator to average over frequency and time
cec.PilotAverage = ‘UserDefined’;
cec.FreqWindow = 9;
cec.TimeWindow = 9;
cec.InterpType = ‘cubic’;
cec.InterpWinSize = 3;
cec.InterpWindow = ‘Causal’;
% Perform EVM measurement
evmMeas = hPDSCHEVM(cfg,cec,rxwaveform);
ה-struct המוחזר מהפונקציה מכיל peak EVM ו-RMS EVM ומערך המכיל את וקטור השגיאה עבור כל סימבול ב-PDSCH.
evmmeas =
Peak: 0.0509
RMS: 0.0127
EV: [10464×1 double]
השלמנו את ניתוח האות, וכעת נוכל לעשות איטרציות פיתוח אלגוריתם מהירות ולבחון השפעה על ביצועי כלל המערכת באופן מיידי.
לחץ כאן כדי לקרוא עוד על תכן ו– Prototyping באמצעות מערכות SDR ב–MATLAB ו– Simulink
*הערה: הבלוג נכתב מטעמי נוחות בלשון זכר, אך מיועד לכלל העוסקים בהנדסה – נשים וגברים כאחד.