📄 tutbchsq.m
字号:
add_block('built-in/Inport',[sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/in_2']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/in_2']],...
'Port','2',...
'position',[10,100,30,120])
add_block('built-in/Demux',[sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/Demux']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/Demux']],...
'outputs','[k, 1]',...
'position',[395,40,435,75])
add_block('built-in/Outport',[sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/out_1']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/out_1']],...
'position',[495,30,515,50])
add_block('built-in/Outport',[sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/out_2']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode/out_2']],...
'Port','2',...
'position',[495,95,515,115])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[330,60;390,60])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[360,60;360,110;340,110])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[290,110;255,110;255,70;290,70])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[240,30;255,30;255,50;290,50])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[45,25;60,25;60,50;75,50])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[120,60;150,60;150,30;165,30])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[35,110;200,110;200,60;290,60])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[60,110;60,65;75,65])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[440,50;455,50;455,40;490,40])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],[440,65;455,65;455,105;490,105])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],...
'Mask Display','BCH\ndecode',...
'Mask Type','BCH decode')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/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-sequential',13,'BCH decode1/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-sequential',13,'BCH decode1/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-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],...
'Mask Entries','n\/k\/t\/')
% Finished composite block ['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode'].
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Binary-vector',13,'BCH decode']],...
'BackGround',5,...
'position',[285,25,345,65])
% Subsystem ['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down'].
new_system([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],'Location',[306,291,744,461])
add_block('built-in/Inport',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/in_3']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/in_3']],...
'Port','3',...
'position',[65,85,85,105])
add_block('built-in/Inport',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/in_2']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/in_2']],...
'Port','2',...
'position',[40,70,60,90])
add_block('built-in/Inport',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/in_1']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/in_1']],...
'position',[15,55,35,75])
add_block('built-in/S-Function',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/S-function']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/S-function']],...
'function name','regdown',...
'parameters','ini_idx, idx_inc, thrshld, cycl_flag',...
'position',[185,70,235,90])
add_block('built-in/Demux',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/Demux']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/Demux']],...
'outputs','[out_size 1]',...
'position',[290,62,330,98])
add_block('built-in/Mux',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/Mux']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/Mux']],...
'inputs','[in_size 1 1]',...
'position',[110,59,140,101])
add_block('built-in/Outport',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/out_2']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/out_2']],...
'Port','2',...
'position',[355,80,375,100])
add_block('built-in/Outport',[sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/out_1']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down/out_1']],...
'position',[390,60,410,80])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],[90,95;105,95])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],[335,90;350,90])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],[65,80;105,80])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],[335,70;385,70])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],[40,65;105,65])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],[145,80;180,80])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],[240,80;285,80])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],...
'Mask Display','Triggered\nbuffer dn',...
'Mask Type','Triggered buffer down.')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],...
'Mask Dialogue','Triggered buffer down.|Input signal vector size:|Initial index (integer vector):|Increament for each index (integer vector):|Trigger threshold:|When index exceed register size, 1 for cyclic ouput, 0 for zero output:')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],...
'Mask Translate','in_size=@1; ini_idx=@2; idx_inc=@3; thrshld=@4; cycl_flag=@5; out_size=length(ini_idx);')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],...
'Mask Help','The register inside this block take the signal vector at the 1st inport by the raising edge of the second inport. The fisrt outport outputs a signal vector at the raising edge of the third inport.')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],...
'Mask Entries','k\/0\/1\/.1\/0\/')
% Finished composite block ['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down'].
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/Triggered',13,'buffer down']],...
'BackGround',3,...
'position',[445,28,505,72])
add_block('built-in/Outport',[sys,'/',['Binary-sequential',13,'BCH decode1/out_2']])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1/out_2']],...
'Port','2',...
'position',[370,45,390,65])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[155,90;160,90;160,55;180,55])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[245,55;280,55])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[260,55;260,100;415,100;415,50;440,50])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[245,35;280,35])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[350,55;365,55])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[350,35;440,35])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[125,35;180,35])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[90,100;105,100])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[510,40;555,40])
add_line([sys,'/',['Binary-sequential',13,'BCH decode1']],[155,105;425,105;425,65;440,65])
set_param([sys,'/',['Binary-sequential',13,'BCH decode1']],...
'Mask Display','BCH\ndecode',...
'Mask Type','BCH binary sequencial decode')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1']],...
'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):|Output sample time:')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1']],...
'Mask Translate','n=@1;k=@2;t=@3;samp=@4;')
set_param([sys,'/',['Binary-sequential',13,'BCH decode1']],...
'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-sequential',13,'BCH decode1']],...
'Mask Entries','15\/5\/3\/1/5\/')
% Finished composite block ['Binary-sequential',13,'BCH decode1'].
set_param([sys,'/',['Binary-sequential',13,'BCH decode1']],...
'ForeGround',2,...
'hide name',0,...
'position',[385,60,445,100])
% Subsystem 'Error rate'.
new_system([sys,'/','Error rate'])
set_param([sys,'/','Error rate'],'Location',[255,368,509,510])
add_block('built-in/Inport',[sys,'/','Error rate/in_2'])
set_param([sys,'/','Error rate/in_2'],...
'Port','2',...
'position',[15,60,35,80])
add_block('built-in/Inport',[sys,'/','Error rate/in_1'])
set_param([sys,'/','Error rate/in_1'],...
'position',[15,45,35,65])
add_block('built-in/Mux',[sys,'/','Error rate/Mux'])
set_param([sys,'/','Error rate/Mux'],...
'inputs','2',...
'position',[65,46,100,79])
add_block('built-in/S-Function',[sys,'/','Error rate/S-function'])
set_param([sys,'/','Error rate/S-function'],...
'function name','sbiterr',...
'parameters','num_lin, K, TDelay, Sample',...
'position',[130,52,195,78])
add_line([sys,'/','Error rate'],[40,70;60,70])
add_line([sys,'/','Error rate'],[40,55;60,55])
add_line([sys,'/','Error rate'],[105,65;125,65])
set_param([sys,'/','Error rate'],...
'Mask Display','Error Rate\nMeter',...
'Mask Type','Symbol/Bit Error Counter.')
set_param([sys,'/','Error rate'],...
'Mask Dialogue','Compare 2nd port input to scalar 1st port input. Compute the error rate.|Bit per symbol:|Number of digit on display:|Delay between input (1st port) and output (2nd port):|Sampling time (second):')
set_param([sys,'/','Error rate'],...
'Mask Translate','K=@1;num_lin=@2;TDelay=@3;Sample=@4;')
set_param([sys,'/','Error rate'],...
'Mask Help','The signal from the first port should be always be a scalar. The 2nd port input signal can be a vector with a same time delay to the input signal.',...
'Mask Entries','1\/0\/2\/1/5\/')
% Finished composite block 'Error rate'.
set_param([sys,'/','Error rate'],...
'hide name',0,...
'position',[495,58,570,102])
add_line(sys,[335,70;355,70;355,80;380,80])
add_line(sys,[215,65;230,65;230,80;255,80])
add_line(sys,[105,75;140,75])
add_line(sys,[450,70;465,70;465,90;490,90])
add_line(sys,[115,75;115,40;475,40;475,70;490,70])
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 + -