📄 tddmmpsk.m
字号:
'inputs','+++',...
'position',[280,57,300,93])
add_block('built-in/Gain',[sys,'/',['MPSK mod/PM',13,'passband/Gain']])
set_param([sys,'/',['MPSK mod/PM',13,'passband/Gain']],...
'Gain','Fc',...
'position',[80,60,120,90])
add_block('built-in/Zero-Order Hold',[sys,'/',['MPSK mod/PM',13,'passband/Zero-Order',13,'Hold']])
set_param([sys,'/',['MPSK mod/PM',13,'passband/Zero-Order',13,'Hold']],...
'Sample time','td',...
'position',[150,94,185,126])
add_block('built-in/Constant',[sys,'/',['MPSK mod/PM',13,'passband/Initial value']])
set_param([sys,'/',['MPSK mod/PM',13,'passband/Initial value']],...
'Value','Ph',...
'position',[220,120,240,140])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[405,75;440,75])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[245,130;255,130;255,85;275,85])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[305,75;320,75])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[175,20;255,20;255,65;275,65])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[65,75;75,75])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[250,75;275,75])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[125,75;165,75;165,65;215,65])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[190,110;195,110;195,80;215,80])
add_line([sys,'/',['MPSK mod/PM',13,'passband']],[125,75;130,75;130,110;145,110])
set_param([sys,'/',['MPSK mod/PM',13,'passband']],...
'Mask Display','plot(0,0,100,100,x,y);PM',...
'Mask Type','Passband PM')
set_param([sys,'/',['MPSK mod/PM',13,'passband']],...
'Mask Dialogue','Modulate the input signal using PM method.|Carrier frequency (Hz):|Initial phase (rad):|Symbol interval (sec, Use inf for analog case):')
set_param([sys,'/',['MPSK mod/PM',13,'passband']],...
'Mask Translate','Fc=@1*2*pi;Ph=@2;td=@3;if isinf(td),td=inf;end;[x,y]=moduicon(3);')
set_param([sys,'/',['MPSK mod/PM',13,'passband']],...
'Mask Help','The PM block causes the change of the carrier signal depending on the input signal voltage.',...
'Mask Entries','Fc\/Ph\/td\/')
% Finished composite block ['MPSK mod/PM',13,'passband'].
set_param([sys,'/',['MPSK mod/PM',13,'passband']],...
'ForeGround',4,...
'hide name',0,...
'position',[165,53,245,97])
add_block('built-in/Outport',[sys,'/','MPSK mod/out_1'])
set_param([sys,'/','MPSK mod/out_1'],...
'hide name',0,...
'position',[275,65,295,85])
add_block('built-in/Inport',[sys,'/','MPSK mod/in_1'])
set_param([sys,'/','MPSK mod/in_1'],...
'hide name',0,...
'position',[10,65,30,85])
add_line([sys,'/','MPSK mod'],[145,75;160,75])
add_line([sys,'/','MPSK mod'],[250,75;270,75])
add_line([sys,'/','MPSK mod'],[35,75;55,75])
set_param([sys,'/','MPSK mod'],...
'Mask Display','plot(0,0,100,100,x,y);MPSK',...
'Mask Type','Passband MPSK modulation')
set_param([sys,'/','MPSK mod'],...
'Mask Dialogue','Modulate the input signal using\nM-ary phase shift keying method.|M-ary number (input integer in range [0, M-1]):|Symbol interval (sec):|Carrier frequency (Hz):|Initial phase (rad):|Sample frequency (sec):')
set_param([sys,'/','MPSK mod'],...
'Mask Translate','M=@1;td=@2;Fc=@3;Ph=@4;ts=@5;[x,y]=moduicon(7);')
set_param([sys,'/','MPSK mod'],...
'Mask Help','This block modulates a digital signal with a given carrier frequency using MPSK method. The inputs are integers in the range [0, M-1], where M is the M-ary number. When the symbol interval is a two element vector, the second element is the offset (default 0). The block keeps the input value at the offset time point for the entire interval.')
set_param([sys,'/','MPSK mod'],...
'Mask Entries','M\/td\/Fc\/0\/ts\/')
% Finished composite block 'MPSK mod'.
set_param([sys,'/','MPSK mod'],...
'hide name',0,...
'position',[160,63,240,107])
% Subsystem 'MPSK demod'.
new_system([sys,'/','MPSK demod'])
set_param([sys,'/','MPSK demod'],'Location',[642,398,976,562])
% Subsystem ['MPSK demod/MPSK demod',13,'corr passband'].
new_system([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],'Location',[269,223,837,414])
add_block('built-in/Gain',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Gain']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Gain']],...
'Gain','Fc',...
'position',[65,85,105,115])
add_block('built-in/Zero-Order Hold',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Zero-Order',13,'Hold']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Zero-Order',13,'Hold']],...
'Sample time','td',...
'position',[125,119,160,151])
add_block('built-in/Clock',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Clock']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Clock']],...
'position',[15,90,35,110])
add_block('built-in/Sum',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Sum2']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Sum2']],...
'inputs','+-',...
'position',[185,90,210,125])
add_block('built-in/Sum',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Sum1']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Sum1']],...
'inputs','+++',...
'position',[240,40,265,80])
add_block('built-in/Constant',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Initial phase']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Initial phase']],...
'Value','Ph',...
'position',[165,48,185,72])
add_block('built-in/S-Function',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Array sin']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Array sin']],...
'function name','arysin',...
'parameters','''cos''',...
'position',[295,50,345,70])
add_block('built-in/Inport',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/in_1']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/in_1']],...
'position',[305,100,325,120])
add_block('built-in/Product',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Product']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Product']],...
'position',[385,51,410,84])
add_block('built-in/S-Function',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Scheduled',13,'reset-int1']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Scheduled',13,'reset-int1']],...
'function name','schdint',...
'parameters','td, ts, limit',...
'Mask Display','Schdld\nreset-int',...
'Mask Type','Scheduled reset integration.')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Scheduled',13,'reset-int1']],...
'Mask Dialogue','Reset the state to be zero(s) at the scheduled reset point.|Scheduled reset time inteval and offset:|Sample time and offset:|Modulo bound:')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Scheduled',13,'reset-int1']],...
'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Scheduled',13,'reset-int1']],...
'Mask Help','This block resets the state(s) to be zero(s) at the begining of reset time inteval. The reset inteval can be a two elements vector with the second element being offset.')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Scheduled',13,'reset-int1']],...
'Mask Entries','td\/ts\/Inf\/',...
'position',[440,49,500,91])
add_block('built-in/Outport',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/out_1']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/out_1']],...
'position',[525,60,545,80])
add_block('built-in/Constant',[sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Shift key']])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband/Shift key']],...
'Value','sft',...
'position',[115,13,135,37])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[330,110;360,110;360,75;380,75])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[350,60;380,60])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[165,135;165,115;180,115])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[110,100;120,135])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[110,100;180,100])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[215,110;225,110;235,75])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[40,100;60,100])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[190,60;235,60])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[140,25;225,25;235,45])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[270,60;290,60])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[415,70;435,70])
add_line([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],[505,70;520,70])
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],...
'Mask Display','MPSK\ndm corr',...
'Mask Type','Passband coherent MPSK correlation')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],...
'Mask Dialogue','Compute MPSK correlation. Take MPSK\nmodulated signal. Output a vector of\ncorrelation result.|M-ary number (integer in range [0, M-1]):|Symbol interval and offset (sec):|Carrier frequency (Hz):|Initial phase (rad):|Sample time (sec):')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],...
'Mask Translate','pi2=2*pi;N=@1;sft=[0:N-1]*pi2/N;td=@2;Fc=@3*pi2;Ph=@4;ts=@5;')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],...
'Mask Help','This block calculates the correlation value of the input signal with a vector of sinusoidal signals. These sinusoidal signals have their phase shift the same as that of PM modulated signal of possible resulting digits. The output is an M length vector. M is the M-ary number. The MPSK demodulation result is the index of the largest output, using the Min/max demap block.')
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],...
'Mask Entries','M\/td\/Fc\/Ph\/ts\/')
% Finished composite block ['MPSK demod/MPSK demod',13,'corr passband'].
set_param([sys,'/',['MPSK demod/MPSK demod',13,'corr passband']],...
'position',[60,53,140,97])
% Subsystem 'MPSK demod/Min//max index2'.
new_system([sys,'/','MPSK demod/Min//max index2'])
set_param([sys,'/','MPSK demod/Min//max index2'],'Location',[192,461,623,564])
add_block('built-in/S-Function',[sys,'/','MPSK demod/Min//max index2/Maximum'])
set_param([sys,'/','MPSK demod/Min//max index2/Maximum'],...
'function name','arymimai',...
'parameters','mima',...
'position',[240,20,320,40])
add_block('built-in/Outport',[sys,'/','MPSK demod/Min//max index2/out_1'])
set_param([sys,'/','MPSK demod/Min//max index2/out_1'],...
'position',[335,20,355,40])
add_block('built-in/Zero-Order Hold',[sys,'/',['MPSK demod/Min//max index2/Zero-Order',13,'Hold']])
set_param([sys,'/',['MPSK demod/Min//max index2/Zero-Order',13,'Hold']],...
'Sample time','td',...
'position',[165,14,200,46])
add_block('built-in/Inport',[sys,'/','MPSK demod/Min//max index2/in_1'])
set_param([sys,'/','MPSK demod/Min//max index2/in_1'],...
'position',[65,20,85,40])
add_line([sys,'/','MPSK demod/Min//max index2'],[205,30;235,30])
add_line([sys,'/','MPSK demod/Min//max index2'],[325,30;330,30])
add_line([sys,'/','MPSK demod/Min//max index2'],[90,30;160,30])
set_param([sys,'/','MPSK demod/Min//max index2'],...
'Mask Display','Min/Max\ndemap',...
'Mask Type','Maximum/minimum index.')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -