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

📄 test_pm2.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 3 页
字号:
set_param([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag/Complex',13,'input 1']],...
		'position',[40,35,60,55])

add_block('built-in/Demux',[sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag/Split']])
set_param([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag/Split']],...
		'outputs','2',...
		'Mask Display','Complex to\nReal/Imag',...
		'Mask Type','Complex to Real/Imag')
set_param([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag/Split']],...
		'Mask Dialogue','Real and imaginary components of complex vector.')
set_param([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag/Split']],...
		'Mask Help','The Complex to Real/Imag block decomposes a complex vector into its real and imaginary components using a Demux block. The real part is directed to output 1, and the imaginary to output 2.')
set_param([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag/Split']],...
		'position',[90,24,165,66])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[415,115;445,115])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[65,45;85,45])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[55,160;80,160])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[170,35;248,35;248,70;305,70])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[165,170;290,170;290,80;305,80])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[170,55;185,55;185,115;215,115])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[165,150;180,150;180,125;215,125])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[345,75;360,75;360,110;385,110])
add_line([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],[255,120;385,120])


%     Finished composite block ['PDM',13,'baseband/Multiply &',13,'take imag'].

set_param([sys,'/',['PDM',13,'baseband/Multiply &',13,'take imag']],...
		'position',[125,24,200,66])

add_block('built-in/Filter',[sys,'/',['PDM',13,'baseband/Filter']])
set_param([sys,'/',['PDM',13,'baseband/Filter']],...
		'Numerator','num',...
		'Denominator','den',...
		'Sample time','ts',...
		'position',[255,26,310,64])

add_block('built-in/Constant',[sys,'/',['PDM',13,'baseband/Constant1']])
set_param([sys,'/',['PDM',13,'baseband/Constant1']],...
		'orientation',2,...
		'Value','Ph',...
		'position',[340,190,370,210])

add_block('built-in/Gain',[sys,'/',['PDM',13,'baseband/Sensitivity']])
set_param([sys,'/',['PDM',13,'baseband/Sensitivity']],...
		'Gain','-2*pi',...
		'position',[355,30,395,60])


%     Subsystem  ['PDM',13,'baseband/Dis module',13,'integrator1'].

new_system([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],'Location',[48,515,661,644])

add_block('built-in/Outport',[sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/out_1']])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/out_1']],...
		'position',[425,30,445,50])

add_block('built-in/Unit Delay',[sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/Unit Delay']])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/Unit Delay']],...
		'Sample time','ts',...
		'x0','init',...
		'position',[345,30,395,50])

add_block('built-in/Inport',[sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/in_1']])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/in_1']],...
		'position',[15,25,35,45])

add_block('built-in/Fcn',[sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/module']])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/module']],...
		'Expr','rem(u[1],modu)',...
		'position',[235,29,325,51])

add_block('built-in/Sum',[sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/Sum']])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/Sum']],...
		'position',[195,30,215,50])

add_block('built-in/Gain',[sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/Gain1']])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1/Gain1']],...
		'Gain','ts(1)',...
		'position',[100,20,130,50])
add_line([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],[400,40;420,40])
add_line([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],[410,40;410,90;175,90;175,45;190,45])
add_line([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],[330,40;340,40])
add_line([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],[135,35;190,35])
add_line([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],[40,35;95,35])
add_line([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],[220,40;230,40])
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],...
		'Mask Display','discrete\nmod-int',...
		'Mask Type','Module Integrator')
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],...
		'Mask Dialogue','Module the given number when state exceed limit|Module bound:|Initial value:|Sample time:',...
		'Mask Translate','init=@2; modu=@1;ts=@3;')
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],...
		'Mask Help','The absolute value of this integrator will not exceed the specified module bound. The state value is set to be zero when the module bound is reached. This block can only be used for scale value calculation.')
set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],...
		'Mask Entries','100\/0\/ts\/')


%     Finished composite block ['PDM',13,'baseband/Dis module',13,'integrator1'].

set_param([sys,'/',['PDM',13,'baseband/Dis module',13,'integrator1']],...
		'orientation',1,...
		'position',[390,95,450,135])

add_block('built-in/Gain',[sys,'/',['PDM',13,'baseband/Gain1']])
set_param([sys,'/',['PDM',13,'baseband/Gain1']],...
		'Gain','-ts(1)',...
		'position',[465,30,495,60])

add_block('built-in/Sum',[sys,'/',['PDM',13,'baseband/Sum1']])
set_param([sys,'/',['PDM',13,'baseband/Sum1']],...
		'position',[565,40,585,60])

add_block('built-in/Unit Delay',[sys,'/',['PDM',13,'baseband/Unit Delay']])
set_param([sys,'/',['PDM',13,'baseband/Unit Delay']],...
		'orientation',2,...
		'Sample time','ts',...
		'position',[555,80,605,100])

add_block('built-in/Outport',[sys,'/',['PDM',13,'baseband/out_1']])
set_param([sys,'/',['PDM',13,'baseband/out_1']],...
		'position',[660,40,680,60])
