📄 com_momp.m
字号:
add_block('built-in/Outport',[sys,'/',['QASK',13,'arbitrary-map/Real']])
set_param([sys,'/',['QASK',13,'arbitrary-map/Real']],...
'position',[275,20,295,40])
add_block('built-in/Outport',[sys,'/',['QASK',13,'arbitrary-map/Imag']])
set_param([sys,'/',['QASK',13,'arbitrary-map/Imag']],...
'Port','2',...
'position',[275,100,295,120])
add_line([sys,'/',['QASK',13,'arbitrary-map']],[50,30;75,30])
add_line([sys,'/',['QASK',13,'arbitrary-map']],[120,30;175,30])
add_line([sys,'/',['QASK',13,'arbitrary-map']],[145,30;145,110;170,110])
add_line([sys,'/',['QASK',13,'arbitrary-map']],[220,30;270,30])
add_line([sys,'/',['QASK',13,'arbitrary-map']],[215,110;270,110])
set_param([sys,'/',['QASK',13,'arbitrary-map']],...
'Mask Display','QASK\nA-map',...
'Mask Type','QASK A-map')
set_param([sys,'/',['QASK',13,'arbitrary-map']],...
'Mask Dialogue','QASK mapping for arbitrary defined\nmap. Assume input digit is K. 1st\noutport outputs in-phase(K+1). 2nd\noutport outputs quadrature(K+1).|Constellation for in-phase component:|Constellation for quadrature component:|Symbol interval and offset (sec):')
set_param([sys,'/',['QASK',13,'arbitrary-map']],...
'Mask Translate','y1=@1;y2=@2;td=@3;ly=length(y1);x=[-10 1:ly-1;1:ly-1 10*ly]-.5;x=x(:);y1=y1(:)'';y1=[y1;y1];y1=y1(:);y2=y2(:)'';y2=[y2;y2];y2=y2(:);')
set_param([sys,'/',['QASK',13,'arbitrary-map']],...
'Mask Help','This block maps a digital signal onto in-phase and quadratic components, which are outputs in the first and second output port respectively. The in-phase and quadrature constellation vectors must have the same length, which equals to M, the M-ary number of the QASK. The input signal is in the range of [0, M-1]. The symbol interval can be a two elements vector with the first element being offset. The default offset is zero.')
set_param([sys,'/',['QASK',13,'arbitrary-map']],...
'Mask Entries','real(exp(j*[0:M-1]/M*pi*2))\/imag(exp(j*[0:M-1]/M*pi*2))\/td\/')
% Finished composite block ['QASK',13,'arbitrary-map'].
set_param([sys,'/',['QASK',13,'arbitrary-map']],...
'position',[30,268,110,312])
% Subsystem ['FM',13,'baseband'].
new_system([sys,'/',['FM',13,'baseband']])
set_param([sys,'/',['FM',13,'baseband']],'Location',[55,571,668,718])
add_block('built-in/Constant',[sys,'/',['FM',13,'baseband/Constant']])
set_param([sys,'/',['FM',13,'baseband/Constant']],...
'Value','Ph',...
'position',[180,90,205,110])
add_block('built-in/Sum',[sys,'/',['FM',13,'baseband/Sum']])
set_param([sys,'/',['FM',13,'baseband/Sum']],...
'position',[265,30,285,50])
add_block('built-in/Inport',[sys,'/',['FM',13,'baseband/in_1']])
set_param([sys,'/',['FM',13,'baseband/in_1']],...
'position',[35,25,55,45])
add_block('built-in/Fcn',[sys,'/',['FM',13,'baseband/cos']])
set_param([sys,'/',['FM',13,'baseband/cos']],...
'Expr','cos(u)',...
'position',[330,26,385,54])
add_block('built-in/Fcn',[sys,'/',['FM',13,'baseband/sin']])
set_param([sys,'/',['FM',13,'baseband/sin']],...
'Expr','sin(u)',...
'position',[330,86,385,114])
add_block('built-in/Mux',[sys,'/',['FM',13,'baseband/Mux']])
set_param([sys,'/',['FM',13,'baseband/Mux']],...
'inputs','2',...
'position',[415,31,450,64])
add_block('built-in/Outport',[sys,'/',['FM',13,'baseband/out_1']])
set_param([sys,'/',['FM',13,'baseband/out_1']],...
'position',[550,40,570,60])
add_block('built-in/Gain',[sys,'/',['FM',13,'baseband/Sensitivity']])
set_param([sys,'/',['FM',13,'baseband/Sensitivity']],...
'Gain','pi2',...
'position',[80,25,120,55])
add_block('built-in/S-Function',[sys,'/',['FM',13,'baseband/Scheduled',13,'reset-int']])
set_param([sys,'/',['FM',13,'baseband/Scheduled',13,'reset-int']],...
'function name','schdint',...
'parameters','td, ts, limit',...
'Mask Display','Schdld\nreset-int',...
'Mask Type','Scheduled reset integration.')
set_param([sys,'/',['FM',13,'baseband/Scheduled',13,'reset-int']],...
'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,'/',['FM',13,'baseband/Scheduled',13,'reset-int']],...
'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['FM',13,'baseband/Scheduled',13,'reset-int']],...
'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,'/',['FM',13,'baseband/Scheduled',13,'reset-int']],...
'Mask Entries','td\/ts\/pi2\/',...
'position',[155,14,215,56])
add_line([sys,'/',['FM',13,'baseband']],[290,40;325,40])
add_line([sys,'/',['FM',13,'baseband']],[300,40;300,100;325,100])
add_line([sys,'/',['FM',13,'baseband']],[210,100;250,100;260,45])
add_line([sys,'/',['FM',13,'baseband']],[220,35;260,35])
add_line([sys,'/',['FM',13,'baseband']],[390,40;410,40])
add_line([sys,'/',['FM',13,'baseband']],[455,50;545,50])
add_line([sys,'/',['FM',13,'baseband']],[390,100;395,100;395,55;410,55])
add_line([sys,'/',['FM',13,'baseband']],[60,35;60,40;75,40])
add_line([sys,'/',['FM',13,'baseband']],[125,40;150,35])
set_param([sys,'/',['FM',13,'baseband']],...
'Mask Display','plot(0,0,100,100,x,y,u,v);FM',...
'Mask Type','FM CE')
set_param([sys,'/',['FM',13,'baseband']],...
'Mask Dialogue','Output the complex envelope of the FM signal.|Initial phase (rad):|Sample time (second):|Symbol interval (for digital mod, use Inf for analog mod):')
set_param([sys,'/',['FM',13,'baseband']],...
'Mask Translate','Kc=2*pi;Ph=@1;pi2=2*pi;ts=@2;td=@3;if isinf(td),td=inf;end;[x,y]=moduicon(3);[u,v]=cmplxicn(1,50,get_param(gcb,''orientation''));')
set_param([sys,'/',['FM',13,'baseband']],...
'Mask Help','This block outputs the complex envelope of the frequency modulated signal. The output is a complex signal. This block resets the phase at the very beginning of the symbol interval. For continuous-time simulation, the symbol interval can be set as infinity.')
set_param([sys,'/',['FM',13,'baseband']],...
'Mask Entries','0\/.01\/Inf\/')
% Finished composite block ['FM',13,'baseband'].
set_param([sys,'/',['FM',13,'baseband']],...
'ForeGround',4,...
'position',[155,343,230,387])
% Subsystem 'MFSK map'.
new_system([sys,'/','MFSK map'])
set_param([sys,'/','MFSK map'],'Location',[90,420,407,543])
add_block('built-in/Zero-Order Hold',[sys,'/',['MFSK map/Zero-Order',13,'Hold1']])
set_param([sys,'/',['MFSK map/Zero-Order',13,'Hold1']],...
'Sample time','td',...
'position',[105,39,140,71])
add_block('built-in/Outport',[sys,'/','MFSK map/out_1'])
set_param([sys,'/','MFSK map/out_1'],...
'position',[260,45,280,65])
add_block('built-in/Gain',[sys,'/','MFSK map/Gain'])
set_param([sys,'/','MFSK map/Gain'],...
'Gain','Ton',...
'position',[175,38,225,72])
add_block('built-in/Inport',[sys,'/','MFSK map/in_1'])
set_param([sys,'/','MFSK map/in_1'],...
'position',[45,45,65,65])
add_line([sys,'/','MFSK map'],[145,55;170,55])
add_line([sys,'/','MFSK map'],[70,55;100,55])
add_line([sys,'/','MFSK map'],[230,55;255,55])
set_param([sys,'/','MFSK map'],...
'Mask Display','MFSK\nmap',...
'Mask Type','MFSK map')
set_param([sys,'/','MFSK map'],...
'Mask Dialogue','Map input digital signal to analog tone space for FM modulation. The tone space\nis the frequency distance between two \nconsective digit numbers.|Tone space (Hz):|Input symbol interval and offset (sec):')
set_param([sys,'/','MFSK map'],...
'Mask Translate','Ton=@1;td=@2;')
set_param([sys,'/','MFSK map'],...
'Mask Help','This block maps the input digital signal to the analog signal, which is ready for the FM modulation. The input are integers in the range [0, M-1], where M is the M-ary number. Tone space is the frequency separation between two consective digits for the input signal. After FM, the modulated signal has a frequency in the range of [Fc, Fc+B]. B is the bandwidth of the FSK, B=(M-1) * Tone_space.')
set_param([sys,'/','MFSK map'],...
'Mask Entries','M/td/5\/td\/')
% Finished composite block 'MFSK map'.
set_param([sys,'/','MFSK map'],...
'position',[30,343,110,387])
% Subsystem ['ASK Mo//Dem',13,'demo'].
new_system([sys,'/',['ASK Mo//Dem',13,'demo']])
set_param([sys,'/',['ASK Mo//Dem',13,'demo']],'Location',[175,552,335,697])
set_param([sys,'/',['ASK Mo//Dem',13,'demo']],...
'Mask Display','MASK\nmap\ndemo',...
'Mask Dialogue','eval(''ts=.02;[num,den]=butter(2,100/pi/2*ts);td=.1;M=8;tmpam2cd'')')
% Finished composite block ['ASK Mo//Dem',13,'demo'].
set_param([sys,'/',['ASK Mo//Dem',13,'demo']],...
'BackGround',7,...
'hide name',0,...
'position',[536,43,616,87])
% Subsystem ['PSK Mo//Dem',13,'demo'].
new_system([sys,'/',['PSK Mo//Dem',13,'demo']])
set_param([sys,'/',['PSK Mo//Dem',13,'demo']],'Location',[175,552,335,697])
set_param([sys,'/',['PSK Mo//Dem',13,'demo']],...
'Mask Display','MPSK\nmap\ndemo',...
'Mask Dialogue','eval(''ts=.01;td=.2;M=8;tmppk2cd'')')
% Finished composite block ['PSK Mo//Dem',13,'demo'].
set_param([sys,'/',['PSK Mo//Dem',13,'demo']],...
'BackGround',7,...
'hide name',0,...
'position',[536,493,616,537])
% Subsystem ['FSK Mo//Dem',13,'demo'].
new_system([sys,'/',['FSK Mo//Dem',13,'demo']])
set_param([sys,'/',['FSK Mo//Dem',13,'demo']],'Location',[175,552,335,697])
set_param([sys,'/',['FSK Mo//Dem',13,'demo']],...
'Mask Display','MFSK\nmap\ndemo',...
'Mask Dialogue','eval(''ts=.02;td=.2;M=8;tmpfs2cd'')')
% Finished composite block ['FSK Mo//Dem',13,'demo'].
set_param([sys,'/',['FSK Mo//Dem',13,'demo']],...
'BackGround',7,...
'hide name',0,...
'position',[536,343,616,387])
% Subsystem ['QASK Mo//Dem',13,'demo2'].
new_system([sys,'/',['QASK Mo//Dem',13,'demo2']])
set_param([sys,'/',['QASK Mo//Dem',13,'demo2']],'Location',[175,552,335,697])
set_param([sys,'/',['QASK Mo//Dem',13,'demo2']],...
'Mask Display','QASK\nA-map\ndemo',...
'Mask Dialogue','eval(''ts=.02;[num,den]=butter(3,100/pi/2*ts);td=.2;M=32;tmpps3cd'')')
% Finished composite block ['QASK Mo//Dem',13,'demo2'].
set_param([sys,'/',['QASK Mo//Dem',13,'demo2']],...
'BackGround',7,...
'hide name',0,...
'position',[536,268,616,312])
% Subsystem ['QASK Mo//Dem',13,'demo1'].
new_system([sys,'/',['QASK Mo//Dem',13,'demo1']])
set_param([sys,'/',['QASK Mo//Dem',13,'demo1']],'Location',[175,552,335,697])
set_param([sys,'/',['QASK Mo//Dem',13,'demo1']],...
'Mask Display','QASK\nC-map\ndemo',...
'Mask Dialogue','eval(''ts=.02;[num,den]=butter(3,100/pi/2*ts);td=.2;M=128;tmpps2cd'')')
% Finished composite block ['QASK Mo//Dem',13,'demo1'].
set_param([sys,'/',['QASK Mo//Dem',13,'demo1']],...
'BackGround',7,...
'hide name',0,...
'position',[536,193,616,237])
% Subsystem ['QASK Mo//Dem',13,'demo'].
new_system([sys,'/',['QASK Mo//Dem',13,'demo']])
set_param([sys,'/',['QASK Mo//Dem',13,'demo']],'Location',[175,552,335,697])
set_param([sys,'/',['QASK Mo//Dem',13,'demo']],...
'Mask Display','QASK\nS-map\ndemo',...
'Mask Dialogue','eval(''ts=.04;[num,den]=butter(2,100/pi/2*ts);td=.2;M=64;tmpqa2cd'')')
% Finished composite block ['QASK Mo//Dem',13,'demo'].
set_param([sys,'/',['QASK Mo//Dem',13,'demo']],...
'BackGround',7,...
'hide name',0,...
'position',[536,118,616,162])
% Subsystem ['Coh MFSK demod',13,'corr baseband'].
new_system([sys,'/',['Coh MFSK demod',13,'corr baseband']])
set_param([sys,'/',['Coh MFSK demod',13,'corr baseband']],'Location',[124,519,842,743])
add_block('built-in/S-Function',[sys,'/',['Coh MFSK demod',13,'corr baseband/Limited-length',13,'integrator1']])
set_param([sys,'/',['Coh MFSK demod',13,'corr baseband/Limited-length',13,'integrator1']],...
'function name','moveint',...
'parameters','vec,T,sample_time,method',...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -