📄 tstrcos.m
字号:
% Subsystem ['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1'].
new_system([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']])
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],'Location',[55,192,283,286])
add_block('built-in/Outport',[sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1/Outport']])
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1/Outport']],...
'position',[160,35,180,55])
add_block('built-in/S-Function',[sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1/S-function1']])
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1/S-function1']],...
'function name','homopuls',...
'parameters','samp_time, out_divid, offset',...
'position',[40,31,105,59])
add_line([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],[110,45;155,45])
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],...
'Mask Display','Vector\nPulse',...
'Mask Type','Pulse generator')
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],...
'Mask Dialogue','Vector pulses with sample rate of each pulse as Sample_time ./Divider. |Sample time (scalar, sec):|Divider (integer vector):|Offset (have same dimension as Divider:')
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],...
'Mask Translate','samp_time=@1;out_divid=@2;offset=@3;')
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],...
'Mask Help','This block generator a vector pulses. The output length is the same as the vector defined in "Divider". The ith element of the output has the sample time Sample_time/Divider(i). All elements in "Divider" must be integers.')
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],...
'Mask Entries','td\/1\/off\/')
% Finished composite block ['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1'].
set_param([sys,'/',['Raised cosine',13,'filter1/Pulses deivide',13,'same sample time1']],...
'position',[35,71,95,109])
add_line([sys,'/',['Raised cosine',13,'filter1']],[100,90;115,90;115,60;150,60])
add_line([sys,'/',['Raised cosine',13,'filter1']],[230,50;250,50])
add_line([sys,'/',['Raised cosine',13,'filter1']],[60,40;150,40])
add_line([sys,'/',['Raised cosine',13,'filter1']],[315,50;325,50])
set_param([sys,'/',['Raised cosine',13,'filter1']],...
'Mask Display','R-C\nfilter',...
'Mask Type','R-C filter')
set_param([sys,'/',['Raised cosine',13,'filter1']],...
'Mask Dialogue','Design a raised cosine filter and use it to filter the input signal.|Symbol interval (sec):|Computation sampling time (sec):|Filter rolloff factor:|Delay step (integer to multiply symbol interval):|Filter type (FIR or IIR) / (Normal or Sqrt):|With or without sinc filter (1 or 0, suggest 1):')
set_param([sys,'/',['Raised cosine',13,'filter1']],...
'Mask Translate','td=@1;if length(td)>1,off=td(2);td=td(1);else,off=0;end;ts=@2;R=@3;delay=@4;fil=@5;[num,den]=rcosine(1/td(1),1/ts(1),fil,R,delay);x=@6/2;')
set_param([sys,'/',['Raised cosine',13,'filter1']],...
'Mask Help','This block designs a raised cosine filter using the specified parameter. The filter is used to filter the input signal. You can optionally use the sinc filter in the filtering computation.')
set_param([sys,'/',['Raised cosine',13,'filter1']],...
'Mask Entries','td\/ts\/.5\/3\/''FIR''\/1\/')
% Finished composite block ['Raised cosine',13,'filter1'].
set_param([sys,'/',['Raised cosine',13,'filter1']],...
'hide name',0,...
'position',[220,103,300,147])
% Subsystem ['QASK',13,'square-map'].
new_system([sys,'/',['QASK',13,'square-map']])
set_param([sys,'/',['QASK',13,'square-map']],'Location',[214,372,642,541])
add_block('built-in/Inport',[sys,'/',['QASK',13,'square-map/in_1']])
set_param([sys,'/',['QASK',13,'square-map/in_1']],...
'position',[45,30,65,50])
add_block('built-in/Zero-Order Hold',[sys,'/',['QASK',13,'square-map/Zero-Order',13,'Hold']])
set_param([sys,'/',['QASK',13,'square-map/Zero-Order',13,'Hold']],...
'Sample time','td',...
'position',[110,24,145,56])
add_block('built-in/Outport',[sys,'/',['QASK',13,'square-map/out_1']])
set_param([sys,'/',['QASK',13,'square-map/out_1']],...
'position',[325,30,345,50])
add_block('built-in/Look Up Table',[sys,'/',['QASK',13,'square-map/s-x axis']])
set_param([sys,'/',['QASK',13,'square-map/s-x axis']],...
'Input_Values','z',...
'Output_Values','x',...
'position',[245,25,280,55])
add_block('built-in/Outport',[sys,'/',['QASK',13,'square-map/out_2']])
set_param([sys,'/',['QASK',13,'square-map/out_2']],...
'Port','2',...
'position',[325,95,345,115])
add_block('built-in/Look Up Table',[sys,'/',['QASK',13,'square-map/c-y axis']])
set_param([sys,'/',['QASK',13,'square-map/c-y axis']],...
'Input_Values','z',...
'Output_Values','y',...
'position',[245,90,280,120])
add_line([sys,'/',['QASK',13,'square-map']],[285,40;320,40])
add_line([sys,'/',['QASK',13,'square-map']],[285,105;320,105])
add_line([sys,'/',['QASK',13,'square-map']],[150,40;240,40])
add_line([sys,'/',['QASK',13,'square-map']],[185,40;185,105;240,105])
add_line([sys,'/',['QASK',13,'square-map']],[70,40;105,40])
set_param([sys,'/',['QASK',13,'square-map']],...
'Mask Display','QASK\nS-map',...
'Mask Type','QASK S-map')
set_param([sys,'/',['QASK',13,'square-map']],...
'Mask Dialogue','Use square constellation to map the\ninput digital signal into in-phase and\nquadrature components. M must be\nM=2^K with integer K.|M-ary number (input integers in range [0, M-1]):|Input symbol interval and offset (sec):')
set_param([sys,'/',['QASK',13,'square-map']],...
'Mask Translate','N=@1;Ac=1;td=@2;z=[[1:N];[1:N]];z=z(:);[x,y]=qaskenco(z-1,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,'square-map']],...
'Mask Help','This block maps a digital signal onto in-phase and quadratic components, which are outputs in the first and second output port respectively. The M-ary number must be M=2^K with integer K. The input symbol interval can be a two-element vector with the second element being offset. The default value offset is 0. The maximum amplitudes for the outputs are 1.')
set_param([sys,'/',['QASK',13,'square-map']],...
'Mask Entries','M\/td\/')
% Finished composite block ['QASK',13,'square-map'].
set_param([sys,'/',['QASK',13,'square-map']],...
'hide name',0,...
'position',[115,58,195,102])
% Subsystem ['QAM',13,'baseband'].
new_system([sys,'/',['QAM',13,'baseband']])
set_param([sys,'/',['QAM',13,'baseband']],'Location',[321,500,954,793])
add_block('built-in/Note',[sys,'/',['QAM',13,'baseband/Ref: Hambley: An Intro to Comm. Systems. pp72']])
set_param([sys,'/',['QAM',13,'baseband/Ref: Hambley: An Intro to Comm. Systems. pp72']],...
'position',[260,370,265,375])
add_block('built-in/Note',[sys,'/',['QAM',13,'baseband/I_out']])
set_param([sys,'/',['QAM',13,'baseband/I_out']],...
'position',[445,206,450,211])
add_block('built-in/Sum',[sys,'/',['QAM',13,'baseband/Sum1']])
set_param([sys,'/',['QAM',13,'baseband/Sum1']],...
'position',[385,210,405,230])
add_block('built-in/Product',[sys,'/',['QAM',13,'baseband/Product2']])
set_param([sys,'/',['QAM',13,'baseband/Product2']],...
'position',[310,228,340,252])
add_block('built-in/Product',[sys,'/',['QAM',13,'baseband/Product3']])
set_param([sys,'/',['QAM',13,'baseband/Product3']],...
'position',[310,183,340,207])
add_block('built-in/Note',[sys,'/',['QAM',13,'baseband/I2']])
set_param([sys,'/',['QAM',13,'baseband/I2']],...
'position',[190,155,195,160])
add_block('built-in/Note',[sys,'/',['QAM',13,'baseband/R2']])
set_param([sys,'/',['QAM',13,'baseband/R2']],...
'position',[125,135,130,140])
add_block('built-in/Inport',[sys,'/',['QAM',13,'baseband/in_2']])
set_param([sys,'/',['QAM',13,'baseband/in_2']],...
'Port','2',...
'position',[135,55,155,75])
add_block('built-in/Note',[sys,'/',['QAM',13,'baseband/I1']])
set_param([sys,'/',['QAM',13,'baseband/I1']],...
'position',[193,43,198,48])
add_block('built-in/Constant',[sys,'/',['QAM',13,'baseband/Constant1']])
set_param([sys,'/',['QAM',13,'baseband/Constant1']],...
'Value','x2',...
'position',[130,165,150,185])
add_block('built-in/Constant',[sys,'/',['QAM',13,'baseband/Constant']])
set_param([sys,'/',['QAM',13,'baseband/Constant']],...
'Value','x1',...
'position',[80,145,100,165])
add_block('built-in/Outport',[sys,'/',['QAM',13,'baseband/out_1']])
set_param([sys,'/',['QAM',13,'baseband/out_1']],...
'position',[585,130,605,150])
add_block('built-in/Inport',[sys,'/',['QAM',13,'baseband/in_1']])
set_param([sys,'/',['QAM',13,'baseband/in_1']],...
'position',[95,30,115,50])
add_block('built-in/Mux',[sys,'/',['QAM',13,'baseband/RI2C']])
set_param([sys,'/',['QAM',13,'baseband/RI2C']],...
'inputs','2',...
'Mask Display','Real/Imag\nto Complex',...
'Mask Type','Real/Imag to Complex',...
'Mask Dialogue','Construct complex vector from real and imaginary vectors.')
set_param([sys,'/',['QAM',13,'baseband/RI2C']],...
'Mask Help','The Real/Imag to Complex block creates a complex output from the two inputs. It uses a Mux block to append the complex part (input 2) to the real part (input 1).')
set_param([sys,'/',['QAM',13,'baseband/RI2C']],...
'position',[470,119,545,161])
add_block('built-in/Note',[sys,'/',['QAM',13,'baseband/R_out']])
set_param([sys,'/',['QAM',13,'baseband/R_out']],...
'position',[445,45,450,50])
add_block('built-in/Sum',[sys,'/',['QAM',13,'baseband/Sum']])
set_param([sys,'/',['QAM',13,'baseband/Sum']],...
'inputs','+-',...
'position',[375,60,395,80])
add_block('built-in/Product',[sys,'/',['QAM',13,'baseband/Product1']])
set_param([sys,'/',['QAM',13,'baseband/Product1']],...
'position',[300,93,330,117])
add_block('built-in/Product',[sys,'/',['QAM',13,'baseband/Product']])
set_param([sys,'/',['QAM',13,'baseband/Product']],...
'position',[300,33,330,57])
add_block('built-in/Note',[sys,'/',['QAM',13,'baseband/R1']])
set_param([sys,'/',['QAM',13,'baseband/R1']],...
'position',[190,15,195,20])
add_line([sys,'/',['QAM',13,'baseband']],[410,220;425,220;425,150;465,150])
add_line([sys,'/',['QAM',13,'baseband']],[400,70;425,70;425,130;465,130])
add_line([sys,'/',['QAM',13,'baseband']],[335,45;345,45;345,65;370,65])
add_line([sys,'/',['QAM',13,'baseband']],[335,105;345,105;345,75;370,75])
add_line([sys,'/',['QAM',13,'baseband']],[120,40;295,40])
add_line([sys,'/',['QAM',13,'baseband']],[238,40;238,190;305,190])
add_line([sys,'/',['QAM',13,'baseband']],[105,155;270,155;270,50;295,50])
add_line([sys,'/',['QAM',13,'baseband']],[270,155;270,235;305,235])
add_line([sys,'/',['QAM',13,'baseband']],[155,175;280,175;280,110;295,110])
add_line([sys,'/',['QAM',13,'baseband']],[280,175;280,200;305,200])
add_line([sys,'/',['QAM',13,'baseband']],[160,65;245,65;245,100;295,100])
add_line([sys,'/',['QAM',13,'baseband']],[250,100;250,245;305,245])
add_line([sys,'/',['QAM',13,'baseband']],[345,195;355,195;355,215;380,215])
add_line([sys,'/',['QAM',13,'baseband']],[345,240;355,240;355,225;380,225])
add_line([sys,'/',['QAM',13,'baseband']],[550,140;580,140])
set_param([sys,'/',['QAM',13,'baseband']],...
'Mask Display','plot(0,0,100,100,x,y,u,v);QAM',...
'Mask Type','QM DSB-SC AM CE')
set_param([sys,'/',['QAM',13,'baseband']],...
'Mask Dialogue','Modulate the in-phase and quadrature\ncomponent signal from the 1st and 2nd\ninput ports, baseband simulation.|Initial phase (rad):')
set_param([sys,'/',['QAM',13,'baseband']],...
'Mask Translate','Ph=@1;x1=cos(Ph);x2=sin(Ph);[x,y]=moduicon(1);[u,v]=cmplxicn(1,50,get_param(gcb,''orientation''));')
set_param([sys,'/',['QAM',13,'baseband']],...
'Mask Help','This block outputs the complex envelope of the quadratic multiplexed double-sideband suppressed-carrier amplitude modulated signal. The 1st and 2nd input ports input the in-phase and quadrature components. The output is a complex signal.')
set_param([sys,'/',['QAM',13,'baseband']],...
'Mask Entries','0\/')
% Finished composite block ['QAM',13,'baseband'].
set_param([sys,'/',['QAM',13,'baseband']],...
'hide name',0,...
'position',[325,58,405,102])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -