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

📄 tstfskcd.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 3 页
字号:
add_line([sys,'/',['QASK',13,'decode/2-D Table']],[195,65;210,65])
add_line([sys,'/',['QASK',13,'decode/2-D Table']],[45,90;65,90;65,70;85,70])
set_param([sys,'/',['QASK',13,'decode/2-D Table']],...
		'Mask Display','plot(-10,-10,110,110,[90,50,10],[90,40,30],[90,50,10],[50,26,20],[90,50,10],[22,13,10])',...
		'Mask Type','2-D Table Lookup')
set_param([sys,'/',['QASK',13,'decode/2-D Table']],...
		'Mask Dialogue','Two Dimensional Table Lookup\nThe first input corresponds to X Index and the second input corresponds to the Y Index|X Index|Y Index|Table')
set_param([sys,'/',['QASK',13,'decode/2-D Table']],...
		'Mask Translate','xindex=@1; yindex=@2; table=@3; sftab2chk(xindex,yindex,table);')
set_param([sys,'/',['QASK',13,'decode/2-D Table']],...
		'Mask Help','This block returns a linearly interpolated intersection from the table using the X index (which corresponds to the rows of the table) and the Y index (which corresponds to the columns of the table).  Extrapolation is used.')
set_param([sys,'/',['QASK',13,'decode/2-D Table']],...
		'Mask Entries','x\/y\/tab\/')


%     Finished composite block ['QASK',13,'decode/2-D Table'].

set_param([sys,'/',['QASK',13,'decode/2-D Table']],...
		'position',[515,68,545,92])

add_block('built-in/Sum',[sys,'/',['QASK',13,'decode/Sum5']])
set_param([sys,'/',['QASK',13,'decode/Sum5']],...
		'ForeGround',2,...
		'position',[470,153,490,182])

add_block('built-in/Inport',[sys,'/',['QASK',13,'decode/in_2']])
set_param([sys,'/',['QASK',13,'decode/in_2']],...
		'Port','2',...
		'position',[60,155,80,175])

add_block('built-in/Zero-Order Hold',[sys,'/',['QASK',13,'decode/Zero-Order',13,'Hold1']])
set_param([sys,'/',['QASK',13,'decode/Zero-Order',13,'Hold1']],...
		'Sample time','td',...
		'position',[135,149,170,181])

add_block('built-in/Inport',[sys,'/',['QASK',13,'decode/in_1']])
set_param([sys,'/',['QASK',13,'decode/in_1']],...
		'position',[60,30,80,50])

add_block('built-in/Zero-Order Hold',[sys,'/',['QASK',13,'decode/Zero-Order',13,'Hold']])
set_param([sys,'/',['QASK',13,'decode/Zero-Order',13,'Hold']],...
		'Sample time','td',...
		'position',[135,24,170,56])
add_line([sys,'/',['QASK',13,'decode']],[175,40;275,40])
add_line([sys,'/',['QASK',13,'decode']],[175,165;285,165])
add_line([sys,'/',['QASK',13,'decode']],[85,165;130,165])
add_line([sys,'/',['QASK',13,'decode']],[495,75;510,75])
add_line([sys,'/',['QASK',13,'decode']],[355,125;560,125;560,95;575,95])
add_line([sys,'/',['QASK',13,'decode']],[450,125;450,80;465,80])
add_line([sys,'/',['QASK',13,'decode']],[450,125;450,160;465,160])
add_line([sys,'/',['QASK',13,'decode']],[495,170;500,170;510,85])
add_line([sys,'/',['QASK',13,'decode']],[455,175;465,175])
add_line([sys,'/',['QASK',13,'decode']],[450,50;450,65;465,65])
add_line([sys,'/',['QASK',13,'decode']],[605,90;625,90])
add_line([sys,'/',['QASK',13,'decode']],[550,80;575,80])
add_line([sys,'/',['QASK',13,'decode']],[665,90;680,90])
add_line([sys,'/',['QASK',13,'decode']],[360,50;380,50])
add_line([sys,'/',['QASK',13,'decode']],[305,50;320,50])
add_line([sys,'/',['QASK',13,'decode']],[250,100;255,100;255,55;275,55])
add_line([sys,'/',['QASK',13,'decode']],[255,225;260,225;260,180;285,180])
add_line([sys,'/',['QASK',13,'decode']],[315,175;335,175])
add_line([sys,'/',['QASK',13,'decode']],[375,175;380,175])
add_line([sys,'/',['QASK',13,'decode']],[85,40;130,40])
set_param([sys,'/',['QASK',13,'decode']],...
		'Mask Display','MQASK\ndecode',...
		'Mask Type','MASK Demodulation')
set_param([sys,'/',['QASK',13,'decode']],...
		'Mask Dialogue','M-ary Amplitude Shift Keying Demodulation:|QASK M-ary number (outputs are in range (0, M-1):|Symbol interval and decision offset timing:')
set_param([sys,'/',['QASK',13,'decode']],...
		'Mask Translate','N=@1;td=@2;Ac=1;sftx=[1 -1 3 -3 5 -5 7 -7 9 -9 11 -11 13 -13 15 -15];sftx=sftx(1:2*ceil(sqrt(N)/2));sfty=sftx;if N==8,sfty=sfty(1:2);end;sftx=sftx/max(sftx)*Ac;sfty=sfty/max(sfty)*Ac;tab=qaskdeco(length(sftx),length(sfty),''fetch'');x=[1:length(sftx)];y=[1:length(sfty)];')
set_param([sys,'/',['QASK',13,'decode']],...
		'Mask Help','This decodes maximum amplitude 1 in-phase (1st input) and quadreture (2nd input) signal onto a integer in range [0, M-1]. The decision is at the begining of each symbol interval. The offset of the symbol interval can be set as the second element of the interval. The default offset is 0.')
set_param([sys,'/',['QASK',13,'decode']],...
		'Mask Entries','M\/td\/')


%     Finished composite block ['QASK',13,'decode'].

set_param([sys,'/',['QASK',13,'decode']],...
		'position',[440,85,515,125])


%     Subsystem  ['QASK',13,'code'].

new_system([sys,'/',['QASK',13,'code']])
set_param([sys,'/',['QASK',13,'code']],'Location',[214,372,642,541])

add_block('built-in/Inport',[sys,'/',['QASK',13,'code/in_1']])
set_param([sys,'/',['QASK',13,'code/in_1']],...
		'position',[45,30,65,50])

add_block('built-in/Zero-Order Hold',[sys,'/',['QASK',13,'code/Zero-Order',13,'Hold']])
set_param([sys,'/',['QASK',13,'code/Zero-Order',13,'Hold']],...
		'Sample time','td',...
		'position',[110,24,145,56])

add_block('built-in/Outport',[sys,'/',['QASK',13,'code/out_1']])
set_param([sys,'/',['QASK',13,'code/out_1']],...
		'position',[325,30,345,50])

add_block('built-in/Look Up Table',[sys,'/',['QASK',13,'code/s-x axis']])
set_param([sys,'/',['QASK',13,'code/s-x axis']],...
		'Input_Values','z',...
		'Output_Values','x',...
		'position',[245,25,280,55])

add_block('built-in/Outport',[sys,'/',['QASK',13,'code/out_2']])
set_param([sys,'/',['QASK',13,'code/out_2']],...
		'Port','2',...
		'position',[325,95,345,115])

add_block('built-in/Look Up Table',[sys,'/',['QASK',13,'code/c-y axis']])
set_param([sys,'/',['QASK',13,'code/c-y axis']],...
		'Input_Values','z',...
		'Output_Values','y',...
		'position',[245,90,280,120])
