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

📄 comcdrs.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 5 页
字号:
		'Mask Type','Binary sequence I/O RS encode')
set_param([sys,'/',['Binary sequence',13,'RS encode']],...
		'Mask Dialogue','RS encode with codeword length N, message\nlength K.|Code length N=2^M-1 (M is a >2 integer):|Message length K:|Input sample time T_in (sec):')
set_param([sys,'/',['Binary sequence',13,'RS encode']],...
		'Mask Translate','n=@1;k=@2;samp=@3;m=3;p_m=7;while p_m<n,m=m+1;p_m=2^m-1;end;[x,y]=codeicon(3);[v,w]=trigicon(1,75,get_param(gcb,''orientation''));')
set_param([sys,'/',['Binary sequence',13,'RS encode']],...
		'Mask Help','This block encodes length K binary message into length N binary codeword. The block uses sequential input/output format. The output sequence sample time is K*T_in/N. The block causes a K*M*T_in delay. The second outport outputs a pulse when (K*M)-th message signal is received.')
set_param([sys,'/',['Binary sequence',13,'RS encode']],...
		'Mask Entries','7\/5\/1/5/3\/')


%     Finished composite block ['Binary sequence',13,'RS encode'].

set_param([sys,'/',['Binary sequence',13,'RS encode']],...
		'position',[35,278,115,322])


%     Subsystem  ['Binary vector',13,'RS encode'].

new_system([sys,'/',['Binary vector',13,'RS encode']])
set_param([sys,'/',['Binary vector',13,'RS encode']],'Location',[160,111,633,282])

add_block('built-in/Memory',[sys,'/',['Binary vector',13,'RS encode/Memory']])
set_param([sys,'/',['Binary vector',13,'RS encode/Memory']],...
		'orientation',2,...
		'x0','zeros(1,n*dim)',...
		'position',[305,105,345,135])

add_block('built-in/Switch',[sys,'/',['Binary vector',13,'RS encode/Switch']])
set_param([sys,'/',['Binary vector',13,'RS encode/Switch']],...
		'Threshold','0.5',...
		'position',[305,54,335,86])

add_block('built-in/S-Function',[sys,'/',['Binary vector',13,'RS encode/S-function']])
set_param([sys,'/',['Binary vector',13,'RS encode/S-function']],...
		'function name','simrscbv',...
		'parameters','n, k, pg,tp,dim',...
		'position',[180,30,245,50])

add_block('built-in/Mux',[sys,'/',['Binary vector',13,'RS encode/Mux']])
set_param([sys,'/',['Binary vector',13,'RS encode/Mux']],...
		'inputs','2',...
		'position',[90,51,125,84])

add_block('built-in/Inport',[sys,'/',['Binary vector',13,'RS encode/in_1']])
set_param([sys,'/',['Binary vector',13,'RS encode/in_1']],...
		'position',[30,25,50,45])

add_block('built-in/Inport',[sys,'/',['Binary vector',13,'RS encode/in_2']])
set_param([sys,'/',['Binary vector',13,'RS encode/in_2']],...
		'Port','2',...
		'position',[20,110,40,130])

add_block('built-in/Outport',[sys,'/',['Binary vector',13,'RS encode/out_1']])
set_param([sys,'/',['Binary vector',13,'RS encode/out_1']],...
		'position',[425,60,445,80])
add_line([sys,'/',['Binary vector',13,'RS encode']],[340,70;420,70])
add_line([sys,'/',['Binary vector',13,'RS encode']],[370,70;370,120;350,120])
add_line([sys,'/',['Binary vector',13,'RS encode']],[300,120;265,120;265,80;300,80])
add_line([sys,'/',['Binary vector',13,'RS encode']],[250,40;265,40;265,60;300,60])
add_line([sys,'/',['Binary vector',13,'RS encode']],[55,35;70,35;70,60;85,60])
add_line([sys,'/',['Binary vector',13,'RS encode']],[130,70;160,70;160,40;175,40])
add_line([sys,'/',['Binary vector',13,'RS encode']],[45,120;210,120;210,70;300,70])
add_line([sys,'/',['Binary vector',13,'RS encode']],[70,120;70,75;85,75])
set_param([sys,'/',['Binary vector',13,'RS encode']],...
		'Mask Display','plot(0,0,100,100,x,y,v,w);B-RS en',...
		'Mask Type','Binary vector I/O RS encode')
set_param([sys,'/',['Binary vector',13,'RS encode']],...
		'Mask Dialogue','Reed-Solomon encode with binary input\nvector length K*M and binary output\nvector length N*M.|Code length N=2^M-1 (M is a >2 integer):|Message length K (< N):')
set_param([sys,'/',['Binary vector',13,'RS encode']],...
		'Mask Translate','n=@1;k=@2;if length(k)>1,pg=k;k=n-length(pg)-1;else,pg=rspoly(n,k);end;dim=3;p_dim=7;while p_dim<n,dim=dim+1;p_dim=2^dim-1;end;tp=gftuple([-1:n-1]'',dim);[x,y]=codeicon(1);[v,w]=trigicon(0,25,get_param(gcb,''orientation''));')
set_param([sys,'/',['Binary vector',13,'RS encode']],...
		'Mask Help','This block encodes length K*M binary vector input into length N*M binary vector output. The codeword length is N=2^M-1. M is a integer larger than 2. The message length is K<N. The block refreshes its encoding output when the enable signal at the second inport has positive value.')
set_param([sys,'/',['Binary vector',13,'RS encode']],...
		'Mask Entries','7\/5\/')


%     Finished composite block ['Binary vector',13,'RS encode'].

set_param([sys,'/',['Binary vector',13,'RS encode']],...
		'position',[35,128,115,172])


%     Subsystem  ['Integer vector',13,'RS encode'].

new_system([sys,'/',['Integer vector',13,'RS encode']])
set_param([sys,'/',['Integer vector',13,'RS encode']],'Location',[315,420,618,590])

add_block('built-in/Inport',[sys,'/',['Integer vector',13,'RS encode/in_2']])
set_param([sys,'/',['Integer vector',13,'RS encode/in_2']],...
		'Port','2',...
		'position',[20,110,40,130])

add_block('built-in/Inport',[sys,'/',['Integer vector',13,'RS encode/in_1']])
set_param([sys,'/',['Integer vector',13,'RS encode/in_1']],...
		'position',[30,25,50,45])

add_block('built-in/Mux',[sys,'/',['Integer vector',13,'RS encode/Mux']])
set_param([sys,'/',['Integer vector',13,'RS encode/Mux']],...
		'inputs','2',...
		'position',[90,51,125,84])

add_block('built-in/S-Function',[sys,'/',['Integer vector',13,'RS encode/S-function']])
set_param([sys,'/',['Integer vector',13,'RS encode/S-function']],...
		'function name','simrscod',...
		'parameters','n, k, pg,tp,dim',...
		'position',[155,60,220,80])

add_block('built-in/Outport',[sys,'/',['Integer vector',13,'RS encode/out_1']])
set_param([sys,'/',['Integer vector',13,'RS encode/out_1']],...
		'position',[260,60,280,80])
add_line([sys,'/',['Integer vector',13,'RS encode']],[45,120;70,120;70,75;85,75])
add_line([sys,'/',['Integer vector',13,'RS encode']],[130,70;150,70])
add_line([sys,'/',['Integer vector',13,'RS encode']],[55,35;70,35;70,60;85,60])
add_line([sys,'/',['Integer vector',13,'RS encode']],[225,70;255,70])
set_param([sys,'/',['Integer vector',13,'RS encode']],...
		'Mask Display','plot(0,0,100,100,x,y,v,w);Int RS en',...
		'Mask Type','Integer vector I/O RS encode')
set_param([sys,'/',['Integer vector',13,'RS encode']],...
		'Mask Dialogue','Reed-Solomon encode with integer input\nmessage vector length K and integer\noutput codeword vector length N.|Code length N=2^M-1 (M is a >=3 integer):|Message length K (< N):')
set_param([sys,'/',['Integer vector',13,'RS encode']],...
		'Mask Translate','n=@1;k=@2;if length(k)>1,pg=k;k=n-length(pg)-1;else,pg=rspoly(n,k);end;dim=3;p_dim=7;while p_dim<n,dim=dim+1;p_dim=2^dim-1;end;tp=gftuple([-1:n-1]'',dim);[x,y]=codeicon(1);[v,w]=trigicon(0,25,get_param(gcb,''orientation''));')
set_param([sys,'/',['Integer vector',13,'RS encode']],...
		'Mask Help','This block encodes length K integer vector message input into length N integer vector codeword output. The input/output integers are in range [0, N-1]. Code word length N=2^M-1, where M is a integer no less than 3. The message length is K<N. The error-correction capability is T=floor((N-K)/2). The block refreshes its decoding output when the enable signal at the second inport has positive value.')
set_param([sys,'/',['Integer vector',13,'RS encode']],...
		'Mask Entries','7\/5\/')


