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

📄 c8_pi4demo.m

📁 通信信息系统仿真原理与无线应用之matlab
💻 M
字号:
% File: c8_pi4demo.m
% Software given here is to accompany the textbook: W.H. Tranter, 
% K.S. Shanmugan, T.S. Rappaport, and K.S. Kosbar, Principles of 
% Communication Systems Simulation with Wireless Applications, 
% Prentice Hall PTR, 2004.
%
m = 200;	bits = 2*m;						% number of symbols and bits
sps = 10;									% samples per symbol
iphase = 0;									% initial phase
order = 5;									% filter order
bw = 0.2;									% normalized filter bandwidth
%
% initialize vectors
%
data = zeros(1,bits); d = zeros(1,m); q = zeros(1,m);
dd = zeros(1,m); qq = zeros(1,m); theta = zeros(1,m);
thetaout = zeros(1,sps*m);
%
% set direct and quadrature bit streams
%
data = round(rand(1,bits));
dd = data(1:2:bits-1);
qq = data(2:2:bits);
%
% main programs
%
theta(1) = iphase;						% set initial phase
thetaout(1:sps) = theta(1)*ones(1,sps);
for k=2:m
   if dd(k) == 1
      phi_k = (2*qq(k)-1)*pi/4;
   else
      phi_k = (2*qq(k)-1)*3*pi/4;
   end   
   theta(k) = phi_k + theta(k-1);
   for i=1:sps
      j = (k-1)*sps+i;
      thetaout(j) = theta(k);
   end
end
d = cos(thetaout);
q = sin(thetaout);
[b,a] = butter(order,bw);
df = filter(b,a,d);
qf = filter(b,a,q);
%
% postprocessor for plotting
%
kk = 0;                                 % set exit counter
while kk == 0                           % test exit counter
k = menu('pi/4 QPSK Plot Options',...
        'Unfiltered pi/4 QPSK Signal Constellation',...
        'Unfiltered pi/4 QPSK Eye Diagram',...
        'Filtered pi/4 QPSK Signal Constellation',...
        'Filtered pi/4 OQPSK Eye Diagram',...
        'Unfiltered Direct and Quadrature Signals',...
        'Filtered Direct and Quadrature Signals',...
        'Exit Program');
        if k == 1
                sigcon(d,q)             	% plot unfiltered signal con. 
                pause
        elseif k ==2
                dqeye(d,q,4*sps)        	% plot unfiltered eye diagram
                pause
        elseif k == 3
                sigcon(df,qf)           	% plot filtered signal con.
                pause
        elseif k == 4
                dqeye(df,qf,4*sps)      	% plot filtered eye diagram
                pause
        elseif k == 5
                numbsym = 10;           	% number of symbols plotted
                dt = d(1:numbsym*sps);  	% truncate d vector
                qt = q(1:numbsym*sps);  	% truncate q vector
                dqplot(dt,qt)          	    % plot truncated d and q signals
                pause
        elseif k == 6
                numbsym = 10;           	% number of symbols to be plotted
                dft=df(1:numbsym*sps);  	% truncate df to desired value
                qft=qf(1:numbsym*sps);  	% truncate qf to desired value
                dqplot(dft,qft)       		% plot truncated signals
                pause
        elseif k == 7
                kk = 1;                 	% set exit counter to exit value
        end
end
% End of script file.

⌨️ 快捷键说明

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