📄 tbchcode.m
字号:
'position',[535,170,555,190])
add_block('built-in/Switch',[sys,'/',['Binary vector',13,'noise generator1/Switch']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Switch']],...
'Threshold','0.5',...
'position',[450,164,480,196])
add_block('built-in/Signal Generator',[sys,'/',['Binary vector',13,'noise generator1/Uniform',13,'noise gen.1']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Uniform',13,'noise gen.1']],...
'Peak','1.000000',...
'Peak Range','5.000000',...
'Freq','1234.000000',...
'Freq Range','6170.000000',...
'Wave','Rnd',...
'Units','Rads')
set_param([sys,'/',['Binary vector',13,'noise generator1/Uniform',13,'noise gen.1']],...
'Mask Display','',...
'position',[50,148,95,182])
add_block('built-in/Relational Operator',[sys,'/',['Binary vector',13,'noise generator1/Relational',13,'Operator1']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Relational',13,'Operator1']],...
'position',[180,168,210,192])
add_block('built-in/Constant',[sys,'/',['Binary vector',13,'noise generator1/Constant1']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Constant1']],...
'Value','p',...
'position',[75,210,105,230])
add_block('built-in/Signal Generator',[sys,'/',['Binary vector',13,'noise generator1/Uniform',13,'noise gen.']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Uniform',13,'noise gen.']],...
'Peak','1.000000',...
'Peak Range','5.000000',...
'Freq','1234.000000',...
'Freq Range','6170.000000',...
'Wave','Rnd',...
'Units','Rads')
set_param([sys,'/',['Binary vector',13,'noise generator1/Uniform',13,'noise gen.']],...
'position',[60,23,105,57])
add_block('built-in/Relational Operator',[sys,'/',['Binary vector',13,'noise generator1/Relational',13,'Operator']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Relational',13,'Operator']],...
'position',[180,33,210,57])
add_block('built-in/State-Space',[sys,'/',['Binary vector',13,'noise generator1/Matrix',13,'Gain']])
set_param([sys,'/',['Binary vector',13,'noise generator1/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,'noise generator1/Matrix',13,'Gain']],...
'Mask Translate','K = @1;',...
'Mask Help','Multiplies input vector by entered matrix to produce output vector (y=Au).',...
'Mask Entries','y\/')
set_param([sys,'/',['Binary vector',13,'noise generator1/Matrix',13,'Gain']],...
'position',[255,30,300,60])
add_block('built-in/Constant',[sys,'/',['Binary vector',13,'noise generator1/Constant']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Constant']],...
'Value','x',...
'position',[90,100,120,120])
add_block('built-in/S-Function',[sys,'/',['Binary vector',13,'noise generator1/Integer scalar',13,'to vector',13,'converter']])
set_param([sys,'/',['Binary vector',13,'noise generator1/Integer scalar',13,'to vector',13,'converter']],...
'function name','simde2bi',...
'parameters','len, p',...
'Mask Display','Sca to vec\nconverter')
set_param([sys,'/',['Binary vector',13,'noise generator1/Integer scalar',13,'to vector',13,'converter']],...
'Mask Type','Scalar integer to vector converter')
set_param([sys,'/',['Binary vector',13,'noise generator1/Integer scalar',13,'to vector',13,'converter']],...
'Mask Dialogue','Positive decimal interger to binary converter.|Output vector length:|Output element base:')
set_param([sys,'/',['Binary vector',13,'noise generator1/Integer scalar',13,'to vector',13,'converter']],...
'Mask Translate','len=@1;p=@2;')
set_param([sys,'/',['Binary vector',13,'noise generator1/Integer scalar',13,'to vector',13,'converter']],...
'Mask Help','This block converts scaler positive decimal integer input to an arbitrary base integer vector output with specified vector length and output element base. The first element of the output vector is the lowest binary bit. For example, for a length two binary output, y(1)=0, y(2)=1 means the input is 1; y(0)=1, y(2)=0 means the input is 2.')
set_param([sys,'/',['Binary vector',13,'noise generator1/Integer scalar',13,'to vector',13,'converter']],...
'Mask Entries','n\/2\/',...
'position',[350,26,410,64])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[305,45;345,45])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[110,40;175,40])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[125,110;140,110;140,50;175,50])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[215,45;250,45])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[100,165;135,165;135,175;175,175])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[110,220;135,220;135,185;175,185])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[215,180;445,180])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[415,45;425,45;425,170;445,170])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[485,180;530,180])
add_line([sys,'/',['Binary vector',13,'noise generator1']],[375,220;405,220;405,190;445,190])
set_param([sys,'/',['Binary vector',13,'noise generator1']],...
'Mask Display','Random\nB-vector',...
'Mask Type','Binary vector noise generator.')
set_param([sys,'/',['Binary vector',13,'noise generator1']],...
'Mask Dialogue','Generatea binary vector with at most given number of ones randomly distributed in the vector.|Vector length(can''t be changed during simulation):|Limit number of ones(can''t be changed during simulation):|Probability of all zeros (%):')
set_param([sys,'/',['Binary vector',13,'noise generator1']],...
'Mask Translate','n=@1;m=@2;x=[1:2^n-1];id=find(sum(de2bi(x)'')<=m);x=x(id);lenx=length(x); y=x-[0,x(1:lenx-1)];x=[-1:2/lenx:(lenx-2)/lenx];p=@3/50-1;')
set_param([sys,'/',['Binary vector',13,'noise generator1']],...
'Mask Help','This block outputs a binary vector with specified length. There are at most the given number of ones randomly distributed in the vector.')
set_param([sys,'/',['Binary vector',13,'noise generator1']],...
'Mask Entries','5\/1\/50\/')
% Finished composite block ['Binary vector',13,'noise generator1'].
set_param([sys,'/',['Binary vector',13,'noise generator1']],...
'position',[130,208,185,242])
add_block('built-in/S-Function',[sys,'/',['Integer vector ',13,'to scalar',13,'converter']])
set_param([sys,'/',['Integer vector ',13,'to scalar',13,'converter']],...
'BackGround',3,...
'function name','simbi2de',...
'parameters','p',...
'Mask Display','Vec to sca\nconverter',...
'Mask Type','Vectro to scalar converter')
set_param([sys,'/',['Integer vector ',13,'to scalar',13,'converter']],...
'Mask Dialogue','Positive integer vector to scalar decimal integer converter:|Input element base:',...
'Mask Translate','p=@1;')
set_param([sys,'/',['Integer vector ',13,'to scalar',13,'converter']],...
'Mask Help','This block converts a binary vector to a scalar decimal integer. The block takes the first element input as the lowest binary bit. For example, if u(1)=1 and u(2)=0, the block outputs y=1; if u(1)=0 and u(2)=1, the block outputs y=2.')
set_param([sys,'/',['Integer vector ',13,'to scalar',13,'converter']],...
'Mask Entries','2\/',...
'position',[650,50,710,90])
add_block('built-in/S-Function',[sys,'/',['Integer scalar',13,'to vector',13,'converter']])
set_param([sys,'/',['Integer scalar',13,'to vector',13,'converter']],...
'function name','simde2bi',...
'parameters','len, p',...
'Mask Display','Sca to vec\nconverter',...
'Mask Type','Scalar integer to vector converter')
set_param([sys,'/',['Integer scalar',13,'to vector',13,'converter']],...
'Mask Dialogue','Positive decimal interger to binary converter.|Output vector length:|Output element base:',...
'Mask Translate','len=@1;p=@2;')
set_param([sys,'/',['Integer scalar',13,'to vector',13,'converter']],...
'Mask Help','This block converts scaler positive decimal integer input to an arbitrary base integer vector output with specified vector length and output element base. The first element of the output vector is the lowest binary bit. For example, for a length two binary output, y(1)=0, y(2)=1 means the input is 1; y(0)=1, y(2)=0 means the input is 2.')
set_param([sys,'/',['Integer scalar',13,'to vector',13,'converter']],...
'Mask Entries','5\/2\/',...
'position',[150,46,210,84])
% Subsystem ['Binary-vector',13,'BCH decode'].
new_system([sys,'/',['Binary-vector',13,'BCH decode']])
set_param([sys,'/',['Binary-vector',13,'BCH decode']],'Location',[157,499,740,659])
add_block('built-in/Outport',[sys,'/',['Binary-vector',13,'BCH decode/out_2']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/out_2']],...
'Port','2',...
'position',[495,95,515,115])
add_block('built-in/Outport',[sys,'/',['Binary-vector',13,'BCH decode/out_1']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/out_1']],...
'position',[495,30,515,50])
add_block('built-in/Demux',[sys,'/',['Binary-vector',13,'BCH decode/Demux']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/Demux']],...
'outputs','[k, 1]',...
'position',[395,40,435,75])
add_block('built-in/Inport',[sys,'/',['Binary-vector',13,'BCH decode/in_2']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/in_2']],...
'Port','2',...
'position',[10,100,30,120])
add_block('built-in/Inport',[sys,'/',['Binary-vector',13,'BCH decode/in_1']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/in_1']],...
'position',[20,15,40,35])
add_block('built-in/Mux',[sys,'/',['Binary-vector',13,'BCH decode/Mux']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/Mux']],...
'inputs','[n, 1]',...
'position',[80,41,115,74])
add_block('built-in/S-Function',[sys,'/',['Binary-vector',13,'BCH decode/S-function']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/S-function']],...
'function name','simbchdc',...
'parameters','n, k, t,tp,dim',...
'position',[170,20,235,40])
add_block('built-in/Switch',[sys,'/',['Binary-vector',13,'BCH decode/Switch']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/Switch']],...
'Threshold','0.5',...
'position',[295,44,325,76])
add_block('built-in/Memory',[sys,'/',['Binary-vector',13,'BCH decode/Memory']])
set_param([sys,'/',['Binary-vector',13,'BCH decode/Memory']],...
'orientation',2,...
'x0','zeros(1,k+1)',...
'position',[295,95,335,125])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[440,65;455,65;455,105;490,105])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[440,50;455,50;455,40;490,40])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[35,110;200,110;200,60;290,60])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[60,110;60,65;75,65])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[120,60;150,60;150,30;165,30])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[45,25;60,25;60,50;75,50])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[240,30;255,30;255,50;290,50])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[290,110;255,110;255,70;290,70])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[330,60;390,60])
add_line([sys,'/',['Binary-vector',13,'BCH decode']],[360,60;360,110;340,110])
set_param([sys,'/',['Binary-vector',13,'BCH decode']],...
'Mask Display','BCH\ndecode',...
'Mask Type','BCH decode')
set_param([sys,'/',['Binary-vector',13,'BCH decode']],...
'Mask Dialogue','Code word length N, message length K, T error-correction BCH decode.|Code word length (N=2^M-1. M is a >2 integer):|Message length:|Error-correction capability (0 for unknown):')
set_param([sys,'/',['Binary-vector',13,'BCH decode']],...
'Mask Translate','n=@1;k=@2;t=@3;if t<=0, [x1,x2,x3,x4,t]=bchpoly(n,k);end;dim=3;pow_dim=7;while pow_dim<n,dim=dim+1;pow_dim=2^dim-1;end;tp=gftuple([-1:n-1]'',dim);')
set_param([sys,'/',['Binary-vector',13,'BCH decode']],...
'Mask Help','This block decodes N-ary binary code word from 1st inport into K-ary message sigusing at 1st ouport using BCH method. Use MATLAB command BCHPLOY to view the valid code word length N, message length K and error-correction capability T. A non-zero second inport signal triggers the block to do decode process. The block outputs the last processed results when second inport signal is zero. The second outport outputs the error detected in the process. A negative output indicates more error than the capability.')
set_param([sys,'/',['Binary-vector',13,'BCH decode']],...
'Mask Entries','15\/5\/3\/')
% Finished composite block ['Binary-vector',13,'BCH decode'].
set_param([sys,'/',['Binary-vector',13,'BCH decode']],...
'position',[545,60,605,100])
add_line(sys,[90,65;145,65])
add_line(sys,[215,65;260,65])
add_line(sys,[340,65;365,65])
add_line(sys,[115,65;115,30;730,30;730,60;760,60])
add_line(sys,[395,70;430,70])
add_line(sys,[500,70;540,70])
add_line(sys,[610,70;645,70])
add_line(sys,[715,70;760,70])
add_line(sys,[805,75;840,75])
add_line(sys,[820,75;820,160;850,160])
add_line(sys,[610,90;630,90;630,125;740,125;740,80;760,80])
add_line(sys,[525,175;745,175;745,90;760,90])
add_line(sys,[430,135;500,135;500,90;540,90])
add_line(sys,[260,140;285,140;285,215;320,215])
add_line(sys,[190,225;320,225])
add_line(sys,[255,285;280,285;280,235;320,235])
add_line(sys,[365,225;375,225;375,170;350,170;350,75;365,75])
add_line(sys,[375,225;485,225;495,175])
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 + -