add_line([sys,'/',['QASK',13,'code']],[285,40;320,40])
add_line([sys,'/',['QASK',13,'code']],[285,105;320,105])
add_line([sys,'/',['QASK',13,'code']],[150,40;240,40])
add_line([sys,'/',['QASK',13,'code']],[185,40;185,105;240,105])
add_line([sys,'/',['QASK',13,'code']],[70,40;105,40])
set_param([sys,'/',['QASK',13,'code']],...
		'Mask Display','MQASK\ncode',...
		'Mask Type','MQASK')
set_param([sys,'/',['QASK',13,'code']],...
		'Mask Dialogue','M-ary Amplitude Shift Keying Modulation:|M-ary number (input are integers in range [0, M-1]):|Input symbol interval (second):')
set_param([sys,'/',['QASK',13,'code']],...
		'Mask Translate','N=@1;Ac=1;td=@2;z=[[1:N];[1:N]];z=z(:);[x,y]=qaskenco(z,N);z=z-1.5;z=[z(2:2*N);N-.5];x=x/max(x);y=y/max(y);')
set_param([sys,'/',['QASK',13,'code']],...
		'Mask Help','This block a digital signal onto in-phase and quadratic two components. The input signal is held in the input symbol interval. The interval can be a two elements vector with the first element being offset. The default offset is zero. The first and second are in-phase and quandratic components respectively. The maximum amplitude of the outputs are 1.')
set_param([sys,'/',['QASK',13,'code']],...
		'Mask Entries','M\/td\/')


%     Finished composite block ['QASK',13,'code'].

set_param([sys,'/',['QASK',13,'code']],...
		'position',[115,84,185,126])


%     Subsystem  'QAM discr-filt'.

new_system([sys,'/','QAM discr-filt'])
set_param([sys,'/','QAM discr-filt'],'Location',[302,478,834,743])

add_block('built-in/Fcn',[sys,'/','QAM discr-filt/Fcn'])
set_param([sys,'/','QAM discr-filt/Fcn'],...
		'Expr','cos(u[1]+Ph)',...
		'position',[230,55,325,85])

add_block('built-in/Fcn',[sys,'/','QAM discr-filt/Fcn1'])
set_param([sys,'/','QAM discr-filt/Fcn1'],...
		'Expr','sin(u[1]+Ph)',...
		'position',[230,105,325,135])

add_block('built-in/Note',[sys,'/','QAM discr-filt/Ref: Hambley: An Intro to Comm. Systems. pp72'])
set_param([sys,'/','QAM discr-filt/Ref: Hambley: An Intro to Comm. Systems. pp72'],...
		'position',[250,305,255,310])

add_block('built-in/Product',[sys,'/','QAM discr-filt/Product'])
set_param([sys,'/','QAM discr-filt/Product'],...
		'position',[355,47,380,78])

add_block('built-in/Product',[sys,'/','QAM discr-filt/Product1'])
set_param([sys,'/','QAM discr-filt/Product1'],...
		'position',[355,112,380,143])

add_block('built-in/Sum',[sys,'/','QAM discr-filt/Sum2'])
set_param([sys,'/','QAM discr-filt/Sum2'],...
		'position',[430,90,450,110])

add_block('built-in/Outport',[sys,'/','QAM discr-filt/out_1'])
set_param([sys,'/','QAM discr-filt/out_1'],...
		'position',[490,90,510,110])

add_block('built-in/Inport',[sys,'/','QAM discr-filt/in_1'])
set_param([sys,'/','QAM discr-filt/in_1'],...
		'position',[160,30,180,50])

add_block('built-in/Inport',[sys,'/','QAM discr-filt/in_2'])
set_param([sys,'/','QAM discr-filt/in_2'],...
		'Port','2',...
		'position',[160,145,180,165])

add_block('built-in/Gain',[sys,'/','QAM discr-filt/Gain'])
set_param([sys,'/','QAM discr-filt/Gain'],...
		'Gain','Fc',...
		'position',[130,76,180,114])

