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

📄 tddmmpsk.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 3 页
字号:
		'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 + -