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

📄 tsttrans.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 2 页
字号:
add_block('built-in/Outport',[sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down/out_1']])
set_param([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down/out_1']],...
            'position',[390,60,410,80])
add_line([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],[90,95;105,95])
add_line([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],[335,90;350,90])
add_line([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],[65,80;105,80])
add_line([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],[335,70;385,70])
add_line([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],[40,65;105,65])
add_line([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],[145,80;180,80])
add_line([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],[240,80;285,80])
set_param([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],...
            'Mask Display','Triggered\nbuffer dn',...
               'Mask Type','Triggered buffer down.')
set_param([sys,'/',['Change',13,'sample rate/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,'/',['Change',13,'sample rate/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,'/',['Change',13,'sample rate/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,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],...
               'Mask Entries','si*so\/0\/si\/.1\/1\/')


%     Finished composite block ['Change',13,'sample rate/Triggered',13,'buffer down'].

set_param([sys,'/',['Change',13,'sample rate/Triggered',13,'buffer down']],...
             'position',[420,43,480,87])

add_block('built-in/Outport',[sys,'/',['Change',13,'sample rate/out_1']])
set_param([sys,'/',['Change',13,'sample rate/out_1']],...
           'position',[520,45,540,65])


%     Subsystem  ['Change',13,'sample rate/Register-shift'].

new_system([sys,'/',['Change',13,'sample rate/Register-shift']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift']],'Location',[19,610,374,740])

add_block('built-in/Demux',[sys,'/',['Change',13,'sample rate/Register-shift/Demux']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift/Demux']],...
                'outputs','[len_rg, 1]',...
             'position',[260,55,300,90])

add_block('built-in/S-Function',[sys,'/',['Change',13,'sample rate/Register-shift/S-function']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift/S-function']],...
                'function name','regshift',...
          'parameters','shft_out, thrhld',...
             'position',[150,65,200,85])

add_block('built-in/Mux',[sys,'/',['Change',13,'sample rate/Register-shift/Mux']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift/Mux']],...
             'inputs','2',...
                'position',[80,56,115,89])

add_block('built-in/Outport',[sys,'/',['Change',13,'sample rate/Register-shift/out_1']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift/out_1']],...
              'position',[330,55,350,75])

add_block('built-in/Outport',[sys,'/',['Change',13,'sample rate/Register-shift/out_2']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift/out_2']],...
             'Port','2',...
          'position',[330,70,350,90])

add_block('built-in/Inport',[sys,'/',['Change',13,'sample rate/Register-shift/in_1']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift/in_1']],...
                'position',[30,55,50,75])

add_block('built-in/Inport',[sys,'/',['Change',13,'sample rate/Register-shift/in_2']])
set_param([sys,'/',['Change',13,'sample rate/Register-shift/in_2']],...
          'Port','2',...
          'position',[30,70,50,90])
add_line([sys,'/',['Change',13,'sample rate/Register-shift']],[120,75;145,75])
add_line([sys,'/',['Change',13,'sample rate/Register-shift']],[205,75;255,75])
add_line([sys,'/',['Change',13,'sample rate/Register-shift']],[305,65;325,65])
add_line([sys,'/',['Change',13,'sample rate/Register-shift']],[305,80;325,80])
add_line([sys,'/',['Change',13,'sample rate/Register-shift']],[55,65;75,65])
add_line([sys,'/',['Change',13,'sample rate/Register-shift']],[55,80;75,80])
set_param([sys,'/',['Change',13,'sample rate/Register-shift']],...
             'Mask Display','Store\nShift',...
               'Mask Type','Register-shift')
set_param([sys,'/',['Change',13,'sample rate/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,'/',['Change',13,'sample rate/Register-shift']],...
          'Mask Translate','shft_out=@1; thrhld=@2; len_rg=length(@1);')
set_param([sys,'/',['Change',13,'sample rate/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,'/',['Change',13,'sample rate/Register-shift']],...
          'Mask Entries','[si-1:-1:0]\/.1\/')


%     Finished composite block ['Change',13,'sample rate/Register-shift'].

set_param([sys,'/',['Change',13,'sample rate/Register-shift']],...
         'position',[210,41,265,74])

add_block('built-in/Inport',[sys,'/',['Change',13,'sample rate/in_1']])
set_param([sys,'/',['Change',13,'sample rate/in_1']],...
              'position',[110,40,130,60])


%     Subsystem  ['Change',13,'sample rate/Pulses deivide',13,'same sample time'].

new_system([sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time']])
set_param([sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time']],'Location',[55,192,283,286])

add_block('built-in/S-Function',[sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time/S-function1']])
set_param([sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time/S-function1']],...
         'function name','homopuls',...
          'parameters','samp_time, out_divid, offset',...
         'position',[40,31,105,59])

add_block('built-in/Outport',[sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time/Outport']])
set_param([sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time/Outport']],...
              'position',[160,35,180,55])
add_line([sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time']],[110,45;155,45])
set_param([sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time']],...
         'Mask Display','Vector\nPulse',...
              'Mask Type','Pulse generator')
set_param([sys,'/',['Change',13,'sample rate/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,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time']],...
                'Mask Translate','samp_time=@1;out_divid=@2;offset=@3;')
set_param([sys,'/',['Change',13,'sample rate/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,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time']],...
            'Mask Entries','samp\/[si, so]\/[0 0]\/')


%     Finished composite block ['Change',13,'sample rate/Pulses deivide',13,'same sample time'].

set_param([sys,'/',['Change',13,'sample rate/Pulses deivide',13,'same sample time']],...
               'position',[35,81,95,119])

add_block('built-in/Demux',[sys,'/',['Change',13,'sample rate/Demux']])
set_param([sys,'/',['Change',13,'sample rate/Demux']],...
              'outputs','2',...
               'position',[120,80,160,115])
add_line([sys,'/',['Change',13,'sample rate']],[270,50;270,30;310,30])
add_line([sys,'/',['Change',13,'sample rate']],[380,30;385,30;385,50;415,50])
add_line([sys,'/',['Change',13,'sample rate']],[165,105;390,105;390,80;415,80])
add_line([sys,'/',['Change',13,'sample rate']],[270,65;415,65])
add_line([sys,'/',['Change',13,'sample rate']],[165,90;185,90;185,65;205,65])
add_line([sys,'/',['Change',13,'sample rate']],[100,100;115,100])
add_line([sys,'/',['Change',13,'sample rate']],[135,50;205,50])
add_line([sys,'/',['Change',13,'sample rate']],[485,55;515,55])
set_param([sys,'/',['Change',13,'sample rate']],...
            'Mask Display','Sample\nrate\ntransmiter',...
           'Mask Type','Sample-time transmitter')
set_param([sys,'/',['Change',13,'sample rate']],...
               'Mask Dialogue','Generate different sample rate from input signal.|Common sample time:|input divider (integer):|output divider (integer):')
set_param([sys,'/',['Change',13,'sample rate']],...
          'Mask Translate','samp=@1; si=@2; so=@3; d=eye(si); x=ones(so,1)*[1:si];x=x(:);d=d(:,x)'';')
set_param([sys,'/',['Change',13,'sample rate']],...
         'Mask Help','Provided the input signal with sample time being global_sample_time/input_divider, this block outputs a changed sample rate over the input signal at sample time being global_sample_time/output_divider. Bother input_divider and output_divider must be integer. This block causes a delay of common_sample_time. When output_divider<input_divider, the down sample case, a lowpass filter is suggested placing before the transmitter.')
set_param([sys,'/',['Change',13,'sample rate']],...
            'Mask Entries','.1\/3\/15\/')


%     Finished composite block ['Change',13,'sample rate'].

set_param([sys,'/',['Change',13,'sample rate']],...
             'position',[200,33,265,77])

add_block('built-in/Note',[sys,'/',['           T=[0:.1:100]//3;T=T(:);U=rand(length(T),1)*2;',13,'num=10;den=[1,1.4,10];                 ',13,'[num1,den1]=c2dm(num,den,.1//3);  ',13,'[num2,den2]=c2dm(num,den,.1//15);']])
set_param([sys,'/',['           T=[0:.1:100]//3;T=T(:);U=rand(length(T),1)*2;',13,'num=10;den=[1,1.4,10];                 ',13,'[num1,den1]=c2dm(num,den,.1//3);  ',13,'[num2,den2]=c2dm(num,den,.1//15);']],...
                'position',[175,210,180,215])

add_block('built-in/Note',[sys,'/','The data are prepared as follows:'])
set_param([sys,'/','The data are prepared as follows:'],...
                'position',[170,190,175,195])
add_line(sys,[105,55;195,55])
add_line(sys,[270,55;310,55])
add_line(sys,[160,55;160,125;190,125])
add_line(sys,[485,80;500,80])
add_line(sys,[375,55;395,55;395,70;440,70])
add_line(sys,[470,170;490,170])
add_line(sys,[270,125;395,125;395,85;440,85])
add_line(sys,[270,55;280,55;280,160;425,160])
add_line(sys,[160,125;160,175;425,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 + -