📄 tstfs2cd.m
字号:
'ForeGround',3,...
'position',[350,155,575,226])
% Subsystem ['Non-coh MFSK dm',13,'corr passband'].
new_system([sys,'/',['Non-coh MFSK dm',13,'corr passband']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband']],'Location',[10,2228368,850,2228643])
add_block('built-in/Sum',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum1']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum1']],...
'inputs','+++',...
'position',[325,70,350,110])
add_block('built-in/S-Function',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int']],...
'function name','schdint',...
'parameters','td, ts, limit',...
'Mask Display','Schdld\nreset-int',...
'Mask Type','Scheduled reset integration.')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/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,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int']],...
'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/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,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int']],...
'Mask Entries','td\/ts\/Inf\/',...
'position',[200,34,260,76])
add_block('built-in/Constant',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Shift key']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Shift key']],...
'Value','sft',...
'position',[120,43,140,67])
add_block('built-in/Constant',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Initial phase']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Initial phase']],...
'Value','Ph',...
'position',[140,108,160,132])
add_block('built-in/Zero-Order Hold',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Zero-Order',13,'Hold']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Zero-Order',13,'Hold']],...
'Sample time','td',...
'position',[195,179,230,211])
add_block('built-in/Gain',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Gain']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Gain']],...
'Gain','Fc',...
'position',[145,155,165,175])
add_block('built-in/Clock',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Clock']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Clock']],...
'position',[95,155,115,175])
add_block('built-in/Sum',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum2']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum2']],...
'inputs','+-',...
'position',[265,155,290,190])
add_block('built-in/S-Function',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int1']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int1']],...
'function name','schdint',...
'parameters','td, ts, limit',...
'Mask Display','Schdld\nreset-int',...
'Mask Type','Scheduled reset integration.')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int1']],...
'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,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int1']],...
'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int1']],...
'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,'/',['Non-coh MFSK dm',13,'corr passband/Scheduled',13,'reset-int1']],...
'Mask Entries','td\/ts\/Inf\/',...
'position',[580,74,640,116])
add_block('built-in/Sum',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum4']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum4']],...
'position',[785,78,805,107])
add_block('built-in/Demux',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Demux']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Demux']],...
'outputs','[N N]',...
'position',[720,75,760,110])
add_block('built-in/Product',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Product1']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Product1']],...
'position',[675,76,700,109])
add_block('built-in/Constant',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Initial phase1']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Initial phase1']],...
'Value','Ph',...
'position',[335,153,355,177])
add_block('built-in/Product',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Product']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Product']],...
'position',[540,76,565,109])
add_block('built-in/S-Function',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Array sin']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Array sin']],...
'function name','arysin',...
'parameters','''cos''',...
'position',[470,90,520,110])
add_block('built-in/Mux',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Mux']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Mux']],...
'inputs','[N N]',...
'position',[425,78,455,122])
add_block('built-in/Sum',[sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum3']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/Sum3']],...
'position',[385,113,405,142])
add_block('built-in/Inport',[sys,'/',['Non-coh MFSK dm',13,'corr passband/in_1']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/in_1']],...
'position',[490,75,510,95])
add_block('built-in/Outport',[sys,'/',['Non-coh MFSK dm',13,'corr passband/out_1']])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband/out_1']],...
'position',[825,85,845,105])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[145,55;195,55])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[265,55;285,55;285,75;320,75])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[165,120;290,120;290,90;320,90])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[120,165;140,165])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[295,175;310,175;320,105])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[170,165;260,165])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[180,165;190,195])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[235,195;240,195;240,180;260,180])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[355,90;370,90;380,120])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[360,165;370,165;380,135])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[355,90;420,90])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[410,130;420,110])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[460,100;465,100])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[525,100;535,100])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[570,95;575,95])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[645,95;655,95;655,85;670,85])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[645,95;655,95;655,100;670,100])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[705,95;715,95])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[765,85;780,85])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[765,100;780,100])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[515,85;535,85])
add_line([sys,'/',['Non-coh MFSK dm',13,'corr passband']],[810,95;820,95])
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband']],...
'Mask Display','Noncoh corr\nMFSK dm',...
'Mask Type','Passband non-coherent MFSK correlation')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband']],...
'Mask Dialogue','Compute MFSK correlation. Take MFSK\nmodulated signal. Output a vector of\ncorrelation result.|M-ary number (input in range [0, M-1]):|Tone space (Hz):|Symbol interval and offset (sec):|Carrier frequency (Hz):|Initial phase (rad):|Sample time (sec):')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband']],...
'Mask Translate','pi2=2*pi;N=@1;Fc=@4*pi2;Ph=@5;Ton=@2;sft=[0:N-1]*Ton*pi2;td=@3;ts=@6;')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband']],...
'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. M is the M-ary number. The MFSK demodulation result is the index of the largest output, using the Min/max demap block. The computation is phase sensitive.')
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband']],...
'Mask Entries','M\/M/td/5\/td\/Fc\/0\/ts\/')
% Finished composite block ['Non-coh MFSK dm',13,'corr passband'].
set_param([sys,'/',['Non-coh MFSK dm',13,'corr passband']],...
'hide name',0,...
'position',[360,168,440,212])
% Subsystem 'Min//max index1'.
new_system([sys,'/','Min//max index1'])
set_param([sys,'/','Min//max index1'],'Location',[192,461,623,564])
add_block('built-in/S-Function',[sys,'/','Min//max index1/Maximum'])
set_param([sys,'/','Min//max index1/Maximum'],...
'function name','arymimai',...
'parameters','mima',...
'position',[240,20,320,40])
add_block('built-in/Outport',[sys,'/','Min//max index1/out_1'])
set_param([sys,'/','Min//max index1/out_1'],...
'position',[335,20,355,40])
add_block('built-in/Zero-Order Hold',[sys,'/',['Min//max index1/Zero-Order',13,'Hold']])
set_param([sys,'/',['Min//max index1/Zero-Order',13,'Hold']],...
'Sample time','td',...
'position',[165,14,200,46])
add_block('built-in/Inport',[sys,'/','Min//max index1/in_1'])
set_param([sys,'/','Min//max index1/in_1'],...
'position',[65,20,85,40])
add_line([sys,'/','Min//max index1'],[205,30;235,30])
add_line([sys,'/','Min//max index1'],[325,30;330,30])
add_line([sys,'/','Min//max index1'],[90,30;160,30])
set_param([sys,'/','Min//max index1'],...
'Mask Display','Min/Max\ndemap',...
'Mask Type','Maximum/minimum index.')
set_param([sys,'/','Min//max index1'],...
'Mask Dialogue','Choose the index of the input vector with\nmax/min value at sampling point. Hold the\nvalue for the rest of the period.|Symbol interval (sec):|''max'' or ''min'':')
set_param([sys,'/','Min//max index1'],...
'Mask Translate','td=@1;mima=@2;')
set_param([sys,'/','Min//max index1'],...
'Mask Help','This block outputs the index of the vector element that has the maximum or minimum value in the input vector. The computation starts at the sampling time point. The block holds the value for the rest of the interval.')
set_param([sys,'/','Min//max index1'],...
'Mask Entries','td\/''max''\/')
% Finished composite block 'Min//max index1'.
set_param([sys,'/','Min//max index1'],...
'hide name',0,...
'position',[485,168,565,212])
% Subsystem 'Graph2'.
new_system([sys,'/','Graph2'])
set_param([sys,'/','Graph2'],'Location',[0,59,274,252])
add_block('built-in/Inport',[sys,'/','Graph2/x'])
set_param([sys,'/','Graph2/x'],...
'position',[65,55,85,75])
add_block('built-in/S-Function',[sys,'/',['Graph2/S-function',13,'M-file which plots',13,'lines',13,'']])
set_param([sys,'/',['Graph2/S-function',13,'M-file which plots',13,'lines',13,'']],...
'function name','sfuny',...
'parameters','ax, color,dt',...
'position',[130,55,180,75])
add_line([sys,'/','Graph2'],[90,65;125,65])
set_param([sys,'/','Graph2'],...
'Mask Display','plot(0,0,100,100,[90,10,10,10,90,90,10],[65,65,90,40,40,90,90],[90,78,69,54,40,31,25,10],[77,60,48,46,56,75,81,84])',...
'Mask Type','Graph scope.')
set_param([sys,'/','Graph2'],...
'Mask Dialogue','Graph scope using MATLAB graph window.\nEnter plotting ranges and line type.|Time range:|y-min:|y-max:|Line type (rgbw-:*). Seperate each plot by ''/'':|Sample time:')
set_param([sys,'/','Graph2'],...
'Mask Translate','color = @4; ax = [0, @1, @2, @3]; dt = @5;')
set_param([sys,'/','Graph2'],...
'Mask Help','This block plots to the MATLAB graph window and can be used as an improved version of the Scope block. Look at the m-file sfuny.m to see how it works. This block can take scalar or vector input signal.')
set_param([sys,'/','Graph2'],...
'Mask Entries','5*td\/-.001\/.03\/''r-/y--/b-./g-/c--/w-./m:/r:/y--/b--/g--/c--/w--/m--/r:/y:/b:/g:''\/ts\/')
% Finished composite block 'Graph2'.
set_param([sys,'/','Graph2'],...
'position',[635,231,665,269])
add_line(sys,[655,80;685,80])
add_line(sys,[90,65;120,65])
add_line(sys,[570,65;610,65])
add_line(sys,[90,65;90,10;665,10;665,60;685,60])
add_line(sys,[445,190;480,190])
add_line(sys,[445,65;480,65])
add_line(sys,[310,65;355,65])
add_line(sys,[210,65;220,65])
add_line(sys,[570,190;585,190;585,90;610,90])
add_line(sys,[335,65;335,190;355,190])
add_line(sys,[465,65;465,135;620,135])
add_line(sys,[465,190;465,250;630,250])
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 + -