📄 com_ddmo.m
字号:
add_block('built-in/Sum',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/Sum']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/Sum']],...
'position',[195,30,215,50])
add_block('built-in/Fcn',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/module']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/module']],...
'Expr','rem(u[1],modu)',...
'position',[235,29,325,51])
add_block('built-in/Inport',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/in_1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/in_1']],...
'position',[15,25,35,45])
add_block('built-in/Discrete Transfer Fcn',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/Dis. Transfer Fcn']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator/Dis. Transfer Fcn']],...
'Numerator','ts(1)',...
'Denominator','1',...
'Sample time','ts',...
'position',[90,17,135,53])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],[400,40;410,40;410,90;175,90;175,45;190,45])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],[410,40;440,40])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],[330,40;340,40])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],[220,40;230,40])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],[40,35;85,35])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],[140,35;190,35])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],...
'Mask Display','discrete\nmod-int',...
'Mask Type','Module Integrator')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],...
'Mask Dialogue','Module the given number when state exceed limit|Module bound:|Initial value:|Sample time:')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],...
'Mask Translate','init=@2; modu=@1;ts=@3;')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],...
'Mask Help','The absolute value of this integrator will not exceed the specified module bound. The state value is set to be zero when the module bound is reached. This block can only be used for scale value calculation.')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],...
'Mask Entries','1\/0\/ts\/')
% Finished composite block ['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator'].
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Dis module',13,'integrator']],...
'orientation',2,...
'position',[365,105,425,145])
add_block('built-in/Constant',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Carrier',13,'frequency']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Carrier',13,'frequency']],...
'orientation',2,...
'Value','Fc',...
'position',[510,165,530,185])
add_block('built-in/Product',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Product1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Product1']],...
'orientation',2,...
'position',[610,110,640,130])
add_block('built-in/Filter',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Filter2']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Filter2']],...
'orientation',2,...
'Numerator','num',...
'Denominator','den',...
'Sample time','ts',...
'position',[535,100,595,140])
add_block('built-in/Sum',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Sum']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Sum']],...
'orientation',2,...
'position',[440,115,460,135])
add_block('built-in/Gain',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Gain1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Gain1']],...
'orientation',2,...
'Gain','pi2',...
'position',[310,110,340,140])
add_block('built-in/Constant',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Carrier',13,'frequency1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Carrier',13,'frequency1']],...
'orientation',2,...
'Value','Ph',...
'position',[320,175,340,195])
add_block('built-in/Sum',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Sum1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Sum1']],...
'orientation',2,...
'position',[265,120,285,140])
add_block('built-in/Product',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Product2']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Product2']],...
'position',[125,215,150,235])
add_block('built-in/Fcn',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/sin1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/sin1']],...
'orientation',2,...
'Expr','-2*sin(u[1])',...
'position',[115,167,220,193])
add_block('built-in/Product',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Product']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Product']],...
'position',[125,50,150,70])
add_block('built-in/Inport',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/in_1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/in_1']],...
'position',[45,45,65,65])
add_block('built-in/Note',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Ref: Hambley: An Intro to Comm. Systems. pp69']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Ref: Hambley: An Intro to Comm. Systems. pp69']],...
'position',[260,350,265,355])
add_block('built-in/Fcn',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/sin']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/sin']],...
'orientation',2,...
'Expr','2*cos(u[1])',...
'position',[125,118,210,142])
add_block('built-in/Filter',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Filter']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Filter']],...
'Numerator','num',...
'Denominator','den',...
'Sample time','ts',...
'position',[340,41,395,79])
add_block('built-in/Filter',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Filter1']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/Filter1']],...
'Numerator','num',...
'Denominator','den',...
'Sample time','ts',...
'position',[425,206,480,244])
add_block('built-in/Outport',[sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/In-phase',13,'output']])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband/In-phase',13,'output']],...
'position',[695,50,715,70])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[260,130;215,130])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[240,130;240,180;225,180])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[530,120;465,120])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[155,60;335,60])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[120,130;105,130;105,65;120,65])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[505,175;480,175;480,130;465,130])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[435,125;430,125])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[605,120;600,120])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[110,180;105,180;105,220;120,220])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[70,55;120,55])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[90,55;90,230;120,230])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[155,225;420,225])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[485,225;655,225;645,125])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[360,125;345,125])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[305,125;290,125])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[315,185;300,185;290,135])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[400,60;690,60])
add_line([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],[655,60;645,115])
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],...
'Mask Display','plot(0,0,100,100,x,y);DSB ADM',...
'Mask Type','Passband DSB-SC ADM')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],...
'Mask Dialogue','Demodulate a DSB-SC AM modulated signal.|Carrier frequency (Hz):|Lowpass filter numerator:|Lowpass filter denominator:|Initial phase (rad):|Sample time (sec):')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],...
'Mask Translate','Fc=@1;num=@2;den=@3;Ph=@4;pi2=pi*2;ts=@5;[x,y]=moduicon(2);')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],...
'Mask Help','This block demodulates a DSB-SC-AM modulated signal using Costas phase-locked loop method. This block uses a discrete-time lowpass filter that passes the signal message and eliminates the carrier signal. ')
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],...
'Mask Entries','Fc\/num\/den\/Ph\/ts\/')
% Finished composite block ['MASK demod/DSB-SC-ADM',13,'passband'].
set_param([sys,'/',['MASK demod/DSB-SC-ADM',13,'passband']],...
'ForeGround',4,...
'position',[90,18,170,62])
% Subsystem 'MASK demod/MASK demap'.
new_system([sys,'/','MASK demod/MASK demap'])
set_param([sys,'/','MASK demod/MASK demap'],'Location',[187,342,628,482])
add_block('built-in/Zero-Order Hold',[sys,'/',['MASK demod/MASK demap/Zero-Order',13,'Hold']])
set_param([sys,'/',['MASK demod/MASK demap/Zero-Order',13,'Hold']],...
'Sample time','td',...
'position',[85,29,120,61])
add_block('built-in/Constant',[sys,'/','MASK demod/MASK demap/Shift key'])
set_param([sys,'/','MASK demod/MASK demap/Shift key'],...
'Value','sft',...
'position',[115,93,135,117])
add_block('built-in/Sum',[sys,'/','MASK demod/MASK demap/Sum2'])
set_param([sys,'/','MASK demod/MASK demap/Sum2'],...
'inputs','+-',...
'position',[180,38,200,67])
add_block('built-in/Abs',[sys,'/','MASK demod/MASK demap/Abs'])
set_param([sys,'/','MASK demod/MASK demap/Abs'],...
'position',[235,42,270,68])
add_block('built-in/Outport',[sys,'/','MASK demod/MASK demap/out_1'])
set_param([sys,'/','MASK demod/MASK demap/out_1'],...
'position',[400,45,420,65])
add_block('built-in/S-Function',[sys,'/','MASK demod/MASK demap/Minimum'])
set_param([sys,'/','MASK demod/MASK demap/Minimum'],...
'function name','arymimai',...
'parameters','''min''',...
'position',[315,45,370,65])
add_block('built-in/Inport',[sys,'/','MASK demod/MASK demap/in_1'])
set_param([sys,'/','MASK demod/MASK demap/in_1'],...
'position',[30,35,50,55])
add_line([sys,'/','MASK demod/MASK demap'],[55,45;80,45])
add_line([sys,'/','MASK demod/MASK demap'],[275,55;310,55])
add_line([sys,'/','MASK demod/MASK demap'],[125,45;175,45])
add_line([sys,'/','MASK demod/MASK demap'],[375,55;395,55])
add_line([sys,'/','MASK demod/MASK demap'],[140,105;155,105;155,60;175,60])
add_line([sys,'/','MASK demod/MASK demap'],[205,55;230,55])
set_param([sys,'/','MASK demod/MASK demap'],...
'Mask Display','MASK\ndemap',...
'Mask Type','MASK demap')
set_param([sys,'/','MASK demod/MASK demap'],...
'Mask Dialogue','Reverse the MASK mapping process\nConvert [-1 1] analog signal to [0, M-1] symbols.|M-ary number (digit integers in ranger [0, M-1]):|Output symbol interval and offset (sec):')
set_param([sys,'/','MASK demod/MASK demap'],...
'Mask Translate','N=@1;Ac=1;sft=[0:N-1]*Ac*2/(N-1)-Ac;td=@2;')
set_param([sys,'/','MASK demod/MASK demap'],...
'Mask Help','This block demaps a MASK mapped signal back to digit symbols. You can place this block after a amplitude demodulation block. The input of this block is an analog signal in the range [-1, 1]. The demodulation decides the closest integer fitting in [0,M-1] range. When the input symbol interval is a two-elements vector, the second element is offset. The default offset value is 0.')
set_param([sys,'/','MASK demod/MASK demap'],...
'Mask Entries','M\/td\/')
% Finished composite block 'MASK demod/MASK demap'.
set_param([sys,'/','MASK demod/MASK demap'],...
'position',[215,18,295,62])
add_line([sys,'/','MASK demod'],[300,40;355,40])
add_line([sys,'/','MASK demod'],[175,40;210,40])
add_line([sys,'/','MASK demod'],[55,40;85,40])
set_param([sys,'/','MASK demod'],...
'Mask Display','plot(0,0,100,100,x,y);MASK',...
'Mask Type','Passband MASK demodulation')
set_param([sys,'/','MASK demod'],...
'Mask Dialogue','Demodulate a MASK modulated signal.|M-ary number (output integer in range [0, M-1]):|Symbol interval (sec):|Carrier Frequency (Hz):|Initial phase (rad):|Sample time (sec):')
set_param([sys,'/','MASK demod'],...
'Mask Translate','M=@1;td=@2;Fc=@3;Ph=@4;ts=@5;[num,den]=butter(5,Fc*2*ts);[x,y]=moduicon(6);')
set_param([sys,'/','MASK demod'],...
'Mask Help','This block demodulates a MASK modulated signal. The output signals are digits in range [0, M-1]. When the symbol interval is a two element vector, the second element is the offset (default 0). A default lowpass filter is used in the demodulation, which is [num, den]=butter(5, Fc*2*ts). Ungroup this block to specify the numerator and denominator of the lowpass filter.')
set_param([sys,'/','MASK demod'],...
'Mask Entries','8\/.1\/100/2/pi\/0\/.01\/')
% Finished composite block 'MASK demod'.
set_param([sys,'/','MASK demod'],...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -