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

📄 com_mocd.m

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

%     Subsystem  'MFSK map'.

new_system([sys,'/','MFSK map'])
set_param([sys,'/','MFSK map'],'Location',[90,420,407,543])

add_block('built-in/Inport',[sys,'/','MFSK map/in_1'])
set_param([sys,'/','MFSK map/in_1'],...
		'position',[45,45,65,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/Outport',[sys,'/','MFSK map/out_1'])
set_param([sys,'/','MFSK map/out_1'],...
		'position',[260,45,280,65])

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_line([sys,'/','MFSK map'],[230,55;255,55])
add_line([sys,'/','MFSK map'],[70,55;100,55])
add_line([sys,'/','MFSK map'],[145,55;170,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',[40,348,120,392])


%     Subsystem  ['Coh corr MFSK',13,'demod passband'].

new_system([sys,'/',['Coh corr MFSK',13,'demod passband']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband']],'Location',[210,425,800,670])

add_block('built-in/Outport',[sys,'/',['Coh corr MFSK',13,'demod passband/out_1']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/out_1']],...
		'position',[560,55,580,75])

add_block('built-in/Inport',[sys,'/',['Coh corr MFSK',13,'demod passband/in_1']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/in_1']],...
		'position',[365,45,385,65])

add_block('built-in/S-Function',[sys,'/',['Coh corr MFSK',13,'demod passband/Array sin']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Array sin']],...
		'function name','arysin',...
		'parameters','''cos''',...
		'position',[325,85,375,105])

add_block('built-in/Sum',[sys,'/',['Coh corr MFSK',13,'demod passband/Sum1']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Sum1']],...
		'inputs','+++',...
		'position',[265,75,290,115])

add_block('built-in/Product',[sys,'/',['Coh corr MFSK',13,'demod passband/Product']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Product']],...
		'position',[415,46,440,79])

add_block('built-in/S-Function',[sys,'/',['Coh corr MFSK',13,'demod passband/Scheduled',13,'reset-int1']])
set_param([sys,'/',['Coh corr MFSK',13,'demod 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,'/',['Coh corr MFSK',13,'demod 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,'/',['Coh corr MFSK',13,'demod passband/Scheduled',13,'reset-int1']],...
		'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['Coh corr MFSK',13,'demod 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,'/',['Coh corr MFSK',13,'demod passband/Scheduled',13,'reset-int1']],...
		'Mask Entries','td\/ts\/Inf\/',...
		'position',[470,44,530,86])

add_block('built-in/S-Function',[sys,'/',['Coh corr MFSK',13,'demod passband/Scheduled',13,'reset-int']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Scheduled',13,'reset-int']],...
		'function name','schdint',...
		'parameters','td, ts, limit',...
		'Mask Display','Schdld\nreset-int',...
		'Mask Type','Scheduled reset integration.')
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/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,'/',['Coh corr MFSK',13,'demod passband/Scheduled',13,'reset-int']],...
		'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/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,'/',['Coh corr MFSK',13,'demod passband/Scheduled',13,'reset-int']],...
		'Mask Entries','td\/ts\/Inf\/',...
		'position',[140,39,200,81])

add_block('built-in/Constant',[sys,'/',['Coh corr MFSK',13,'demod passband/Shift key']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Shift key']],...
		'Value','sft',...
		'position',[60,48,80,72])

add_block('built-in/Constant',[sys,'/',['Coh corr MFSK',13,'demod passband/Initial phase']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Initial phase']],...
		'Value','Ph',...
		'position',[80,113,100,137])

add_block('built-in/Zero-Order Hold',[sys,'/',['Coh corr MFSK',13,'demod passband/Zero-Order',13,'Hold']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Zero-Order',13,'Hold']],...
		'Sample time','td',...
		'position',[135,184,170,216])

add_block('built-in/Clock',[sys,'/',['Coh corr MFSK',13,'demod passband/Clock']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Clock']],...
		'position',[35,160,55,180])

add_block('built-in/Sum',[sys,'/',['Coh corr MFSK',13,'demod passband/Sum2']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Sum2']],...
		'inputs','+-',...
		'position',[205,160,230,195])

add_block('built-in/Gain',[sys,'/',['Coh corr MFSK',13,'demod passband/Gain']])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband/Gain']],...
		'Gain','Fc',...
		'position',[70,155,110,185])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[535,65;555,65])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[390,55;410,55])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[445,65;465,65])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[295,95;320,95])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[380,95;400,95;410,70])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[85,60;135,60])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[205,60;225,60;225,80;260,80])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[105,125;230,125;230,95;260,95])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[60,170;65,170])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[235,180;250,180;260,110])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[115,170;200,170])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[115,170;130,200])
add_line([sys,'/',['Coh corr MFSK',13,'demod passband']],[175,200;180,200;180,185;200,185])
set_param([sys,'/',['Coh corr MFSK',13,'demod passband']],...
		'Mask Display','Coh corr\nMFSK dm',...
		'Mask Type','Passband coherent MFSK correlation')
set_param([sys,'/',['Coh corr MFSK',13,'demod passband']],...
		'Mask Dialogue','Compute MFSK correlation. Take MFSK\nmodulated signal. Output a vector of\ncorrelation result.|M-ary number (input in range [0, M-1]):|Tone space (Hz):|Symbol interval and offset (sec):|Carrier frequency (Hz):|Initial phase (rad):|Sample time (sec):')
set_param([sys,'/',['Coh corr MFSK',13,'demod passband']],...
		'Mask Translate','pi2=2*pi;N=@1;Fc=@4*pi2;Ph=@5;Ton=@2;sft=[0:N-1]*Ton*pi2;td=@3;ts=@6;')
set_param([sys,'/',['Coh corr MFSK',13,'demod passband']],...
		'Mask Help','This block calculates the coherent correlation value of the input signal with a vector of sinusoidal signals. These sinusoidal signals have their frequency the same as that of FM modulated signal of possible resulting digits. The output is an M length vector. M is the M-ary number. The MFSK demodulation result is the index of the largest output, using the Min/max demap block. The computation is phase sensitive.')
set_param([sys,'/',['Coh corr MFSK',13,'demod passband']],...
		'Mask Entries','M\/M/td/5\/td\/Fc\/0\/ts\/')


%     Finished composite block ['Coh corr MFSK',13,'demod passband'].

set_param([sys,'/',['Coh corr MFSK',13,'demod passband']],...
		'position',[320,348,400,392])


%     Subsystem  ['Noncoh corr MFSK',13,'demod  passband'].

new_system([sys,'/',['Noncoh corr MFSK',13,'demod  passband']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband']],'Location',[10,2228368,850,2228643])

add_block('built-in/Outport',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/out_1']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/out_1']],...
		'position',[825,85,845,105])

add_block('built-in/Inport',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/in_1']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/in_1']],...
		'position',[490,75,510,95])

add_block('built-in/Sum',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Sum3']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Sum3']],...
		'position',[385,113,405,142])

add_block('built-in/Mux',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Mux']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Mux']],...
		'inputs','[N N]',...
		'position',[425,78,455,122])

add_block('built-in/S-Function',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Array sin']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Array sin']],...
		'function name','arysin',...
		'parameters','''cos''',...
		'position',[470,90,520,110])

add_block('built-in/Product',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Product']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Product']],...
		'position',[540,76,565,109])

add_block('built-in/Constant',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Initial phase1']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Initial phase1']],...
		'Value','Ph',...
		'position',[335,153,355,177])

add_block('built-in/Product',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Product1']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Product1']],...
		'position',[675,76,700,109])

add_block('built-in/Demux',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Demux']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Demux']],...
		'outputs','[N N]',...
		'position',[720,75,760,110])

add_block('built-in/Sum',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Sum4']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Sum4']],...
		'position',[785,78,805,107])

add_block('built-in/S-Function',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Scheduled',13,'reset-int1']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  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,'/',['Noncoh corr MFSK',13,'demod  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,'/',['Noncoh corr MFSK',13,'demod  passband/Scheduled',13,'reset-int1']],...
		'Mask Translate','td=@1;ts=@2;limit=@3;')
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  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,'/',['Noncoh corr MFSK',13,'demod  passband/Scheduled',13,'reset-int1']],...
		'Mask Entries','td\/ts\/Inf\/',...
		'position',[580,74,640,116])

add_block('built-in/Sum',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Sum2']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Sum2']],...
		'inputs','+-',...
		'position',[265,155,290,190])

add_block('built-in/Clock',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Clock']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Clock']],...
		'position',[95,155,115,175])

add_block('built-in/Gain',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Gain']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Gain']],...
		'Gain','Fc',...
		'position',[145,155,165,175])

add_block('built-in/Zero-Order Hold',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Zero-Order',13,'Hold']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Zero-Order',13,'Hold']],...
		'Sample time','td',...
		'position',[195,179,230,211])

add_block('built-in/Constant',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Initial phase']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Initial phase']],...
		'Value','Ph',...
		'position',[140,108,160,132])

add_block('built-in/Constant',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Shift key']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Shift key']],...
		'Value','sft',...
		'position',[120,43,140,67])

add_block('built-in/S-Function',[sys,'/',['Noncoh corr MFSK',13,'demod  passband/Scheduled',13,'reset-int']])
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Scheduled',13,'reset-int']],...
		'function name','schdint',...
		'parameters','td, ts, limit',...
		'Mask Display','Schdld\nreset-int',...
		'Mask Type','Scheduled reset integration.')
set_param([sys,'/',['Noncoh corr MFSK',13,'demod  passband/Scheduled',13,'reset-int']],...

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -