📄 mod_qpsk.m
字号:
function mod_seq=mod_qpsk(seq,Fb,Fc,Fs,base_shape)
% mod_seq=mod_qpsk(seq,Fb,Fc,Fs)
% MOD_QPSK the function complete QPSK modulation for the
% input data sequence:seq, Fb is the data rate, Fc is the
% carrier frequency, Fs is the sampling frequency
% mod_seq is the output sequence with length of (length(seq)/2)*Fs/Fd
% 分为IQ两路正交调制,基带波形为升余弦,seq: [-1 1]
% 05.3.28增加参数 base_shape, 可选择基带波形:矩形(默认)和升余弦
if nargin < 5
base_shape = '';
end;
Rb=2*Fb; % bit rate
T_interval=length(seq)/Rb;
M=length(seq);
i_seq=seq(1:2:M-1); % 前提:M为偶数长序列
q_seq=seq(2:2:M);
ratio=Fs/Fb;
iseq_sampled=zeros(1,length(i_seq)*ratio);
qseq_sampled=zeros(1,length(q_seq)*ratio);
for i=1:length(i_seq),
iseq_sampled((i-1)*ratio+1:i*ratio)=i_seq(i);
end;
for i=1:length(q_seq),
qseq_sampled((i-1)*ratio+1:i*ratio)=q_seq(i);
end;
if strcmp(base_shape,'rcos')
%% raised cosine pulse
alpha=0.5;
iseq_filtered=rcos_shaped(iseq_sampled,Fb/2,Fs,alpha);
qseq_filtered=rcos_shaped(qseq_sampled,Fb/2,Fs,alpha);
else
%% rectangle pulse------default
iseq_filtered=iseq_sampled;
qseq_filtered=qseq_sampled;
end;
Ts=1/Fs;
t=0:Ts:T_interval-Ts;
mod_seq=iseq_filtered.*cos(2*pi*Fc*t)-qseq_filtered.*sin(2*pi*Fc*t);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -