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

📄 com_momp.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 5 页
字号:

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 + -