⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tstapk.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 5 页
字号:
function [ret,x0,str,ts,xts]=tstapk(t,x,u,flag);
%TSTAPK is the M-file description of the SIMULINK system named TSTAPK.
% The block-diagram can be displayed by typing: TSTAPK.
%
% SYS=TSTAPK(T,X,U,FLAG) returns depending on FLAG certain
%       system values given time point, T, current state vector, X,
%    and input vector, U.
%   FLAG is used to indicate the type of output to be returned in SYS.
%
%    Setting FLAG=1 causes TSTAPK to return state derivatives, FLAG=2
%       discrete states, FLAG=3 system outputs and FLAG=4 next sample
%  time. For more information and other options see SFUNC.
%
%       Calling TSTAPK with a FLAG of zero:
%    [SIZES]=TSTAPK([],[],[],0),  returns a vector, SIZES, which
%    contains the sizes of the state vector and other parameters.
%           SIZES(1) number of states
%              SIZES(2) number of discrete states
%             SIZES(3) number of outputs
%             SIZES(4) number of inputs
%              SIZES(5) number of roots (currently unsupported)
%               SIZES(6) direct feedthrough flag
%               SIZES(7) number of sample times
%
%       For the definition of other parameters in SIZES, see SFUNC.
%    See also, TRIM, LINMOD, LINSIM, EULER, RK23, RK45, ADAMS, GEAR.

% Note: This M-file is only used for saving graphical information;
%       after the model is loaded into memory an internal model
%       representation is used.

% the system will take on the name of this mfile:
sys = mfilename;
new_system(sys)
simver(1.3)
if (0 == (nargin + nargout))
     set_param(sys,'Location',[63,60,857,523])
     open_system(sys)
end;
set_param(sys,'algorithm',     'RK-45')
set_param(sys,'Start time',    '0.0')
set_param(sys,'Stop time',     '10')
set_param(sys,'Min step size', '0.0001')
set_param(sys,'Max step size', '.003')
set_param(sys,'Relative error','1e-3')
set_param(sys,'Return vars',   '')
set_param(sys,'Load callback','N=128;T=.1;Fc=100;NIL=[6 12 18 24 30 38];AIL=[1 1.93 2.88 3.83 4.78 6.05];PIL=zeros(1,6);');


%     Subsystem  ['ASK//PSK',13,'modulation'].

new_system([sys,'/',['ASK//PSK',13,'modulation']])
set_param([sys,'/',['ASK//PSK',13,'modulation']],'Location',[59,72,945,387])

add_block('built-in/Inport',[sys,'/',['ASK//PSK',13,'modulation/in_2']])
set_param([sys,'/',['ASK//PSK',13,'modulation/in_2']],...
             'Port','2',...
          'position',[20,120,40,140])

add_block('built-in/Inport',[sys,'/',['ASK//PSK',13,'modulation/in_1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/in_1']],...
            'position',[65,20,85,40])

add_block('built-in/Memory',[sys,'/',['ASK//PSK',13,'modulation/Memory1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Memory1']],...
                'orientation',2,...
             'position',[185,75,225,105])

add_block('built-in/Switch',[sys,'/',['ASK//PSK',13,'modulation/Switch']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Switch']],...
               'Threshold','eps',...
           'position',[190,24,220,56])


%     Subsystem  ['ASK//PSK',13,'modulation/Rising edge',13,'detector'].

new_system([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],'Location',[303,485,692,659])

add_block('built-in/Relational Operator',[sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Relational',13,'Operator']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Relational',13,'Operator']],...
               'position',[135,18,165,42])

add_block('built-in/Inport',[sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/in_1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/in_1']],...
                'position',[10,15,30,35])

add_block('built-in/Memory',[sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Memory1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Memory1']],...
            'position',[125,80,165,110])

add_block('built-in/Constant',[sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/one1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/one1']],...
             'Value','thld',...
              'position',[30,135,60,155])

add_block('built-in/Relational Operator',[sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Relational',13,'Operator2']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Relational',13,'Operator2']],...
         'Operator','>',...
              'position',[265,23,295,47])

add_block('built-in/Relational Operator',[sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Relational',13,'Operator1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/Relational',13,'Operator1']],...
         'position',[200,88,230,112])

add_block('built-in/Outport',[sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/out_1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector/out_1']],...
            'position',[340,25,360,45])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[300,35;335,35])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[235,100;240,100;240,40;260,40])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[170,30;260,30])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[65,145;100,145;100,35;130,35])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[100,145;180,145;180,105;195,105])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[170,95;195,95])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[35,25;130,25])