add_line([sys,'/',['PDM',13,'baseband']],[420,140;420,160;270,160])
add_line([sys,'/',['PDM',13,'baseband']],[335,200;295,200;295,170;270,170])
add_line([sys,'/',['PDM',13,'baseband']],[70,35;120,35])
add_line([sys,'/',['PDM',13,'baseband']],[285,95;255,95;255,145;210,145])
add_line([sys,'/',['PDM',13,'baseband']],[240,165;210,165])
add_line([sys,'/',['PDM',13,'baseband']],[110,155;85,155;85,55;120,55])
add_line([sys,'/',['PDM',13,'baseband']],[205,45;250,45])
add_line([sys,'/',['PDM',13,'baseband']],[315,45;350,45])
add_line([sys,'/',['PDM',13,'baseband']],[500,45;560,45])
add_line([sys,'/',['PDM',13,'baseband']],[550,90;540,90;540,55;560,55])
add_line([sys,'/',['PDM',13,'baseband']],[590,50;630,50;630,90;610,90])
add_line([sys,'/',['PDM',13,'baseband']],[630,50;655,50])
add_line([sys,'/',['PDM',13,'baseband']],[400,45;460,45])
add_line([sys,'/',['PDM',13,'baseband']],[420,45;420,90])
set_param([sys,'/',['PDM',13,'baseband']],...
		'Mask Display','plot(0,0,100,100,x,y,u,v);PDM',...
		'Mask Type','PLL PDM CE')
set_param([sys,'/',['PDM',13,'baseband']],...
		'Mask Dialogue','Demodulate the complex envelope of a\nPM modulated signal.|VCO initial phase (rad):|Lowpass filter numerator:|Lowpass filter denominator:|Sample time (sec):')
set_param([sys,'/',['PDM',13,'baseband']],...
		'Mask Translate','Ph=@1;num=@2;den=@3;ts=@4;pi2=2*pi;[x,y]=moduicon(4);[u,v]=cmplxicn(0,50,get_param(gcb,''orientation''));')
set_param([sys,'/',['PDM',13,'baseband']],...
		'Mask Help','This block demodulates the complex envelope of a PM modulated signal. This block uses a phase-locked loop with a multiplier phase detector.',...
		'Mask Entries','0\/num\/den\/ts\/')


%     Finished composite block ['PDM',13,'baseband'].

set_param([sys,'/',['PDM',13,'baseband']],...
		'ForeGround',2,...
		'hide name',0,...
		'position',[240,98,320,142])


%     Subsystem  ['PM',13,'baseband'].

new_system([sys,'/',['PM',13,'baseband']])
set_param([sys,'/',['PM',13,'baseband']],'Location',[320,489,688,666])

add_block('built-in/Mux',[sys,'/',['PM',13,'baseband/Mux']])
set_param([sys,'/',['PM',13,'baseband/Mux']],...
		'inputs','2',...
		'position',[250,51,285,84])

add_block('built-in/Outport',[sys,'/',['PM',13,'baseband/out_1']])
set_param([sys,'/',['PM',13,'baseband/out_1']],...
		'position',[315,60,335,80])

add_block('built-in/Fcn',[sys,'/',['PM',13,'baseband/sin']])
set_param([sys,'/',['PM',13,'baseband/sin']],...
		'Expr','sin(u)',...
		'position',[155,106,210,134])

add_block('built-in/Fcn',[sys,'/',['PM',13,'baseband/cos']])
set_param([sys,'/',['PM',13,'baseband/cos']],...
		'Expr','cos(u)',...
		'position',[155,46,210,74])

add_block('built-in/Inport',[sys,'/',['PM',13,'baseband/in_1']])
set_param([sys,'/',['PM',13,'baseband/in_1']],...
		'position',[35,50,55,70])
add_line([sys,'/',['PM',13,'baseband']],[215,60;245,60])
add_line([sys,'/',['PM',13,'baseband']],[290,70;310,70])
add_line([sys,'/',['PM',13,'baseband']],[215,120;230,120;230,75;245,75])
add_line([sys,'/',['PM',13,'baseband']],[60,60;150,60])
add_line([sys,'/',['PM',13,'baseband']],[130,60;130,120;150,120])
set_param([sys,'/',['PM',13,'baseband']],...
		'Mask Display','plot(0,0,100,100,x,y,u,v);PM',...
		'Mask Type','PM CE',...
		'Mask Dialogue','Output the complex envelope of a PM\nmodulated signal.|Initial phase (rad):')
set_param([sys,'/',['PM',13,'baseband']],...
		'Mask Translate','Ph=@1;pi2=2*pi;[x,y]=moduicon(3);[u,v]=cmplxicn(1,50,get_param(gcb,''orientation''));')
set_param([sys,'/',['PM',13,'baseband']],...
		'Mask Help','This block outputs the complex envelope of the phase modulated signal. The output of this block is a complex signal.',...
		'Mask Entries','0\/')


%     Finished composite block ['PM',13,'baseband'].

set_param([sys,'/',['PM',13,'baseband']],...
		'ForeGround',2,...
		'hide name',0,...
		'position',[130,98,210,142])

add_block('built-in/Note',[sys,'/','Defaults in this simulation: ts=0.01; [num,den]=butter(2,Fc*2*ts);'])
set_param([sys,'/','Defaults in this simulation: ts=0.01; [num,den]=butter(2,Fc*2*ts);'],...
		'position',[230,160,235,165])
add_line(sys,[325,120;350,120;350,75;380,75])
add_line(sys,[425,60;445,60])
add_line(sys,[85,60;100,60;100,20;360,20;360,45;380,45])
add_line(sys,[325,60;380,60])
add_line(sys,[100,60;125,60])
add_line(sys,[100,60;100,120;125,120])
add_line(sys,[215,120;235,120])
add_line(sys,[215,60;235,60])

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