999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Simulink自定義模塊偽碼調相信號的產生*

2016-11-07 06:56:28宋春吉韓壯志
艦船電子工程 2016年10期
關鍵詞:信號用戶

宋春吉 韓壯志

(解放軍軍械工程學院 石家莊 050003)

?

基于Simulink自定義模塊偽碼調相信號的產生*

宋春吉韓壯志

(解放軍軍械工程學院石家莊050003)

Simulink具有豐富的標準模塊庫,但并非所有仿真系統都可以通過標準模塊搭建,其自定義模塊實現了Simulink的功能擴展。通過研究S-函數的工作原理,介紹了S-函數創建和封裝用戶自定義模塊的基本算法,利用S-函數M文件基本的框架資源,編寫了偽隨機碼信號的M源文件。通過分析偽碼調相信號的信號特性,實現了偽碼調相連續波信號的快速生成。仿真結果表明,自定義模塊擴充了Simulink的仿真功能,提供了一種新的雷達信號源產生方法,為工程人員的使用與研究提供極大方便。

Simulink;自定義模塊; S-函數; 偽碼調相

Class NumberTP391.9

1 引言

Simulink作為對Matlab運算環境的擴展,結合工具箱的使用,可以完成對連續系統、離散系統、連續與離散混合系統的動態性能的仿真與分析[1]。系統仿真的同時,可以將運行數據實時存儲在Matlab的工作空間中,并且可以觀察仿真的執行過程。正是由于這些卓越的功能,使得它成為自動控制、航空航天、汽車設計等諸多領域仿真的首選語言。雖然Simulink模塊庫提供了豐富的通用模塊,但并不是所有數學模型或仿真系統都可以用Simulink通用模塊進行搭建[2]。S-函數正好彌補了這一不足,它提供了擴展 Simulink 功能的有力工具,并且支持參數傳遞。用戶可以建立一個能和 Simulink 模塊庫中的標準模塊一起使用的新模塊,利用封裝產生一個與 S-函數文件相對應的對話框和模塊圖標,不斷擴充 Simulink的仿真功能[3]。

偽碼調相連續波信號由于具有較高的時寬帶寬積,較好的自相關特性和較低的功率譜密度,被認為是雷達的理想信號波形[4~5]。但是,基于Simulink仿真系統的偽碼調相連續波信號的產生方法卻鮮有提及,并且Simulink此前多被用于控制領域[6~7],對雷達信號方面的仿真研究較少,所以本文在一定程度上拓寬了Simulink的應用領域,為偽碼調相連續波信號源的產生方法提供新思路。

2 S-函數

S-函數,即系統函數,它是擴展Simulink功能的強有力工具。它使用戶可以利用Matlab、C語言、C++語言以及FORTRAN等語言創建自定義的Simulink模塊[8]。S-函數使用一種特殊的調用規則來使用戶可以與Simulink的內部解法器進行交互,這種交互同Simulink內部解法器與內置的模塊之間的交互非常相似[9]。

2.1S-函數工作原理

每一個Simulink模塊都具有三個基本元素:輸入變量、狀態變量和輸出向量,如圖1所示。

圖1Simulink模塊的基本元素

其中輸出變量又是輸入變量、采樣時間以及狀態變量的函數[10]。它們之間的數學關系式如式(1)所示:

y=f0(t,x,u)

xk+1=fu(t,x,u)

(1)

其中

x=xc+xk

該式說明狀態向量由連續狀態和離散狀態組成。

仿真過程中,Simulink自始至終在向量更新階段產生重復調用。S-函數具有一套不同的調用方法,在模型仿真的不同階段,Simulink會對模型中S-函數模塊選擇恰當的方法實現調用[11]。S-函數可以完成的任務大體分為以下幾種:

1) 初始化

在進入仿真循環前,Simulink首先初始化S-函數,主要完成以下任務:

(1) 初始化包含S-函數信息的仿真結構SimSizes;

(2) 設置輸入輸出端口的維數;

(3) 設置模塊的采樣時間,即采樣率的倒數;

(4) 分派內存區和sizes組數。

2) 計算下一個采樣點

若用戶使用了可變采樣時間的模塊,在這一階段需要計算下一個采樣時間點時間,也就是需要計算下一個時間步長。

3) 計算主時間步的輸出量

此調用結束后,所有模塊的輸出端口對當前的時間步都是有效的了。

4) 更新主時間步的離散狀態

5) 積分計算

這一步只有當模型帶有連續狀態或帶有非采樣過零點時才有效。

2.2M文件S-函數

M文件S-函數是具有固定變量規則的M文件,大部分S-函數都是利用模板文件 sfuntmpl. m (位于Matlab根目錄的toolbox/simulink/blocks目錄下)來編寫的。S-函數的輸入變量如表1所示,輸出變量如表2所示。

表1 輸入變量表

表2 輸出變量表

S-函數M文件在運行過程中要檢驗輸入變量flag的值,然后按照表的規則進行操作。

表3 S-函數Flag值的定義

3 偽碼調相連續波M源文件的編寫

偽碼調相連續波信號的表達式如式(2)所示。其中c(t)為偽隨機碼編碼信號,fc為載波頻率。

st(t)=c(t)ej2πfct

(2)

圖2 二相編碼波形

典型的偽隨機二相編碼是由m序列、巴克碼、Gold序列族、互補序列、L序列等序列對載波進行(0,π)調相來實現[12]。圖2顯示了偽碼調相信號波形。其中tcode為碼元寬度,T為載波信號周期,其中T=1/fc。

由于Simulink提供了正弦信號發生器,所以偽碼調相連續波信號產生的關鍵在于生成偽碼信號。本文以生成63位偽隨機碼信號為例,說明Simulink中自定義模塊的創建及其封裝方法,其S-函數M源文件的編寫過程如下:

function [sys,x0,str,ts] = pncode(t,x,u,flag,fs,fcode)

switch flag,

case 0, %初始化

[sys,x0,str,ts]=mdlInitializeSizes(fs);

case 1, %計算連續狀態導數

sys=mdlDerivatives(t,x,u);

case 2, %離散狀態更新

sys=mdlUpdate(t,x,u);

case 3,%輸出量計算

sys=mdlOutputs(t,x,u,flag,fs,fcode);

case 4, %計算下一個采樣點時間

sys=mdlGetTimeOfNextVarHit(t,x,u,fs);

case 9,%執行仿真結束程序

sys=mdlTerminate(t,x,u);

otherwise %處置錯誤

error(['Unhandled flag = ',num2str(flag)]);

end

%%%%%%%%%%%%%%%%%%%%%%%

%mdlInitializeSizes當flag為0時,進行整個系統初始化

function [sys,x0,str,ts]=mdlInitializeSizes(fs)

%首先調用simsizes函數得到系統規模參數sizes,并根據離散系統實際情況設置sizes變量

sizes = simsizes;%讀入初始化參數模板

sizes.NumContStates = 0; %無連續狀態

sizes.NumDiscStates = 0; %無離散狀態

sizes.NumOutputs= 1;%一個輸出量

sizes.NumInputs= 0; %無輸入量

sizes.DirFeedthrough = 1; %是否存在直接饋通,為1表示輸出受到輸入控制

sizes.NumSampleTimes = 1; %采樣時間的個數(至少一個)

sys = simsizes(sizes); %將sizes中的信息返回

x0 = []; %初始化狀態向量

str = []; %str通常為空向量

ts = [1/fs 0]; %設定采樣周期

% end mdlInitializeSizes初始化結束

%%%%%%%%%%%%%%%%%%%%%%%

%mdlDerivatives當flag為1時,計算連續狀態導數

function sys=mdlDerivatives(t,x,u)

sys = [];

%%%%%%%%%%%%%%%%%%%%%%%

%mdlUpdate當flag為2時,離散狀態更新

function sys=mdlUpdate(t,x,u)

sys = [];

%%%%%%%%%%%%%%%%%%%%%%%

%mdlOutputs當flag為3時,計算輸出變量

function sys=mdlOutputs(t,x,u,flag,fs,fcode)

tcode = 1/fcode; %設置碼鐘變量,決定碼元寬度

load( 'SIGNAL1', 'pn' ); %置入預先設置的63位偽隨機序列

Lcode=63; %序列長度

index = mod( fix( t/( tcode ) ) , Lcode) + 1; %通過取整、求余運算計算當前時刻碼元位置

sys_tmp = real( pn(index )); %距離門信號輸出

sys = sys_tmp;

%%%%%%%%%%%%%%%%%%%%%%%

%mdlGetTimeOfNextVarHit當flag為4時,計算下一個采樣時間點

function sys=mdlGetTimeOfNextVarHit(t,x,u,fs)

sampleTime = 1/fs; % 時間步進,下一時刻為1/fs

sys = t + sampleTime;

%%%%%%%%%%%%%%%%%%%%%%%

% mdlTerminate當flag為9時,執行仿真結束程序

function sys=mdlTerminate(t,x,u)

sys = [];

將該程序以文件名 pncode.m 保存,該程序及其注釋說明了S函數 M源文件編寫的一般框架,可以根據需要在主程序中調用相關的子程序。在這里,通過正確編寫 flag=0、2、3 標識的初始化、離散狀態更新、輸出計算等各階段,就能夠實現偽隨機序列的生成。該自定義算法生動的展示了S函數的使用方法,為m序列偽隨機信號的生成提供了較好地解決方案。

4 自定義模塊的封裝和調試

4.1模塊的封裝

通過將自定義模塊封裝成標準模塊,用戶可以直接對定義參數進行修改,可以與原有標準模塊進行互聯,擴展了Simulink功能的同時,為用戶的使用提供方便。根據需要按照上述框架編好S-函數后,就可以對這些能實現特殊算法的模塊進行封裝和測試,其步驟是:

1) 向模型窗口中加入S-function模塊,雙擊該模塊,打開參數設置對話框(BlockParameters),輸入源文件名“pncode”和用戶定義的參數“fs、fcode”;

2) 選擇該模塊,右鍵打開封裝編輯器(Mask Edition)。在 Initialization頁中添加用戶定義的變量參數“fs、fcode”;

3) 給模塊命名;

4) 建立仿真模型框圖,測試模塊功能。

由式(2)可以看出偽碼調相連續波信號中編碼信號和載波信號之間的關系為相乘。本文搭建的仿真框圖如圖3所示。將各個模塊拖到Simulink工作空間后,雙擊其中的 S-function模塊,將給出如圖4所示的S-函數參數設置對話框,在S-function name 欄目填寫pncode,就可以建立起該模塊和我們編寫的 pncode.m文件之間的聯系,在 S-function parameters 欄目還可以給出 S-函數的附加參數,fs和fcode,fs為系統采樣時間,ts=1/fs為系統步進時間,tcode=1/fcode。在封裝編輯器(Mask Edition)中輸入fs和fcode 。

圖3 系統仿真框圖

圖4 參數設置對話框

4.2模塊的調試

本文設置參數fs=300MHz和fcode=0.25MHz,fc=0.25MHz獲得偽隨機碼信號波形如圖5所示,偽碼調相仿真結果如圖6所示。

5 結語

本文對仿真軟件Simulink中S-函數的工作原理、函數格式及其封裝過程作了詳細的說明,通過對偽隨機信號自定義模塊的 M源文件的編寫,充分展示了S-函數 M源文件的基本框架。擴展了Simulink使用功能的同時,提供了一種較為便利的偽碼調相信號產生方法,為自定義模塊的使用與研究提供可靠參考。

圖5 偽隨機碼調制信號

圖6 二相編碼調制波形

[1] 李立兵,馮志彪.Simulink仿真模型穩定性研究[J].計算機仿真,2005,22(5):66-70.

[2] 王玉萍.基于Matlab/Simulink環境下的異步電機建模與仿真[J].防爆電機,2012,3(47):24-27.

[3] 胡琳靜,孫正順.Simulink中自定義模塊的創建與封裝[J].系統仿真學報,2004,16(3):488-491.

[4] 倪慧俊.探測高速目標的二相編碼雷達技術研究[D].南京:南京理工大學,2011.

[5] 鐘雄林.偽碼調相連續波雷達干擾技術研究[D].西安:西安電子科技大學,2012.

[6] 侯浩亮,姚新宇,馮曉梅,等.C-MEX S-函數在Simulink中的應用[J].微計算機信息,2010,7(26):140-142.

[7] 趙富寧,王紅艷.Matlab/Simulink在電路分析中的應用[J].計算機時代,2014,7(4):21-23.

[8] 馬永光,冉寧,趙朋.基于S函數在自抗擾控制器Simulink仿真中的應用[J].儀器儀表用戶,2012,4(19):78-80.

[9] 李曉靜,黃紅飛.S-函數建模和仿真過程研究[J].電子工程設計,2011,19(18):27-32.

[10] 趙瑋,譚德榮,于劍峰.Simulink中自定義模塊的創建[J].微計算機應用,2006,27(3):379-381.

[11] 姚俊,馬松輝.Simulink建模與仿真[M].西安:西安電子科技大學出版社,2002.

[12] 張永勝.偽碼調相連續波雷達的性能與應用研究[D].南京:南京理工大學,2004.

Generation of Pseudo-random Code Based on Simulink Custom Block

SONG ChunjiHAN Zhuangzhi

(Ordnance Engineering College of PLA, Shijiazhuang050003)

Simulink has a rich library of standard blocks, but not all of the simulation system can be built through the standard block, its custom block implements the function extension of Simulink. By studying the working principle of S-function,this paper introduces the basic algorithm of the S-function to create and encapsulate the user-defined block, and uses the basic framework of the S-function to write the M resource file of the pseudo-random code signal. Through the analysis of signal characteristics of pseudorandom code phase modulation signal, realize the rapid generation of pseudorandom code. The simulation results show that the custom module extends the simulation function of Simulink, a new method for generating radar signal source is provided, which can provide great convenience for the use and research of engineering personnel.

Simulink, custom block, S-function, pseudo-random code phase modulation

2016年4月17日,

2016年5月21日

宋春吉,男,碩士研究生,研究方向:雷達信號處理和彈丸初速測量。韓壯志,男,副教授,碩士生導師,研究方向:雷達高分辨彈道測量,電磁環境模擬與雷達網絡化對抗。

TP391.9

10.3969/j.issn.1672-9730.2016.10.014

猜你喜歡
信號用戶
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
孩子停止長個的信號
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 在线a网站| 97久久免费视频| 99久久国产精品无码| 欧美全免费aaaaaa特黄在线| 伊人五月丁香综合AⅤ| 萌白酱国产一区二区| 一级毛片a女人刺激视频免费| 国产区免费精品视频| 久久精品国产精品国产一区| 国产成人午夜福利免费无码r| 国产在线观看第二页| 久久天天躁狠狠躁夜夜躁| 国产网友愉拍精品| 97狠狠操| 一本一本大道香蕉久在线播放| 色悠久久综合| 久夜色精品国产噜噜| 无码高潮喷水在线观看| 在线观看国产网址你懂的| 奇米影视狠狠精品7777| 手机精品福利在线观看| 国产人妖视频一区在线观看| 亚洲中文字幕在线一区播放| 国产精品午夜电影| 欧美 亚洲 日韩 国产| 午夜a视频| 亚洲欧美成人在线视频| 国产丝袜第一页| 亚洲伦理一区二区| 午夜爽爽视频| 国产亚洲视频免费播放| 国产麻豆精品在线观看| 97国产成人无码精品久久久| 欧美视频二区| 国产精品久久精品| 国产成人精品一区二区三区| 精品中文字幕一区在线| 91精品福利自产拍在线观看| 99re精彩视频| 日本在线亚洲| 精久久久久无码区中文字幕| 国产免费久久精品44| 亚洲成a人在线观看| 91久久夜色精品| 亚洲av成人无码网站在线观看| 永久在线精品免费视频观看| 中文天堂在线视频| 四虎影视永久在线精品| 国产一级毛片高清完整视频版| 亚洲 成人国产| 亚洲色图另类| 国产精品亚洲专区一区| 伊人蕉久影院| 亚洲日韩AV无码精品| 国内精自线i品一区202| 亚洲一区二区三区在线视频| 深夜福利视频一区二区| 99热国产在线精品99| 欧美国产精品不卡在线观看| 欧美不卡二区| 国产亚洲一区二区三区在线| 国产中文在线亚洲精品官网| 国精品91人妻无码一区二区三区| 91精品最新国内在线播放| 99精品伊人久久久大香线蕉| 91精品国产综合久久香蕉922| 日韩在线影院| 久久99热这里只有精品免费看| 国产h视频免费观看| 午夜福利在线观看入口| 免费日韩在线视频| 伊人狠狠丁香婷婷综合色| 欧美国产日韩一区二区三区精品影视 | 亚洲欧洲天堂色AV| 日韩精品亚洲人旧成在线| 久久久久中文字幕精品视频| 国产高清又黄又嫩的免费视频网站| 亚洲男人天堂网址| 亚洲AⅤ无码国产精品| 国产成本人片免费a∨短片| 久久久久九九精品影院| 精品国产成人a在线观看|