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

📄 c8_pi4demo.m

📁 经典书籍《通信系统仿真原理与无线应用》chap8部分课后题仿真源代码
💻 M
字号:
% File: c8_pi4demo.m
clear
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);
%改8-4
%beta=0.7;
%delay=4;
%h=rcos(sps,delay,beta);
%df = conv(d,h);
%qf = conv(q,h);
%
% 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 + -