📄 testamc2.m
字号:
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 + -