📄 tcemmfsk.m
字号:
add_block('built-in/Demux',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Demux']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Demux']],...
'outputs','2',...
'position',[685,35,725,70])
add_block('built-in/Demux',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Demux2']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Demux2']],...
'outputs','2',...
'position',[695,140,735,175])
add_block('built-in/Outport',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/out_1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/out_1']],...
'position',[830,100,850,120])
add_block('built-in/Product',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product']],...
'position',[490,31,515,64])
add_block('built-in/Product',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product1']],...
'position',[645,36,670,69])
add_block('built-in/Demux',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Demux1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Demux1']],...
'ForeGround',2,...
'outputs','2',...
'position',[395,30,435,65])
add_block('built-in/Inport',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/in_1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/in_1']],...
'position',[345,40,365,60])
add_block('built-in/Product',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product3']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product3']],...
'position',[480,136,505,169])
add_block('built-in/Product',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product2']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Product2']],...
'position',[645,141,670,174])
add_block('built-in/Sum',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Sum4']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Sum4']],...
'inputs','++++',...
'position',[785,87,805,133])
add_block('built-in/S-Function',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Array sin1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Array sin1']],...
'ForeGround',4,...
'function name','arysin',...
'parameters','''sin''',...
'position',[395,150,445,170])
add_block('built-in/S-Function',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Array sin']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Array sin']],...
'ForeGround',3,...
'function name','arysin',...
'parameters','''cos''',...
'position',[390,90,440,110])
add_block('built-in/Mux',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Mux']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Mux']],...
'inputs','2',...
'position',[325,78,355,122])
add_block('built-in/Constant',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Initial phase']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Initial phase']],...
'Value','Ph',...
'position',[85,118,105,142])
add_block('built-in/Sum',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Sum3']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Sum3']],...
'position',[285,108,305,137])
add_block('built-in/Sum',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Sum1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Sum1']],...
'position',[210,72,235,103])
add_block('built-in/S-Function',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Scheduled',13,'reset-int']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Scheduled',13,'reset-int']],...
'function name','schdint',...
'parameters','td, ts, limit',...
'Mask Display','Schdld\nreset-int')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Scheduled',13,'reset-int']],...
'Mask Type','Scheduled reset integration.')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Scheduled',13,'reset-int']],...
'Mask Dialogue','Reset the state to be zero(s) at the scheduled reset point.|Scheduled reset time inteval and offset:|Sample time and offset:|Modulo bound:')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Scheduled',13,'reset-int']],...
'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Scheduled',13,'reset-int']],...
'Mask Help','This block resets the state(s) to be zero(s) at the begining of reset time inteval. The reset inteval can be a two elements vector with the second element being offset.')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Scheduled',13,'reset-int']],...
'Mask Entries','td\/ts\/Inf\/',...
'position',[105,34,165,76])
add_block('built-in/Constant',[sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Shift key']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband/Shift key']],...
'Value','sft',...
'position',[40,43,60,67])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[445,100;460,100;460,55;485,55])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[440,40;485,40])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[440,55;450,55;450,145;475,145])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[450,160;475,160])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[740,165;760,165;760,125;780,125])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[740,150;755,150;755,115;780,115])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[510,155;520,155])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[605,155;615,155;615,150;640,150])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[605,155;615,155;615,165;640,165])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[675,160;690,160])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[370,50;390,50])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[360,100;385,100])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[370,100;370,160;390,160])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[110,130;185,130;185,95;205,95])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[185,130;280,130])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[240,90;320,90])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[260,90;260,115;280,115])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[170,55;185,55;185,80;205,80])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[65,55;100,55])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[810,110;825,110])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[730,60;755,60;755,105;780,105])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[730,45;760,45;760,95;780,95])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[675,55;680,55])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[610,50;615,60;640,60])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[610,50;615,45;640,45])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[520,50;525,50])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],[310,125;320,110])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],...
'Mask Display','plot(0,0,100,100,u,v); NC MFSK',...
'Mask Type','Baseband non-coherent MFSK correlation')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],...
'Mask Dialogue','Compute baseband MFSK correlation. Take\nMFSK CE modulated signal. Output a vector\nof correlation result.|M-ary number (input in range [0, M-1]):|Tone space (Hz):|Symbol interval and offset (sec):|Initial phase (rad):|Sample time (sec):')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],...
'Mask Translate','pi2=2*pi;N=@1;Ph=@4;Ton=@2;sft=[0:N-1]*Ton*pi2;td=@3;ts=@5;[u,v]=cmplxicn(0,50,get_param(gcb,''orientation''));')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],...
'Mask Help','This block calculates the noncoherent correlation value of the input signal with a vector of sinusoidal signals. These sinusoidal signals have their frequency the same as that of FM modulated signal of possible resulting digits. The output is an M length vector. The MFSK demodulation result is the index of the largest output. The input of this block is complex signal.')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],...
'Mask Entries','M\/Ton\/td\/Ph\/ts\/')
% Finished composite block ['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband'].
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/Non-coh MFSK dm',13,'corr baseband']],...
'position',[110,68,190,112])
add_block('built-in/Inport',[sys,'/',['Noncoh MFSK',13,'demod baseband/in_1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/in_1']],...
'position',[25,80,45,100])
add_block('built-in/Outport',[sys,'/',['Noncoh MFSK',13,'demod baseband/out_1']])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband/out_1']],...
'position',[375,80,395,100])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband']],[195,90;245,90])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband']],[50,90;105,90])
add_line([sys,'/',['Noncoh MFSK',13,'demod baseband']],[335,90;370,90])
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband']],...
'Mask Display','plot(0,0,100,100,x,y,u,v); NC-MFSK',...
'Mask Type','Baseband noncoherent MFSK demodulation')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband']],...
'Mask Dialogue','Demodulate the complex envelope of a MFSK\nmodulated signal using noncoherent\ncorrelation method.|M-ary number (output digits in range [0, M-1]):|Tone space (Hz):|Symbol interval (sec):|Initial phase (rad):|Sample time (sec):')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband']],...
'Mask Translate','M=@1;Ph=@4;Ton=@2;td=@3;ts=@5;[x,y]=moduicon(8);[u,v]=cmplxicn(0,50,get_param(gcb,''orientation''));')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband']],...
'Mask Help','This block demodulates the complex envelope of a MFSK modulated signal using noncoherent method. The coherent demodulation method is phase insensitive. The tone space is the frequency distance between two successive after the modulation. The inputs are integers in the range [0, M-1], where M is the M-ary number. When the symbol interval is a two element vector, the second element is the offset (default 0).')
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband']],...
'Mask Entries','M\/M/td/5\/td\/0\/ts\/')
% Finished composite block ['Noncoh MFSK',13,'demod baseband'].
set_param([sys,'/',['Noncoh MFSK',13,'demod baseband']],...
'hide name',0,...
'position',[410,98,490,142])
add_line(sys,[595,95;625,95])
add_line(sys,[100,60;145,60])
add_line(sys,[115,60;115,20;605,20;605,75;625,75])
add_line(sys,[495,60;525,60;525,80;550,80])
add_line(sys,[495,120;520,120;520,105;550,105])
add_line(sys,[235,60;260,60])
add_line(sys,[350,60;405,60])
add_line(sys,[375,60;375,120;405,120])
drawnow
% Return any arguments.
if (nargin | nargout)
% Must use feval here to access system in memory
if (nargin > 3)
if (flag == 0)
eval(['[ret,x0,str,ts,xts]=',sys,'(t,x,u,flag);'])
else
eval(['ret =', sys,'(t,x,u,flag);'])
end
else
[ret,x0,str,ts,xts] = feval(sys);
end
else
drawnow % Flash up the model and execute load callback
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -