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

📄 tddps2cd.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 3 页
字号:
		'position',[60,53,140,97])

add_block('built-in/Outport',[sys,'/',['Circle-map',13,'QASK demod1/out_1']])
set_param([sys,'/',['Circle-map',13,'QASK demod1/out_1']],...
		'hide name',0,...
		'position',[285,65,305,85])

add_block('built-in/Inport',[sys,'/',['Circle-map',13,'QASK demod1/in_1']])
set_param([sys,'/',['Circle-map',13,'QASK demod1/in_1']],...
		'hide name',0,...
		'position',[10,65,30,85])
add_line([sys,'/',['Circle-map',13,'QASK demod1']],[260,75;280,75])
add_line([sys,'/',['Circle-map',13,'QASK demod1']],[35,75;55,75])
add_line([sys,'/',['Circle-map',13,'QASK demod1']],[145,85;170,85])
add_line([sys,'/',['Circle-map',13,'QASK demod1']],[145,65;170,65])
set_param([sys,'/',['Circle-map',13,'QASK demod1']],...
		'Mask Display','plot(0,0,100,100,x,y);C-QASK',...
		'Mask Type','Passband QASK demodulation')
set_param([sys,'/',['Circle-map',13,'QASK demod1']],...
		'Mask Dialogue','Demodulate a QASK modulated signal\nwith circle constellation.|Number of symbols on each circle NIC:|Radii for each circle RIC:|Phase shift on each circle PIC (rad):|Symbol interval (sec):|Carrier frequency (Hz):|Sampling time (sec):')
set_param([sys,'/',['Circle-map',13,'QASK demod1']],...
		'Mask Translate','NIR=@1;AIR=@2;PIR=@3;td=@4;Fc=@5;ts=@6;[num,den]=butter(5,Fc*2*ts);Ph=0;[x,y]=moduicon(6);')
set_param([sys,'/',['Circle-map',13,'QASK demod1']],...
		'Mask Help','This block demodulates a QASK modulated signal with circle constellation. The vector lengths for NIC, RIC, and PIC should be the same. Use function DMOD to view the constellation of the signal distribution. This block uses [num,den]=butter(5,Fc*2*ts) as the default lowpass filter. The default initial phase is zero. To specify non-default parameters, ungroup this block to assign parameters.')
set_param([sys,'/',['Circle-map',13,'QASK demod1']],...
		'Mask Entries','NIR\/AIR\/PIR\/td\/Fc\/ts\/')


%     Finished composite block ['Circle-map',13,'QASK demod1'].

set_param([sys,'/',['Circle-map',13,'QASK demod1']],...
		'hide name',0,...
		'position',[395,58,475,102])


%     Subsystem  'Error rate1'.

new_system([sys,'/','Error rate1'])
set_param([sys,'/','Error rate1'],'Location',[255,368,509,510])

add_block('built-in/Inport',[sys,'/','Error rate1/in_2'])
set_param([sys,'/','Error rate1/in_2'],...
		'Port','2',...
		'position',[15,60,35,80])

add_block('built-in/Inport',[sys,'/','Error rate1/in_1'])
set_param([sys,'/','Error rate1/in_1'],...
		'position',[15,45,35,65])

add_block('built-in/Mux',[sys,'/','Error rate1/Mux'])
set_param([sys,'/','Error rate1/Mux'],...
		'inputs','2',...
		'position',[65,46,100,79])

add_block('built-in/S-Function',[sys,'/','Error rate1/S-function'])
set_param([sys,'/','Error rate1/S-function'],...
		'function name','sbiterr',...
		'parameters','num_lin, K, TDelay, Sample',...
		'position',[130,52,195,78])
add_line([sys,'/','Error rate1'],[40,70;60,70])
add_line([sys,'/','Error rate1'],[40,55;60,55])
add_line([sys,'/','Error rate1'],[105,65;125,65])
set_param([sys,'/','Error rate1'],...
		'Mask Display','Error\nmeter',...
		'Mask Type','Symbol/bit error counter')
set_param([sys,'/','Error rate1'],...
		'Mask Dialogue','Use the input data from the 1st port as the reference signal to detect the number of errors and error rate of the 2nd port inputted signal.|Bit per symbol:|Number of digits on display:|Delay between input (1st port) and output (2nd port):|Sampling time (sec):')
set_param([sys,'/','Error rate1'],...
		'Mask Translate','K=@1;num_lin=@2;TDelay=@3;Sample=@4;')
set_param([sys,'/','Error rate1'],...
		'Mask Help','The signal from the first port must be a scalar. The second input port can be a vector with a same-time delay to the input signal. The comparison happens only at the sampling point.')
set_param([sys,'/','Error rate1'],...
		'Mask Entries','ceil(log10(sum(NIR))/log10(2))\/20\/td\/td\/')


%     Finished composite block 'Error rate1'.

set_param([sys,'/','Error rate1'],...
		'hide name',0,...
		'position',[520,48,600,92])


%     Subsystem  ['ASK Mo//Dem',13,'demo1'].

new_system([sys,'/',['ASK Mo//Dem',13,'demo1']])
set_param([sys,'/',['ASK Mo//Dem',13,'demo1']],'Location',[175,552,335,697])
set_param([sys,'/',['ASK Mo//Dem',13,'demo1']],...
		'Mask Display','View\nconstellation',...
		'Mask Dialogue','eval(''modmap(''''qask/cir'''',NIR,AIR,PIR)'')')


%     Finished composite block ['ASK Mo//Dem',13,'demo1'].

set_param([sys,'/',['ASK Mo//Dem',13,'demo1']],...
		'BackGround',7,...
		'hide name',0,...
		'position',[520,108,600,152])


%     Subsystem  ['AWGN',13,'w vary para'].

new_system([sys,'/',['AWGN',13,'w vary para']])
set_param([sys,'/',['AWGN',13,'w vary para']],'Location',[122,181,405,317])

add_block('built-in/Inport',[sys,'/',['AWGN',13,'w vary para/in_3']])
set_param([sys,'/',['AWGN',13,'w vary para/in_3']],...
		'Port','3',...
		'position',[20,95,40,115])


%     Subsystem  ['AWGN',13,'w vary para/Gaussian',13,'noise'].

new_system([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],'Location',[482,386,830,557])

add_block('built-in/White Noise',[sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/Random',13,'Number']])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/Random',13,'Number']],...
		'Seed','s',...
		'position',[40,77,85,113])

add_block('built-in/Inport',[sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/in_2']])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/in_2']],...
		'Port','2',...
		'position',[75,35,95,55])

add_block('built-in/Product',[sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/Product']])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/Product']],...
		'position',[145,80,170,100])

add_block('built-in/Inport',[sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/in_1']])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/in_1']],...
		'position',[165,35,185,55])

add_block('built-in/Sum',[sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/Sum1']])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/Sum1']],...
		'position',[220,75,240,95])

add_block('built-in/Outport',[sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/out_1']])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise/out_1']],...
		'position',[280,75,300,95])
add_line([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],[100,45;115,45;115,85;140,85])
add_line([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],[90,95;140,95])
add_line([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],[175,90;215,90])
add_line([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],[190,45;195,45;195,80;215,80])
add_line([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],[245,85;275,85])
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],...
		'Mask Display','Gaussian\nnoise',...
		'Mask Type','Gaussian noise.',...
		'Mask Dialogue','Gaussian distribution noise.|Initial Seed(s):',...
		'Mask Translate','s=@1;')
set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],...
		'Mask Help','The meanvalue is determined by value from the frist input. The standard deviation is determined by the second input. ',...
		'Mask Entries','s\/')


%     Finished composite block ['AWGN',13,'w vary para/Gaussian',13,'noise'].

set_param([sys,'/',['AWGN',13,'w vary para/Gaussian',13,'noise']],...
		'position',[75,50,150,90])

add_block('built-in/Inport',[sys,'/',['AWGN',13,'w vary para/in_2']])
set_param([sys,'/',['AWGN',13,'w vary para/in_2']],...
		'Port','2',...
		'position',[10,50,30,70])

add_block('built-in/Inport',[sys,'/',['AWGN',13,'w vary para/in_1']])
set_param([sys,'/',['AWGN',13,'w vary para/in_1']],...
		'position',[100,15,120,35])