add_block('built-in/Clock',[sys,'/','QAM discr-filt/Clock'])
set_param([sys,'/','QAM discr-filt/Clock'],...
		'position',[80,85,100,105])
add_line([sys,'/','QAM discr-filt'],[455,100;485,100])
add_line([sys,'/','QAM discr-filt'],[330,70;350,70])
add_line([sys,'/','QAM discr-filt'],[185,40;335,40;335,55;350,55])
add_line([sys,'/','QAM discr-filt'],[330,120;350,120])
add_line([sys,'/','QAM discr-filt'],[185,155;330,155;330,135;350,135])
add_line([sys,'/','QAM discr-filt'],[385,65;400,65;400,95;425,95])
add_line([sys,'/','QAM discr-filt'],[385,130;400,130;400,105;425,105])
add_line([sys,'/','QAM discr-filt'],[105,95;125,95])
add_line([sys,'/','QAM discr-filt'],[185,95;200,95;200,70;225,70])
add_line([sys,'/','QAM discr-filt'],[200,95;200,120;225,120])
set_param([sys,'/','QAM discr-filt'],...
		'Mask Display','QM DSB\nAM',...
		'Mask Type','Quadrature Multiplexed DSB-SC AM')
set_param([sys,'/','QAM discr-filt'],...
		'Mask Dialogue','Quadrature multiplexed double-sideband suppressed-carrier amplitude modulation:|Amplitude scale factor:|Carrier frequency (Hz):|Initial phase (rad):|Sample time:')
set_param([sys,'/','QAM discr-filt'],...
		'Mask Translate','Am=@1;Fc=@2*2*pi;Ph=@3;ts=@4;')
set_param([sys,'/','QAM discr-filt'],...
		'Mask Help','The Quadratic Multiplexed Double-Sideband-Supressed-Carrier AM block causes the amplitude of the sinusoidal carrier to depend on the input message signal, resulting in amplitude modulation. There are two input signal being modulated at the same time by using two orthogonal sinusoidal carriers.')
set_param([sys,'/','QAM discr-filt'],...
		'Mask Entries','1\/100/2/pi\/0\/ts\/')


%     Finished composite block 'QAM discr-filt'.

set_param([sys,'/','QAM discr-filt'],...
		'position',[210,84,290,126])

add_block('built-in/Mux',[sys,'/','Mux1'])
set_param([sys,'/','Mux1'],...
		'inputs','2',...
		'position',[460,168,495,217])


%     Subsystem  'QADM discr-filt'.

new_system([sys,'/','QADM discr-filt'])
set_param([sys,'/','QADM discr-filt'],'Location',[456,480,1000,743])

add_block('built-in/Filter',[sys,'/','QADM discr-filt/Filter1'])
set_param([sys,'/','QADM discr-filt/Filter1'],...
		'Numerator','num',...
		'Denominator','den',...
		'Sample time','ts',...
		'position',[390,166,445,204])

add_block('built-in/Filter',[sys,'/','QADM discr-filt/Filter'])
set_param([sys,'/','QADM discr-filt/Filter'],...
		'Numerator','num',...
		'Denominator','den',...
		'Sample time','ts',...
		'position',[390,61,445,99])

add_block('built-in/Gain',[sys,'/','QADM discr-filt/Gain1'])
set_param([sys,'/','QADM discr-filt/Gain1'],...
		'Gain','2',...
		'position',[270,118,295,142])

add_block('built-in/Inport',[sys,'/','QADM discr-filt/in_1'])
set_param([sys,'/','QADM discr-filt/in_1'],...
		'position',[230,120,250,140])

add_block('built-in/Note',[sys,'/','QADM discr-filt/Ref: Hambley: An Intro to Comm. Systems. pp72'])
set_param([sys,'/','QADM discr-filt/Ref: Hambley: An Intro to Comm. Systems. pp72'],...
		'position',[285,280,290,285])

⌨️ 快捷键说明

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