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

📄 testamc2.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 4 页
字号:
add_block('built-in/Inport',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/in_1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/in_1']],...
		'orientation',2,...
		'position',[165,70,185,90])


%     Subsystem  ['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply'].

new_system([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],'Location',[297,318,980,694])

add_block('built-in/Gain',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Conjugate']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Conjugate']],...
		'Gain','-1',...
		'position',[190,210,230,240])

add_block('built-in/Note',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/I2']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/I2']],...
		'position',[170,225,175,230])

add_block('built-in/Outport',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Real']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Real']],...
		'position',[495,110,515,130])

add_block('built-in/Outport',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Imag']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Imag']],...
		'Port','2',...
		'position',[485,280,505,300])

add_block('built-in/Note',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/I1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/I1']],...
		'position',[198,108,203,113])

add_block('built-in/Note',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R1']],...
		'position',[195,65,200,70])

add_block('built-in/Note',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R2']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R2']],...
		'position',[190,185,195,190])

add_block('built-in/Product',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product']],...
		'position',[305,83,335,107])

add_block('built-in/Product',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product1']],...
		'position',[305,143,335,167])

add_block('built-in/Sum',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Sum']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Sum']],...
		'inputs','+-',...
		'position',[380,110,400,130])

add_block('built-in/Product',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product3']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product3']],...
		'position',[305,253,335,277])

add_block('built-in/Product',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product2']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Product2']],...
		'position',[305,298,335,322])

add_block('built-in/Sum',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Sum1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Sum1']],...
		'position',[380,280,400,300])

add_block('built-in/Note',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R_out']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R_out']],...
		'position',[450,95,455,100])

add_block('built-in/Note',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/I_out']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/I_out']],...
		'position',[450,286,455,291])

add_block('built-in/Note',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R = Real',13,'I = Imaginary']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/R = Real',13,'I = Imaginary']],...
		'position',[55,0,60,5])

add_block('built-in/Demux',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split']],...
		'outputs','2',...
		'Mask Display','Complex to\nReal/Imag',...
		'Mask Type','Complex to Real/Imag')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split']],...
		'Mask Dialogue','Real and imaginary components of complex vector.')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/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,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split']],...
		'position',[85,79,160,121])

add_block('built-in/Inport',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Complex',13,'input 1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Complex',13,'input 1']],...
		'position',[35,90,55,110])

add_block('built-in/Demux',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split1']],...
		'outputs','2',...
		'Mask Display','Complex to\nReal/Imag',...
		'Mask Type','Complex to Real/Imag')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split1']],...
		'Mask Dialogue','Real and imaginary components of complex vector.')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split1']],...
		'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,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Split1']],...
		'position',[80,194,155,236])

add_block('built-in/Inport',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Complex',13,'input 2']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply/Complex',13,'input 2']],...
		'Port','2',...
		'position',[25,205,45,225])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[235,225;260,225;260,160;300,160])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[260,225;260,270;300,270])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[160,225;185,225])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[405,120;490,120])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[405,290;480,290])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[60,100;80,100])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[50,215;75,215])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[340,95;350,95;350,115;375,115])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[340,155;350,155;350,125;375,125])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[165,90;300,90])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[243,90;243,260;300,260])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[160,205;275,205;275,100;300,100])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[275,205;275,305;300,305])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[165,110;250,110;250,150;300,150])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[255,150;255,315;300,315])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[340,265;350,265;350,285;375,285])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],[340,310;350,310;350,295;375,295])


%     Finished composite block ['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply'].

set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Cmplx-in',13,'Re//Im-out',13,'Multiply']],...
		'orientation',2,...
		'position',[50,70,125,110])

add_block('built-in/Filter',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Filter']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Filter']],...
		'Numerator','num',...
		'Denominator','den',...
		'Sample time','ts',...
		'position',[270,6,325,44])

add_block('built-in/Filter',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Filter2']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Filter2']],...
		'orientation',2,...
		'Numerator','num',...
		'Denominator','den',...
		'Sample time','ts',...
		'position',[310,80,370,120])

add_block('built-in/Product',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Product1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/Product1']],...
		'orientation',2,...
		'position',[400,90,435,110])

add_block('built-in/Outport',[sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/out_1']])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE/out_1']],...
		'position',[495,15,515,35])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[200,100;130,100])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[305,100;290,100])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[395,100;375,100])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[320,175;455,175;455,105;440,105])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[45,100;25,100;25,175;255,175])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[45,80;30,80;30,25;265,25])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[160,80;130,80])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[330,25;490,25])
add_line([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],[455,25;455,95;440,95])
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],...
		'Mask Display','Costas PL\nDSB ADM',...
		'Mask Type','DSB-SC ADM')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],...
		'Mask Dialogue','Double-sideband suppressed-carrier amplitude demodulation:|Low-pass filter numerator:|Low-pass filter denominator:|Initial phase:|Sample time:')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],...
		'Mask Translate','num=@1;den=@2;Ph=@3;pi2=pi*2;ts=@4;')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],...
		'Mask Help','The DSB SC ADM demodulates a DSB-SC-AM signal using Costas Phase-Locked Loop method. The result of this ADM is phase sensitive. This block requires user to specify a lowpass filter which could filter the carrier freency and keep the message signal. Please refer Signal Processing Toolbox for design of the filters. ')
set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],...
		'Mask Entries','num\/den\/Ph\/ts\/')


%     Finished composite block ['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE'].

set_param([sys,'/',['ADM with carrier',13,'baseband/Costas DSB-ADM',13,'CE']],...
		'ForeGround',2,...
		'position',[100,15,175,55])
add_line([sys,'/',['ADM with carrier',13,'baseband']],[265,40;285,40])
add_line([sys,'/',['ADM with carrier',13,'baseband']],[180,35;235,35])
add_line([sys,'/',['ADM with carrier',13,'baseband']],[65,35;95,35])
add_line([sys,'/',['ADM with carrier',13,'baseband']],[195,110;210,110;215,45;235,45])
set_param([sys,'/',['ADM with carrier',13,'baseband']],...
		'Mask Display','plot(0,0,100,100,x,y,u,v);ADM w TC',...
		'Mask Type','ADM with TC CE')
set_param([sys,'/',['ADM with carrier',13,'baseband']],...
		'Mask Dialogue','Demodulate the complex envelope of an\nAM with TC modulated signal.|Output signal offset:|Lowpass filter numerator:|Lowpass filter denominator:|Initial Phase (rad):|Sample time (ts):')
set_param([sys,'/',['ADM with carrier',13,'baseband']],...
		'Mask Translate','Offset=@1;num=@2;den=@3;Ph=@4;ts=@5;[x,y]=moduicon(2);[u,v]=cmplxicn(0,50,get_param(gcb,''orientation''));')
set_param([sys,'/',['ADM with carrier',13,'baseband']],...
		'Mask Help','This block demodulates the complex envelope of an AM with transport carrier modulated signal. This block requires you to specify a lowpass filter, which eliminates the carrier frequency and keeps the message signal. This block takes a complex signal.')
set_param([sys,'/',['ADM with carrier',13,'baseband']],...
		'Mask Entries','1\/num\/den\/0\/ts\/')


%     Finished composite block ['ADM with carrier',13,'baseband'].

set_param([sys,'/',['ADM with carrier',13,'baseband']],...
		'ForeGround',2,...
		'hide name',0,...
		'position',[250,118,330,162])

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',[225,190,230,195])
add_line(sys,[75,80;125,80])
add_line(sys,[100,80;100,140;125,140])
add_line(sys,[335,140;350,140;350,95;380,95])
add_line(sys,[215,80;245,80])
add_line(sys,[425,80;445,80])
add_line(sys,[100,80;100,25;360,25;360,65;380,65])
add_line(sys,[335,80;380,80])
add_line(sys,[215,140;245,140])

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