📄 tstlinco.m
字号:
'Mask Translate','seed=@2;mul=@1;[x,y]=srcsicon(4);')
set_param([sys,'/',['Random-integer',13,'generator1']],...
'Mask Help','This block generates an integer number in the range [0 M-1], where M is the M-ary number. The probability of the appearance for each number is equal.')
set_param([sys,'/',['Random-integer',13,'generator1']],...
'Mask Entries','16\/[12345]\/')
% Finished composite block ['Random-integer',13,'generator1'].
set_param([sys,'/',['Random-integer',13,'generator1']],...
'hide name',0,...
'position',[30,53,110,97])
add_block('built-in/S-Function',[sys,'/',['Integer scalar',13,'to vector']])
set_param([sys,'/',['Integer scalar',13,'to vector']],...
'hide name',0,...
'function name','simde2bi',...
'parameters','len, p',...
'Mask Display','Sca to vec\nconverter',...
'Mask Type','Decimal to base M vector')
set_param([sys,'/',['Integer scalar',13,'to vector']],...
'Mask Dialogue','Convert decimal integer input to base M\ninteger and output each position of the\nconverted integer using output vector.|Output vector length:|Conversion base M:')
set_param([sys,'/',['Integer scalar',13,'to vector']],...
'Mask Translate','len=@1;p=@2;')
set_param([sys,'/',['Integer scalar',13,'to vector']],...
'Mask Help','This block converts decimal integer scalar input to a base M integer. M must be a\npositive integer. The block outputs the base M integer using a vector. The 1st element in the output vector contains the 1''s position. The 2nd element in the output vector contains the M''s position, and so on. The output vector length is given by setting the parameter entry.')
set_param([sys,'/',['Integer scalar',13,'to vector']],...
'Mask Entries','4\/2\/',...
'position',[145,53,225,97])
% Subsystem ['Binary vector',13,'lin-blk decode'].
new_system([sys,'/',['Binary vector',13,'lin-blk decode']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode']],'Location',[267,160,850,320])
add_block('built-in/Outport',[sys,'/',['Binary vector',13,'lin-blk decode/out_1']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/out_1']],...
'position',[535,90,555,110])
add_block('built-in/S-Function',[sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation2']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation2']],...
'function name','arymodu',...
'parameters','md',...
'Mask Display','Modulo',...
'Mask Type','Modulo')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation2']],...
'Mask Dialogue','Modulus operation:|Modulus base:',...
'Mask Translate','md = @1;')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation2']],...
'Mask Help','This block output modulus operation of the input signal with module base as specified in block entry. The length of the output vector is the same as the input vector.')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation2']],...
'Mask Entries','2\/',...
'position',[455,81,515,119])
add_block('built-in/State-Space',[sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain1']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain1']],...
'A','[]',...
'B','[]',...
'C','[]',...
'D','K',...
'Mask Display','K',...
'Mask Type','Matrix Gain',...
'Mask Dialogue','Matrix Gain.|Gain matrix:')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain1']],...
'Mask Translate','K = @1;',...
'Mask Help','Multiplies input vector by entered matrix to produce output vector (y=Au).',...
'Mask Entries','G\/')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain1']],...
'position',[415,86,440,114])
add_block('built-in/S-Function',[sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation1']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation1']],...
'function name','arymodu',...
'parameters','md',...
'Mask Display','Modulo',...
'Mask Type','Modulo')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation1']],...
'Mask Dialogue','Modulus operation:|Modulus base:',...
'Mask Translate','md = @1;')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation1']],...
'Mask Help','This block output modulus operation of the input signal with module base as specified in block entry. The length of the output vector is the same as the input vector.')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation1']],...
'Mask Entries','2\/',...
'position',[340,81,400,119])
add_block('built-in/Sum',[sys,'/',['Binary vector',13,'lin-blk decode/Sum']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Sum']],...
'position',[305,90,325,110])
add_block('built-in/Combinatorial Logic',[sys,'/',['Binary vector',13,'lin-blk decode/Combinatorial',13,'Logic']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Combinatorial',13,'Logic']],...
'Truth Table','trt',...
'position',[225,33,255,57])
add_block('built-in/S-Function',[sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation']],...
'function name','arymodu',...
'parameters','md',...
'Mask Display','Modulo',...
'Mask Type','Modulo')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation']],...
'Mask Dialogue','Modulus operation:|Modulus base:',...
'Mask Translate','md = @1;')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation']],...
'Mask Help','This block output modulus operation of the input signal with module base as specified in block entry. The length of the output vector is the same as the input vector.')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Modulus',13,'operation']],...
'Mask Entries','2\/',...
'position',[140,26,200,64])
add_block('built-in/State-Space',[sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain']],...
'A','[]',...
'B','[]',...
'C','[]',...
'D','K',...
'Mask Display','K',...
'Mask Type','Matrix Gain',...
'Mask Dialogue','Matrix Gain.|Gain matrix:')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain']],...
'Mask Translate','K = @1;',...
'Mask Help','Multiplies input vector by entered matrix to produce output vector (y=Au).',...
'Mask Entries','H\/')
set_param([sys,'/',['Binary vector',13,'lin-blk decode/Matrix',13,'Gain']],...
'position',[100,31,125,59])
add_block('built-in/Inport',[sys,'/',['Binary vector',13,'lin-blk decode/in_1']])
set_param([sys,'/',['Binary vector',13,'lin-blk decode/in_1']],...
'position',[30,35,50,55])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[520,100;530,100])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[445,100;450,100])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[405,100;410,100])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[330,100;335,100])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[55,45;95,45])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[80,45;80,105;300,105])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[260,45;285,45;285,95;300,95])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[205,45;220,45])
add_line([sys,'/',['Binary vector',13,'lin-blk decode']],[130,45;135,45])
set_param([sys,'/',['Binary vector',13,'lin-blk decode']],...
'Mask Display','plot(0,0,100,100,x,y);Linear de',...
'Mask Type','Vector I/O linear block decode')
set_param([sys,'/',['Binary vector',13,'lin-blk decode']],...
'Mask Dialogue','Linear block decode with input codeword vector length N and output message vector length K.|Generator matrix (binary K-by-N matrix):|Error-correction truth table (0 for single error-corr):')
set_param([sys,'/',['Binary vector',13,'lin-blk decode']],...
'Mask Translate','G=@1;trt=@2;H=gen2par(G);if trt==0,trt=htruthtb(G);end;[n,m]=size(G);G=[zeros(n,m-n),eye(n)];[x,y]=codeicon(2);')
set_param([sys,'/',['Binary vector',13,'lin-blk decode']],...
'Mask Help','This block decodes length N binary vector codeword input into length K binary vector message output using linear block code. The generator matrix is a K-by-N matrix. Linear block code is a generic code. Use the HTRUTHTB function to generate a single error-correction truth table.')
set_param([sys,'/',['Binary vector',13,'lin-blk decode']],...
'Mask Entries','[[1 1 0; 0 1 1; 1 1 1;1 0 1] eye(4)]\/0\/')
% Finished composite block ['Binary vector',13,'lin-blk decode'].
set_param([sys,'/',['Binary vector',13,'lin-blk decode']],...
'hide name',0,...
'position',[475,43,555,87])
% Subsystem ['Binary vector',13,'lin-blk encode'].
new_system([sys,'/',['Binary vector',13,'lin-blk encode']])
set_param([sys,'/',['Binary vector',13,'lin-blk encode']],'Location',[235,592,599,711])
add_block('built-in/Outport',[sys,'/',['Binary vector',13,'lin-blk encode/out_1']])
set_param([sys,'/',['Binary vector',13,'lin-blk encode/out_1']],...
'position',[290,35,310,55])
add_block('built-in/S-Function',[sys,'/',['Binary vector',13,'lin-blk encode/Modulus',13,'operation']])
set_param([sys,'/',['Binary vector',13,'lin-blk encode/Modulus',13,'operation']],...
'function name','arymodu',...
'parameters','md',...
'Mask Display','Modulo',...
'Mask Type','Modulo')
set_param([sys,'/',['Binary vector',13,'lin-blk encode/Modulus',13,'operation']],...
'Mask Dialogue','Modulus operation:|Modulus base:',...
'Mask Translate','md = @1;')
set_param([sys,'/',['Binary vector',13,'lin-blk encode/Modulus',13,'operation']],...
'Mask Help','This block output modulus operation of the input signal with module base as specified in block entry. The length of the output vector is the same as the input vector.')
set_param([sys,'/',['Binary vector',13,'lin-blk encode/Modulus',13,'operation']],...
'Mask Entries','2\/',...
'position',[180,26,240,64])
add_block('built-in/State-Space',[sys,'/',['Binary vector',13,'lin-blk encode/Matrix',13,'Gain']])
set_param([sys,'/',['Binary vector',13,'lin-blk encode/Matrix',13,'Gain']],...
'A','[]',...
'B','[]',...
'C','[]',...
'D','K',...
'Mask Display','K',...
'Mask Type','Matrix Gain',...
'Mask Dialogue','Matrix Gain.|Gain matrix:')
set_param([sys,'/',['Binary vector',13,'lin-blk encode/Matrix',13,'Gain']],...
'Mask Translate','K = @1;',...
'Mask Help','Multiplies input vector by entered matrix to produce output vector (y=Au).',...
'Mask Entries','G\/')
set_param([sys,'/',['Binary vector',13,'lin-blk encode/Matrix',13,'Gain']],...
'position',[110,31,135,59])
add_block('built-in/Inport',[sys,'/',['Binary vector',13,'lin-blk encode/in_1']])
set_param([sys,'/',['Binary vector',13,'lin-blk encode/in_1']],...
'position',[30,35,50,55])
add_line([sys,'/',['Binary vector',13,'lin-blk encode']],[245,45;285,45])
add_line([sys,'/',['Binary vector',13,'lin-blk encode']],[140,45;175,45])
add_line([sys,'/',['Binary vector',13,'lin-blk encode']],[55,45;105,45])
set_param([sys,'/',['Binary vector',13,'lin-blk encode']],...
'Mask Display','plot(0,0,100,100,x,y);Linear en',...
'Mask Type','Vector I/O linear block encode')
set_param([sys,'/',['Binary vector',13,'lin-blk encode']],...
'Mask Dialogue','Linear block encode with input message\nvector length K and output codeword vector length N.|Generator matrix (binary K-by-N matrix):')
set_param([sys,'/',['Binary vector',13,'lin-blk encode']],...
'Mask Translate','G=@1'';[x,y]=codeicon(1);')
set_param([sys,'/',['Binary vector',13,'lin-blk encode']],...
'Mask Help','Linear block encode with input message vector length K and output codeword vector length N. The generator matrix is a K-by-N matrix. Linear block code is a generic code.')
set_param([sys,'/',['Binary vector',13,'lin-blk encode']],...
'Mask Entries','[[1 1 0; 0 1 1; 1 1 1; 1 0 1] eye(4)]\/')
% Finished composite block ['Binary vector',13,'lin-blk encode'].
set_param([sys,'/',['Binary vector',13,'lin-blk encode']],...
'hide name',0,...
'position',[245,53,325,97])
add_line(sys,[500,110;535,110])
add_line(sys,[445,85;455,85;455,110;470,110])
add_line(sys,[115,75;140,75])
add_line(sys,[125,75;125,30;690,30])
add_line(sys,[670,65;670,50;690,50])
add_line(sys,[330,75;355,75])
add_line(sys,[445,65;470,65])
add_line(sys,[560,65;580,65])
add_line(sys,[230,75;240,75])
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 + -