add_line([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],[45,25;45,95;120,95])
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],...
          'Mask Display','Edge\ndetector',...
             'Mask Type','Edge Detection',...
                'Mask Dialogue','Rising edge detection:|Threshold:',...
         'Mask Translate','thld=@1;')
set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],...
              'Mask Help','When the input signal rising edge passed the given shreshold, this block outputs one, otherwise outputs zero.',...
         'Mask Entries','thld\/')


%     Finished composite block ['ASK//PSK',13,'modulation/Rising edge',13,'detector'].

set_param([sys,'/',['ASK//PSK',13,'modulation/Rising edge',13,'detector']],...
            'ForeGround',4,...
              'position',[75,108,135,152])

add_block('built-in/Look Up Table',[sys,'/',['ASK//PSK',13,'modulation/index match']])
set_param([sys,'/',['ASK//PSK',13,'modulation/index match']],...
              'Input_Values','z',...
          'Output_Values','y',...
         'position',[285,27,320,53])

add_block('built-in/Look Up Table',[sys,'/',['ASK//PSK',13,'modulation/amplitude',13,'match']])
set_param([sys,'/',['ASK//PSK',13,'modulation/amplitude',13,'match']],...
             'Input_Values','x',...
          'Output_Values','A',...
         'position',[380,27,415,53])

add_block('built-in/Reset Integrator',[sys,'/',['ASK//PSK',13,'modulation/Reset',13,'integrator']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Reset',13,'integrator']],...
                'position',[320,264,360,296])

add_block('built-in/Constant',[sys,'/',['ASK//PSK',13,'modulation/freq']])
set_param([sys,'/',['ASK//PSK',13,'modulation/freq']],...
                'Value','Fc',...
                'position',[225,236,250,264])

add_block('built-in/Switch',[sys,'/',['ASK//PSK',13,'modulation/Switch1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Switch1']],...
            'Threshold','eps',...
           'position',[410,214,440,246])

add_block('built-in/Sum',[sys,'/',['ASK//PSK',13,'modulation/Sum']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Sum']],...
               'inputs','-+',...
               'position',[455,185,475,205])

add_block('built-in/Look Up Table',[sys,'/',['ASK//PSK',13,'modulation/base number',13,'match']])
set_param([sys,'/',['ASK//PSK',13,'modulation/base number',13,'match']],...
               'Input_Values','x',...
          'Output_Values','s',...
         'position',[380,147,415,173])

add_block('built-in/Sum',[sys,'/',['ASK//PSK',13,'modulation/Sum1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Sum1']],...
             'inputs','+++',...
              'position',[610,72,630,108])

add_block('built-in/Fcn',[sys,'/',['ASK//PSK',13,'modulation/Oscilation']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Oscilation']],...
          'position',[650,75,725,105])

add_block('built-in/Product',[sys,'/',['ASK//PSK',13,'modulation/Product']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Product']],...
            'position',[755,75,780,95])

add_block('built-in/Outport',[sys,'/',['ASK//PSK',13,'modulation/out_1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/out_1']],...
         'position',[800,75,820,95])

add_block('built-in/Look Up Table',[sys,'/',['ASK//PSK',13,'modulation/initial phase',13,'match']])
set_param([sys,'/',['ASK//PSK',13,'modulation/initial phase',13,'match']],...
             'Input_Values','x',...
          'Output_Values','P',...
         'position',[445,67,480,93])

add_block('built-in/Look Up Table',[sys,'/',['ASK//PSK',13,'modulation/dividing base']])
set_param([sys,'/',['ASK//PSK',13,'modulation/dividing base']],...
           'Input_Values','x',...
          'Output_Values','2*pi ./ N',...
         'position',[445,122,480,148])

add_block('built-in/Product',[sys,'/',['ASK//PSK',13,'modulation/Product1']])
set_param([sys,'/',['ASK//PSK',13,'modulation/Product1']],...
         'position',[520,180,545,200])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[225,40;250,40;250,90;230,90])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[140,130;155,130;155,40;185,40])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[180,90;165,90;165,50;185,50])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[45,130;70,130])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[90,30;185,30])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[250,40;280,40])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[325,40;375,40])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[360,40;360,80;440,80])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[360,80;360,160;375,160])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[420,160;435,160;435,190;450,190])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[250,90;250,200;450,200])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[480,195;515,195])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[635,90;645,90])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[730,90;750,90])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[785,85;795,85])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[420,40;735,40;735,80;750,80])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[485,80;605,80])
add_line([sys,'/',['ASK//PSK',13,'modulation']],[550,190;575,190;575,90;605,90])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -