数字频带传输——多进制数字调制及MATLAB仿真

2023-11-05 09:00:33 浏览数 (2)

前言

数字频带信号通常也称为数字调制信号,其信号频谱通常是带通型的,适合于在带通型信道中传输。数字调制是将基带数字信号变换成适合带通型信道传输的一种信号处理方式,正如模拟通信中的一样,可以通过对基带信号的频谱搬移来适应信道特性,也到同样的目的可以采用频率调制、相位调制的方式来达到同样的目的。

本文将主要通过 Matlab 来学习多进制的调制解调方式,包括 QPSK、OQPSK,并分析和仿真这些调制系统在 AWGN 信道下的性能。


一、MASK(一维信号)

1、MASK 简介

MASK 信号将 M 进制数字符号一一映射为 M 个幅度值不同的波形,可以写成如下形式:

s_m(t)=A_mg(t)cos2pi f_ct hspace{0.5cm} (m=1,2,...,M,0le tle T_s)

这里 {

A_m,1le mle M

} 与M进制符号一一对应,一般

M=2^k

,且

A_m=(2m-1-M)d

m=1,2,...,M

g(t)

是基带成形信号。

2、MASK 矢量表示

s_m(t)=s_mf(t)

其中,

f(t)=sqrt{frac{2}{varepsilon_g}}g(t)cos2pi f_ct

,(

int_{-infty}^{infty}f^2(t)dt=1

),

s_m=A_m sqrt{varepsilon_g/2}

(m=1,2,...M)

,这里

varepsilon_g=int_{-infty}^{infty}g^2(t)dt

因此,MASK信号可以用一维信号空间中的点(星座)表示,如下图示意了 8ASK 的星座图。

PAM 信号星座

二、MPSK(二维信号)

1、MPSK 简介

MPSK 信号将 M进制符号与 M 个载波相位一一对应,可以写成如下形式:

s_m(t)=g(t)cosfrac{2pi}{M}(m-frac{1}{2})cos2pi f_ct-g(t)sinfrac{2pi}{M}(m-frac{1}{2})sin2pi f_ct

2、MPSK 矢量表示

s_m(t)=s_{m1}f_1(t) s_{m2}f_2(t)

其中:

f_1(t)=sqrt{frac{2}{varepsilon_g}}g(t)cos2pi f_ct

f_2(t)=-sqrt{frac{2}{varepsilon_g}}g(t)sin2pi f_ct

int_{-infty}^{infty}f_1(t)f_2(t)dt=0
s_{m1}=sqrt{frac{varepsilon_g}{2}}cosfrac{2pi}{M}(m-frac{1}{2})

s_{m2}=sqrt{frac{varepsilon_g}{2}}sinfrac{2pi}{M}(m-frac{1}{2})
s_m=[s_{m1},s_{m2}]

m=1,2,...M

E_s=varepsilon_g/2

因此,MPSK 可以用二维空间中的星座点表示,下图示意了 QPSK 调制的星座图

QPSK 信号星座(M=4)

三、MQAM(二维信号)

1、MQAM 简介

用载波的不同幅度、相位对应 M 进制符号,则可以得到 QAM (正交幅度调制)信号,可以写成:

s_m(t)=A_cg(t)cos2pi f_ct-A_sg(t)sin2pi f_ct,0le t le T_s

其等效基带信号为

[A_c jA_s]g(t)

2、MQAM 信号的矢量表示

取正交函数:

f_1(t)=sqrt{frac{2}{varepsilon_g}}g(t)cosomega_ct

f_2(t)=sqrt{frac{2}{varepsilon_g}}g(t)sinomega_ct

则:

s_m(t)=A_csqrt{frac{varepsilon_g}{2}}f_1(t) A_ssqrt{frac{varepsilon_g}{2}}f_2(t)

因此,

s_m(t)

可以用二维空间中的星座点

(A_csqrt{frac{varepsilon_g}{2}},A_ssqrt{frac{varepsilon_g}{2}})

表示,若

A_c=(2n-1-sqrt{M})d,A_s=(2k-1-sqrt{M})d

k,n=1,2,...sqrt{M}

当 M=16,

A_c=pm d,pm 3d,A_s=pm d,pm 3d

,得到典型的 16QAM 星座图如下图所示:

16QAM 信号星座

四、正交 MFSK(M维信号)

1、正交 MFSK 简介

用不同频率的余弦载波波形一一对应 M 进制符号,则得到 MFSK 信号,其信号可写成:

s_m(t)=Acos(2pi f_ct 2pi mDelta ft),m=1,2,...,M

其等效基带信号为

tilde{s_m(t)}=Ae^{j2pi mDelta ft}

,为了保证这 M 个信号互相正交,要求最小的

Delta f=frac{1}{2T_s}

2、M 进制正交信号的矢量表示

M 进制正交信号可以表示为:

s_m(t)=sqrt{E_s}f_m(t)

这里,

f_m(t)=sqrt{frac{2}{T_s}}cos(2pi f_ct frac{pi mt}{T_s})

E_s=frac{1}{2}A^2T_s

,所以,

s_m(t)

可以用点(

sqrt{E_s},0,0,...,0

)、(

0,sqrt{E_s},0,...,0

)、(

0,0,sqrt{E_s},...,0

)…(

0,0,0,...,sqrt{E_s}

表示,两点之间的最小距离

d_{min}=sqrt{2E_s}

五、MATLAB 仿真

场景:设信道加性高斯白噪声的双边功率谱密度为

N_0/2

,发送信号平均每符号能量

E_s

,利用 MATLAB ,通过仿真的方法仿真 QPSK 系统在 AWGN 信道下的性能

思路:利用 MATLAB ,可以通过蒙特卡罗仿真的方式得到 MPSK 系统的误码率,如下图所示

MPSK 等效基带系统在无码间干扰 AWGN 信道下性能仿真框图

1、MATLAB 源码

代码语言:javascript复制
%MPSK系统系统的仿真
clear all;
close all;

M=4;     %QPSK

EsN0dB = 3:0.5:10;
EsN0 = 10.^( EsN0dB/10 );
Es = 1;
N0 = 10.^( -EsN0dB/10 );
sigma = sqrt(N0/2);

error = zeros(1,length(EsN0dB));
s_data = zeros(1,length(EsN0dB));

for k=1:length(EsN0dB)
    error(k)=0;
    s_data(k) = 0;
    while error(k)<1000
        %产生信源 1,2,3,4均匀分布
        d = ceil( rand(1,10000)*M );
        %调制成QPSK信号(复基带形式)
        s = sqrt(Es)*exp(j*2*pi/M*(d-1));
        %加入信道噪声(复噪声)
        r = s   sigma(k)*( randn(1,length(d))   j*randn(1,length(d)) );
        %判决
        for m=1:M    %计算距离
            rd(m,:) = abs( r - sqrt(Es)*exp(j*2*pi/M*(m-1)) );
        end
        for m=1:length(s)   %判决距离最近的点
            dd(m) = find( rd(:,m) == min(rd(:,m)) );
            if dd(m)~=d(m)
                error(k) = error(k) 1;
            end
        end
        s_data(k) = s_data(k) 10000;
    end
%    drawnow
%    semilogy(EsN0dB, error./(s_data eps)); hold on;
end

Pe = error./s_data;
%理论计算的误码率结果
Ps = erfc( sqrt(EsN0)*sin(pi/M) );
semilogy(EsN0dB,Pe,'b*-'); hold on;
semilogy(EsN0dB,Ps,'rd-');
xlabel('Es/N0(dB)'); ylabel('误码率');
legend('仿真结果','理论计算结果');

2、仿真及结果

从上图可以看到,仿真结果与理论计算结果的误码率曲线基本重合。

0 人点赞