所以我一直有计划看看中频处理,上次看了零中频的闪烁噪声后,更加坚定了我要学习一下中频的决心。希望通过学习编解码的过程打通薄弱环节,下一次产品会议的时候直接怼到软件工程师的脸上。
就从最简单的QPSK开始。
QPSK的产生机理很简单。
QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。在数字信号的调制方式中QPSK四相移键控是目前最常用的一种卫星数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性。
对着框图理解代码
下面的代码是我在网上获取的资源
clc; close all;
fs = 8; fd = 1;
N = 64;
%% 产生0,1 信号
x = randi([0,1],1,N);
xi = x; %存储输入信号
%% 调制
x = 2*x(1:2:end)+x(2:2:end); %QPSK调制用数值代替信号运算
const = [1+1i,-1+1i,1-1i,-1-1i]; %映射准备,使其符合genqammod规则
x = genqammod(x,const); %映射
figure(1);
subplot(211);
stem(real(x));
title('QPSK调制后的同向分量');
subplot(212);
stem(imag(x),'r');
title('QPSK调制后的正交分量');
scatterplot(x);
title('QPSK星座图');
axis([-2,2,-2,2]);
line([-pi,0],[0,0]);
line([pi,0],[0,0]);
line([0,0],[0,pi]);
line([0,0],[0,-pi]);
%% 插值
y = upsample(x,8); %对信号进行插值
figure(3);
subplot(211);
stem(real(y));
title('上采样后的同向分量');
subplot(212);
stem(imag(y),'r');
title('上采样后的正交分量');
%% 低通滤波
% y = rcosflt(x,fd,fs,'fir/sqrt',0.25,1); %低通滤波
filter = rcosine(fd,fs,'fir/sqrt',0.25,1);
y = conv(y,filter);
figure(4);
subplot(211);
stem(real(y),'.');
title('滤波后的同向分量');
subplot(212);
stem(imag(y),'r','.');
title('滤波后的正交分量');
%% 装载波
% t = 1:length(upsample(x,8));
% y_c = cos(20*pi*t+angle(upsample(x,8)));
% figure('zaibo')
% stem(y_c,'.');
%% 加入awgn噪声
y = awgn(y,100);
%% 匹配滤波器
y = conv(y,filter);
figure(5)
subplot(211)
stem(real(y),'.');
title('匹配滤波后的同向分量');
subplot(212)
stem(imag(y),'r','.')
title('匹配滤波后的正交分量');
%% 采样
y = y(16:8:end-17); %去掉前后16个点(由两次卷积导致的冗余)
scatterplot(y)
title('采样后星座图')
axis([-2,2,-2,2]);
line([-pi,0],[0,0]);
line([pi,0],[0,0]);
line([0,0],[0,pi]);
line([0,0],[0,-pi]);
%% 解调
y_s = zeros(2*length(y)); %设置长度为两倍y的空矩阵
for n=1:length(y) %解调,根据星座图映射复原
if imag(y(n))>=0
y_s(2*n-1) = 0;
else
y_s(2*n-1) = 1;
end
if real(y(n))>=0
y_s(2*n) = 0;
else
y_s(2*n) = 1;
end
end
%% 对比
figure(7)
subplot(211)
stem(y_s,'.')
title('解调后的01信号');
subplot(212)
stem(xi,'blue','.')
title('原01信号');
图片是用代码仿真的图形,图1到图5是IQ信号产生的过程(由于图片占用空间大,有些图片删除),在这一个过程中,我们可以发现数字化的过程,如果波形发生恶化,通常发生在成型滤波的过程,往往这一步也决定了系统的EVM和邻道指标。在产生数字IQ信号后,还有个数字模拟化的过程,通常就是我们说的DAC过程。
图5、6和图7是解调的过程,也就是ADC的后处理过程,可以看到图4和图5的波形产生了失真,在发射转解调的过程中往往会有噪声的引入,这也是为甚对发射的EVM有很高的要求的原因。
QPSK的编解码过程能够让射频工程师更好的理解信号的传输链。
祝好!