%     Finished composite block ['Integer vector',13,'RS encode'].

set_param([sys,'/',['Integer vector',13,'RS encode']],...
		'position',[35,53,115,97])


%     Subsystem  ['Integer vector',13,'RS decode'].

new_system([sys,'/',['Integer vector',13,'RS decode']])
set_param([sys,'/',['Integer vector',13,'RS decode']],'Location',[267,61,656,221])

add_block('built-in/Outport',[sys,'/',['Integer vector',13,'RS decode/out_1']])
set_param([sys,'/',['Integer vector',13,'RS decode/out_1']],...
		'position',[325,50,345,70])

add_block('built-in/S-Function',[sys,'/',['Integer vector',13,'RS decode/S-function']])
set_param([sys,'/',['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 vector',13,'RS decode/in_1']])
set_param([sys,'/',['Integer vector',13,'RS decode/in_1']],...
		'position',[20,15,40,35])

add_block('built-in/Inport',[sys,'/',['Integer vector',13,'RS decode/in_2']])
set_param([sys,'/',['Integer vector',13,'RS decode/in_2']],...
		'Port','2',...
		'position',[10,100,30,120])

add_block('built-in/Mux',[sys,'/',['Integer vector',13,'RS decode/Mux']])
set_param([sys,'/',['Integer vector',13,'RS decode/Mux']],...
		'inputs','2',...
		'position',[80,40,115,75])

add_block('built-in/Demux',[sys,'/',['Integer vector',13,'RS decode/Demux']])
set_param([sys,'/',['Integer vector',13,'RS decode/Demux']],...
		'outputs','[k, 1]',...
		'position',[260,50,300,85])

add_block('built-in/Outport',[sys,'/',['Integer vector',13,'RS decode/out_2']])
set_param([sys,'/',['Integer vector',13,'RS decode/out_2']],...
		'Port','2',...
		'position',[325,100,345,120])
add_line([sys,'/',['Integer vector',13,'RS decode']],[45,25;60,25;60,50;75,50])
add_line([sys,'/',['Integer vector',13,'RS decode']],[120,60;165,60])
add_line([sys,'/',['Integer vector',13,'RS decode']],[35,110;60,110;60,65;75,65])
add_line([sys,'/',['Integer vector',13,'RS decode']],[240,60;240,70;255,70])
add_line([sys,'/',['Integer vector',13,'RS decode']],[305,60;320,60])
add_line([sys,'/',['Integer vector',13,'RS decode']],[305,75;310,75;320,110])
set_param([sys,'/',['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 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 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 vector',13,'RS decode']],...
		'Mask Help','This block decodes length N integer vector codeword input into length K integer vector message output. The input/output integers are in the 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. If the codeword contains more errors than the correction capability, this output is negative.')
set_param([sys,'/',['Integer vector',13,'RS decode']],...
		'Mask Entries','7\/5\/')


%     Finished composite block ['Integer vector',13,'RS decode'].

set_param([sys,'/',['Integer vector',13,'RS decode']],...
		'position',[165,53,245,97])

add_block('built-in/Note',[sys,'/','Reed-Solomon Coding//Decoding Library'])
set_param([sys,'/','Reed-Solomon Coding//Decoding Library'],...
		'ForeGround',2,...
		'Font Weight','bold',...
		'Font Size',12,...
		'position',[200,10,205,15])


%     Subsystem  ['Integer sequence',13,'RS encode'].

new_system([sys,'/',['Integer sequence',13,'RS encode']])
set_param([sys,'/',['Integer sequence',13,'RS encode']],'Location',[15,70,755,245])


%     Subsystem  ['Integer sequence',13,'RS encode/Pulses deivide',13,'same sample time'].

new_system([sys,'/',['Integer sequence',13,'RS encode/Pulses deivide',13,'same sample time']])
set_param([sys,'/',['Integer sequence',13,'RS encode/Pulses deivide',13,'same sample time']],'Location',[55,192,283,286])

add_block('built-in/Outport',[sys,'/',['Integer sequence',13,'RS encode/Pulses deivide',13,'same sample time/Outport']])
set_param([sys,'/',['Integer sequence',13,'RS encode/Pulses deivide',13,'same sample time/Outport']],...
		'position',[160,35,180,55])

add_block('built-in/S-Function',[sys,'/',['Integer sequence',13,'RS encode/Pulses deivide',13,'same sample time/S-function1']])
set_param([sys,'/',['Integer sequence',13,'RS encode/Pulses deivide',13,'same sample time/S-function1']],...
		'function name','homopuls',...

⌨️ 快捷键说明

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