add_block('built-in/Outport',[sys,'/',['AWGN',13,'w vary para/out_1']])
set_param([sys,'/',['AWGN',13,'w vary para/out_1']],...
		'position',[245,55,265,75])

add_block('built-in/Sum',[sys,'/',['AWGN',13,'w vary para/Sum']])
set_param([sys,'/',['AWGN',13,'w vary para/Sum']],...
		'position',[195,55,215,75])
add_line([sys,'/',['AWGN',13,'w vary para']],[45,105;55,105;55,80;70,80])
add_line([sys,'/',['AWGN',13,'w vary para']],[35,60;70,60])
add_line([sys,'/',['AWGN',13,'w vary para']],[155,70;190,70])
add_line([sys,'/',['AWGN',13,'w vary para']],[125,25;160,25;160,60;190,60])
add_line([sys,'/',['AWGN',13,'w vary para']],[220,65;240,65])
set_param([sys,'/',['AWGN',13,'w vary para']],...
		'Mask Display','plot(0,0,100,100,x,y);AWGN',...
		'Mask Type','AWGN channel, vary parameter')
set_param([sys,'/',['AWGN',13,'w vary para']],...
		'Mask Dialogue','AWGN channel with varying mean (2nd\nport) and standard deviation (3rd port) as input. Seed vector size is the block output size.|Initial seed:')
set_param([sys,'/',['AWGN',13,'w vary para']],...
		'Mask Translate','s=@1;[x,y]=chanicon;')
set_param([sys,'/',['AWGN',13,'w vary para']],...
		'Mask Help','This block adds white Gaussian noise to the input signal. When the mean value and/or the seed is a vector, a vector noise is added to the input vector signal. The mean value and the standard deviation are inputted from the second port and the third port respectively. The mean and std input can be scalars or vectors with the same length as the input signal.')
set_param([sys,'/',['AWGN',13,'w vary para']],...
		'Mask Entries','123456\/')


%     Finished composite block ['AWGN',13,'w vary para'].

set_param([sys,'/',['AWGN',13,'w vary para']],...
		'hide name',0,...
		'position',[290,58,365,102])

add_block('built-in/Signal Generator',[sys,'/',['Signal',13,'generator']])
set_param([sys,'/',['Signal',13,'generator']],...
		'hide name',0,...
		'Peak','0.010000',...
		'Peak Range','5.000000',...
		'Freq','1.000000',...
		'Freq Range','5.000000',...
		'Wave','Sin',...
		'Units','Rads')
set_param([sys,'/',['Signal',13,'generator']],...
		'position',[160,98,205,132])

add_block('built-in/Signal Generator',[sys,'/',['Signal',13,'generator1']])
set_param([sys,'/',['Signal',13,'generator1']],...
		'hide name',0,...
		'Peak','0.400000',...
		'Peak Range','5.000000',...
		'Freq','0.200000',...
		'Freq Range','5.000000',...
		'Wave','Saw',...
		'Units','Rads')
set_param([sys,'/',['Signal',13,'generator1']],...
		'position',[160,138,205,172])

add_block('built-in/Saturation',[sys,'/','Saturation'])
set_param([sys,'/','Saturation'],...
		'Lower Limit','0',...
		'Upper Limit','20',...
		'position',[230,145,255,165])
add_line(sys,[125,65;165,65])
add_line(sys,[140,65;140,25;485,25;485,60;515,60])
add_line(sys,[480,80;515,80])
add_line(sys,[255,65;285,65])
add_line(sys,[370,80;390,80])
add_line(sys,[210,115;255,115;255,80;285,80])
add_line(sys,[210,155;225,155])
add_line(sys,[260,155;265,155;265,95;285,95])

drawnow

% Return any arguments.
if (nargin | nargout)
	% Must use feval here to access system in memory
	if (nargin > 3)
		if (flag == 0)
			eval(['[ret,x0,str,ts,xts]=',sys,'(t,x,u,flag);'])
		else
			eval(['ret =', sys,'(t,x,u,flag);'])
		end
	else
		[ret,x0,str,ts,xts] = feval(sys);
	end
else
	drawnow % Flash up the model and execute load callback
end

⌨️ 快捷键说明

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