今天这个是真正的过了信道的信号。
单载波QPSK。QPSK算是通过了。
简直就是个速成班啊……惨…………
关于CMA的介绍,可以参考Matlab的文档。
%%
% 单载波QPSK 接收端
% CMA均衡,LMS训练,BER循环计算
% 2017年5月18日10:37:53
clear;
close all;
clc
%%
rand_seed = 0;
rand('seed',rand_seed);
randn('seed',rand_seed);
% Set up parameters and signals.
M = 4; % Alphabet size for modulation
baud_rate = 100; % Baud rate
f_carrier1 = 75; % Carrier frequency
Nsym = 10000; % Number of symbols
msg = randi([0 M-1],Nsym,1); % Random message
hMod = comm.RectangularQAMModulator(M);
modmsg = step(hMod,msg); % Modulate using QAM. % 映射后的基带信号
trainlen = 3000; % Length of training sequence
rolloff = .3; % 滚降因子
span = 20 ; % 截断长度
sps = 10; % Samples per symbol
rrcFilter=rcosdesign(rolloff,span,sps,'sqrt'); %根升余弦滚降滤波器,‘sqrt’均方根升余弦;‘normal’升余弦
fs = baud_rate*sps; % 时间采样率,时间采样间隔为 1/fs 秒
Tsymbol=1/baud_rate;
% 2. 脉冲成型
% txSig = upfirdn(modmsg, rrcFilter, sps); % 发送端的基带复波形信号
rrcLen=length(rrcFilter);
msg_upsample=upsample(modmsg,sps);
msg_pulse_rrc=conv(msg_upsample,rrcFilter);
msg_upsample_len=length(msg_pulse_rrc);
txSig=msg_pulse_rrc(rrcLen/2:msg_upsample_len-rrcLen/2);
t = (0:1/fs:((length(txSig)-1)/fs)).';
T