% QPSK 信号调制与解调
clear all; % 清除所有变量
close all; % 关闭所有图形窗口
clc; % 清除命令窗口
ps = 45e6; % 符号速率
rate = 8; % 过采样倍数
fs = rate * ps; % 采样率
fc = 120e6; % 中频
N = 2^16; % 符号长度
%% 调制
x = randint(1, N, [0 3]); % 随机生成0到3之间的整数作为输入符号
Ia = zeros(1, N); % 初始化I路幅度值
Qa = zeros(1, N); % 初始化Q路幅度值
qpsk = pskmod(x, 4, pi/4); % 进行QPSK信号调制
scatterplot(qpsk) % 绘制星座图
Id = zeros(1, N * rate); % 初始化I路调制信号
Qd = zeros(1, N * rate); % 初始化Q路调制信号
Id = upsample(real(qpsk), fs / ps); % I路调制信号上采样
Qd = upsample(imag(qpsk), fs / ps); % Q路调制信号上采样
n_T = [-2, 2]; % 时域成型滤波器长度范围
T = 1; % 样本间隔
shape_b = rcosfir(0.8, n_T, rate, T, 'sqrt'); % I路和Q路成型滤波器
rcosi = filter(shape_b, 1, Id); % I路过成型滤波器
rcosq = filter(shape_b, 1, Qd); % Q路过成型滤波器
de_data = rcosi(3:rate:end) + 1i * rcosq(3:rate:end); % 解调后数据点
temp = [qpsk; de_data]; % 组合调制前和解调后数据点,便于绘制星座图
t = 0:1/fs:(rate * N - 1) * 1/fs; % 时间序列
fi = cos(2 * pi * fc * t); % I路本地载波
fq = sin(2 * pi * fc * t); % Q路本地载波
qpsk_mod = fi .* rcosi + fq .* rcosq; % 混合调制信号
%% 解调部分
ff = 15; % 频偏
snr = 10; % 信噪比
qpsk_mod = awgn(qpsk_mod, snr, 'measured'); % 加入高斯噪声
demod_i = qpsk_mod .* cos(2 * pi * (fc + ff) * t); % I路解调
demod_q = qpsk_mod .* sin(2 * pi * (fc + ff) * t); % Q路解调
fdi = filter(shape_b, 1, demod_i); % I路过成型滤波器
fdq = filter(shape_b, 1, demod_q); % Q路过成型滤波器
base = fdi + 1j * fdq; % 解调后的基带信号
scatterplot(base, rate) % 绘制未定时同步信号的星座图
title('未定时同步信号星座图');
di = fdi(2:2:end); % 2倍抽取,抽取后每个符号4个采样点
dq = fdq(2:2:end);
di = di./max(abs(di)); % 归一化处理
dq = dq./max(abs(dq));
% ****** Gardner 位同步算法 *********
c1 = 12 / 0.8 * 0.001; % 环路滤波器参数
c2 = 320 / 1 * 0.001 * 0.001;
i = 4;
k = 4;
ms = 4;
ns = length(di);
n = [0.7, 0.7, 0.7, 0.7, zeros(1, ns - 4)];
n_temp = n;
w = [0.5, 0.5, 0.5, 0.5, zeros(1, ns / 4 - 4)];
u = [0.6, 0.6, 0.6, 0.6, zeros(1, ns / 2 - 4)];
strobe = zeros(1, length(di));
yi = zeros(1, length(di));
yq = zeros(1, length(dq));
data_i = zeros(1, N);
data_q = zeros(1, N);
max_1 = 0;
max_2 = 0;
max_3 = 0;
max_yi = 0;
max_y4 = 0;
while (i < ns)
n_temp(i+1) = n(i) - w(ms);
if n_temp(i+1) > 0
n(i+1) = n_temp(i+1);
else
n(i+1) = n_temp(i+1) + 1; % mod(n_temp(i+1), 1);
% **** Fawwow 立方插值滤波器 ******
fi1 = 0.5 * di(i) - 0.5 * di(i - 1) - 0.5 * di(i - 2) + 0.5 * di(i - 3);
fi2 = 1.5 * di(i - 1) - 0.5 * di(i) - 0.5 * di(i - 2) - 0.5 * di(i - 3);
fi3 = di(i - 2);
yi(k) = (fi1 * u(k) + fi2) * u(k) + fi3;
fq1 = 0.5 * dq(i) - 0.5 * dq(i - 1) - 0.5 * dq(i - 2) + 0.5 * dq(i - 3);
fq2 = 1.5 * dq(i - 1) - 0.5 * dq(i) - 0.5 * dq(i - 2) - 0.5 * dq(i - 3);
fq3 = dq(i - 2);
yq(k) = (fq1 * u(k) + fq2) * u(k) + fq3;
strobe(k) = mod(k, 2);
if strobe(k) == 0 %%% 定时误差检测算法,每个符号中需2点参与运算
data_i(k - 2) = yi(k);
data_q(k - 2) = yq(k);
err(ms) = yi(k - 1) * (yi(k) - yi(k - 2)) + yq(k - 1) * (yq(k) - yq(k - 2)); % 误差检测
w(ms + 1) = w(ms) + c1 * (err(ms) - err(ms - 1)) + c2 * err(ms); % 环路滤波
ms = ms + 1;
end
k = k + 1;
u(k) = n(i) / w(ms);
end
i = i + 1;
end
figure;
plot(err);
data = data_i(2:2:end) + 1j * data_q(2:2:end);
de_qpsk = pskdemod(data, 4, pi/4); % 解调后的QPSK信号
scatterplot(data(16:end)) % 绘制定时同步信号的星座图
title('定时同步信号星座图');
没有合适的资源?快使用搜索试试~ 我知道了~
基于Gardner定时同步算法的QPSK定时同步matlab仿真,包含仿真操作录像,代码中文注释
共6个文件
jpg:4个
m:1个
avi:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 5 下载量 50 浏览量
2023-07-27
16:23:25
上传
评论 2
收藏 526KB RAR 举报
温馨提示
1.版本:matlab2013b,包含仿真操作录像和代码中文注释,操作录像使用windows media player播放。 2.领域:Gardner 3.内容:基于Gardner定时同步算法的QPSK定时同步matlab仿真。 % Fawwow 立方插值滤波器 fi1 = 0.5 * di(i) - 0.5 * di(i - 1) - 0.5 * di(i - 2) + 0.5 * di(i - 3); fi2 = 1.5 * di(i - 1) - 0.5 * di(i) - 0.5 * di(i - 2) - 0.5 * di(i - 3); fi3 = di(i - 2); yi(k) = (fi1 * u(k) + fi2) * u(k) + fi3; 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
基于Gardner定时同步算法的QPSK定时同步matlab仿真.rar (6个子文件)
2.jpg 27KB
仿真操作录像0014.avi 29.79MB
1.jpg 11KB
3.jpg 27KB
code
Runme.m 4KB
4.jpg 29KB
共 6 条
- 1
资源评论
- weixin_627583062024-04-24资源不错,对我启发很大,获得了新的灵感,受益匪浅。
- dlinking8972023-10-31终于找到了超赞的宝藏资源,果断冲冲冲,支持!
- m0_751014732024-04-23资源很赞,希望多一些这类资源。
- chainnash2023-12-19简直是宝藏资源,实用价值很高,支持!
- 2301_774807702023-11-10资源值得借鉴的内容很多,那就浅学一下吧,值得下载!
fpga和matlab
- 粉丝: 15w+
- 资源: 2548
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功