mod_qpsk.m
来自「QPSK调制matlab程序 包括基带成型滤波器 (升余弦滤波器)」· M 代码 · 共 45 行
M
45 行
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 + =
减小字号Ctrl + -
显示快捷键?