📄 tstrsinv.m
字号:
set_param([sys,'/',['Sampled read',13,'from wksp/Message source']],...
'position',[180,53,255,97])
add_line([sys,'/',['Sampled read',13,'from wksp']],[260,75;290,75])
add_line([sys,'/',['Sampled read',13,'from wksp']],[115,75;175,75])
set_param([sys,'/',['Sampled read',13,'from wksp']],...
'Mask Display','plot(0,0,100,100,x,y);Rd wksp',...
'Mask Type','Read from workspace')
set_param([sys,'/',['Sampled read',13,'from wksp']],...
'Mask Dialogue','Read from a workspace variable at\nsampling time point.|Variable (column_number=block_output_length):|Data output sample time (sec):|Cyclic control (1: cyclic read, 0: output zeros after eof).|Initial output:')
set_param([sys,'/',['Sampled read',13,'from wksp']],...
'Mask Translate','var=@1;td=@2;ts=td(1);if (length(td)>=2),off=td(2);else off=0;end;cyc=@3;ini=@4;[x,y]=srcsicon(7);')
set_param([sys,'/',['Sampled read',13,'from wksp']],...
'Mask Help','This block reads from a workspace variable at a given sample time. The column number is the block output vector length. When the simulation reached the end of the variable (eof) row, the block will cyclically output from the first row of the variable or output zeros based on the cyclic control entree.')
set_param([sys,'/',['Sampled read',13,'from wksp']],...
'Mask Entries','randint(100*K_rs_demo,1,N_rs_demo)\/1/K_rs_demo\/1\/10\/')
% Finished composite block ['Sampled read',13,'from wksp'].
set_param([sys,'/',['Sampled read',13,'from wksp']],...
'hide name',0,...
'position',[15,23,95,67])
% Subsystem ['Integer sequence',13,'RS decode'].
new_system([sys,'/',['Integer sequence',13,'RS decode']])
set_param([sys,'/',['Integer sequence',13,'RS decode']],'Location',[43,589,882,748])
% Subsystem ['Integer sequence',13,'RS decode/Integer vector',13,'RS decode'].
new_system([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],'Location',[267,61,656,221])
add_block('built-in/Outport',[sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/out_1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/out_1']],...
'position',[325,50,345,70])
add_block('built-in/S-Function',[sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/S-function']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/S-function']],...
'function name','simrsdec',...
'parameters','n, k, tp, dim',...
'position',[170,50,235,70])
add_block('built-in/Inport',[sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/in_1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/in_1']],...
'position',[20,15,40,35])
add_block('built-in/Inport',[sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/in_2']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/in_2']],...
'Port','2',...
'position',[10,100,30,120])
add_block('built-in/Mux',[sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/Mux']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/Mux']],...
'inputs','2',...
'position',[80,40,115,75])
add_block('built-in/Demux',[sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/Demux']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/Demux']],...
'outputs','[k, 1]',...
'position',[260,50,300,85])
add_block('built-in/Outport',[sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/out_2']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode/out_2']],...
'Port','2',...
'position',[325,100,345,120])
add_line([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],[45,25;60,25;60,50;75,50])
add_line([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],[120,60;165,60])
add_line([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],[35,110;60,110;60,65;75,65])
add_line([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],[240,60;240,70;255,70])
add_line([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],[305,60;320,60])
add_line([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],[305,75;310,75;320,110])
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],...
'Mask Display','plot(0,0,100,100,x,y,v,w);Int RS de',...
'Mask Type','Integer vector I/O RS decode')
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],...
'Mask Dialogue','Reed-Solomon decode with integer output\ncodeword vector length N and integer\ninput message vector length K.|Code word length N=2^M-1 (M is a >=3 integer):|Message length K (< N):')
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],...
'Mask Translate','n=@1;k=@2;dim=3;p_d=7;while p_d<n,dim=dim+1;p_d=2^dim-1;end;tp=gftuple([-1:n-1]'',dim);[x,y]=codeicon(2);[v,w]=trigicon(0,25,get_param(gcb,''orientation''));')
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],...
'Mask Help','This block decodes length N integer vector codeword input into length K integer vector message output using Reed-Solomon code. The input/output integers are in range [0, N-1]. The block refreshes its decoding output when the enable signal at the second inport has positive value. The second outport outputs the number of errors detected in the process. ')
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],...
'Mask Entries','n\/k\/')
% Finished composite block ['Integer sequence',13,'RS decode/Integer vector',13,'RS decode'].
set_param([sys,'/',['Integer sequence',13,'RS decode/Integer vector',13,'RS decode']],...
'position',[410,33,490,77])
add_block('built-in/Inport',[sys,'/',['Integer sequence',13,'RS decode/in_1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/in_1']],...
'position',[130,35,150,55])
% Subsystem ['Integer sequence',13,'RS decode/Register-shift'].
new_system([sys,'/',['Integer sequence',13,'RS decode/Register-shift']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],'Location',[237,587,592,717])
add_block('built-in/Inport',[sys,'/',['Integer sequence',13,'RS decode/Register-shift/in_2']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift/in_2']],...
'Port','2',...
'position',[30,70,50,90])
add_block('built-in/Inport',[sys,'/',['Integer sequence',13,'RS decode/Register-shift/in_1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift/in_1']],...
'position',[30,55,50,75])
add_block('built-in/Outport',[sys,'/',['Integer sequence',13,'RS decode/Register-shift/out_2']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift/out_2']],...
'Port','2',...
'position',[330,70,350,90])
add_block('built-in/Outport',[sys,'/',['Integer sequence',13,'RS decode/Register-shift/out_1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift/out_1']],...
'position',[330,55,350,75])
add_block('built-in/Mux',[sys,'/',['Integer sequence',13,'RS decode/Register-shift/Mux']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift/Mux']],...
'inputs','2',...
'position',[80,56,115,89])
add_block('built-in/S-Function',[sys,'/',['Integer sequence',13,'RS decode/Register-shift/S-function']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift/S-function']],...
'function name','regshift',...
'parameters','shft_out, thrhld',...
'position',[150,65,200,85])
add_block('built-in/Demux',[sys,'/',['Integer sequence',13,'RS decode/Register-shift/Demux']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift/Demux']],...
'outputs','[len_rg, 1]',...
'position',[260,55,300,90])
add_line([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],[55,80;75,80])
add_line([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],[55,65;75,65])
add_line([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],[305,80;325,80])
add_line([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],[305,65;325,65])
add_line([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],[205,75;255,75])
add_line([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],[120,75;145,75])
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],...
'Mask Display','Register\nshift',...
'Mask Type','Register-shift')
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],...
'Mask Dialogue','Store and shift the input from 1st port by raising edge of the pulse from second port.|Vector specify ouput delay length(non-negative integer):|Threshold for the pulse signal from the 2nd port:')
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],...
'Mask Translate','shft_out=@1; thrhld=@2; len_rg=length(@1);')
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],...
'Mask Help','This block store the 1st inport signal at the raising edge of 2nd inport pulse. The 1st outport outputs a vector with its size same as the the size of the 1st entree of this block. The maximum delay is the register size of this block. The second outport output a positive pulse at the begining of entire register refreshment.')
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],...
'Mask Entries','[n:-1:1]\/.1\/')
% Finished composite block ['Integer sequence',13,'RS decode/Register-shift'].
set_param([sys,'/',['Integer sequence',13,'RS decode/Register-shift']],...
'ForeGround',3,...
'position',[225,35,280,75])
add_block('built-in/Demux',[sys,'/',['Integer sequence',13,'RS decode/Demux']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Demux']],...
'outputs','2',...
'position',[125,85,170,120])
% Subsystem ['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time'].
new_system([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],'Location',[55,192,283,286])
add_block('built-in/Outport',[sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time/Outport']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time/Outport']],...
'position',[160,35,180,55])
add_block('built-in/S-Function',[sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time/S-function1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time/S-function1']],...
'function name','homopuls',...
'parameters','samp_time, out_divid, offset',...
'position',[40,31,105,59])
add_line([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],[110,45;155,45])
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],...
'Mask Display','Vector\nPulse',...
'Mask Type','Pulse generator')
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],...
'Mask Dialogue','Vector pulses with sample rate of each pulse as Sample_time ./Divider. |Sample time (scalar, sec):|Divider (integer vector):|Offset (have same dimension as Divider):')
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],...
'Mask Translate','samp_time=@1;out_divid=@2;offset=@3;')
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],...
'Mask Help','This block generator a vector pulses. The output length is the same as the vector defined in "Divider". The ith element of the output has the sample time Sample_time/Divider(i). All elements in "Divider" must be integers.')
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],...
'Mask Entries','samp*k\/[n k]\/[0 0]\/')
% Finished composite block ['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time'].
set_param([sys,'/',['Integer sequence',13,'RS decode/Pulses deivide',13,'same sample time']],...
'position',[45,86,105,124])
% Subsystem ['Integer sequence',13,'RS decode/Rising edge',13,'detector'].
new_system([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector']],'Location',[282,116,671,290])
add_block('built-in/Relational Operator',[sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Relational',13,'Operator']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Relational',13,'Operator']],...
'position',[135,18,165,42])
add_block('built-in/Inport',[sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/in_1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/in_1']],...
'position',[10,15,30,35])
add_block('built-in/Memory',[sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Memory1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Memory1']],...
'position',[125,80,165,110])
add_block('built-in/Constant',[sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/one1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/one1']],...
'Value','thld',...
'position',[30,135,60,155])
add_block('built-in/Relational Operator',[sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Relational',13,'Operator2']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Relational',13,'Operator2']],...
'Operator','>',...
'position',[265,23,295,47])
add_block('built-in/Relational Operator',[sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Relational',13,'Operator1']])
set_param([sys,'/',['Integer sequence',13,'RS decode/Rising edge',13,'detector/Relational',13,'Operator1']],...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -