(84)QPSK频带调制(载波调制)解调与性能仿真的MATLAB实现源码

该文章已生成可运行项目,


前言

本文给出QPSK频带调制传输通信系统建模与传输性能仿真的MATLAB源码,给出仿真结果。


一、QPSK调制简介

QPSK(Quadrature Phase Shift Keying,正交相移键控)是一种数字调制技术,它通过改变载波信号的相位来传输信息。QPSK能够在一个符号周期内传输2比特的信息,相比BPSK(Binary Phase Shift Keying,二进制相移键控)每个符号周期只能传输1比特信息,QPSK的数据传输效率更高。

1. QPSK调制的原理

以下是QPSK调制的基本原理:

  1. 符号映射
    在QPSK中,每2比特被映射到一个复平面上的四个点之一。这些点通常位于单位圆上,并且彼此之间的相位差为90度。常见的映射方式如下:

• 00 → 1 + 0j(或者cos(0) + jsin(0))
• 01 → 0 + 1j(或者cos(π/2) + jsin(π/2))
• 10 → -1 + 0j(或者cos(π) + jsin(π))
• 11 → 0 - 1j(或者cos(3π/2) + jsin(3π/2))

  1. 调制过程
    调制过程涉及将数字比特流转换为模拟信号。对于QPSK调制,这个过程包括以下步骤:

• 串并转换:将连续的比特流分成两个并行流,每个流包含一个比特。

• 符号形成:每对比特被映射到上述的四个相位之一。

• 载波调制:将映射后的符号与两个正交(相位差90度)的载波信号相乘,通常这两个载波是cos(ωt)和sin(ωt)。

  1. 信号传输
    调制后的信号通过信道传输。在实际应用中,为了提高传输的可靠性,通常会在调制之前进行一些预处理,如符号交错、滤波等。
  2. 解调过程
    接收端进行相反的操作来恢复原始比特流:

• 载波同步:接收端需要恢复出与发送端同频同相的载波,以便正确地解调信号。

• 符号检测:通过比较接收到的信号与可能的符号相位,确定最接近的相位,从而恢复出原始的比特对。

  1. 并串转换
    最后,将恢复出的并行比特流转换成串行比特流,以供后续处理。

2. QPSK调制的特点与应用

QPSK调制由于其较高的频谱效率和良好的抗噪声性能,在无线通信系统中得到了广泛应用,如卫星通信、蜂窝移动通信等。随着技术的发展,QPSK也被进一步扩展为更高阶的调制方式,如16-QAM、64-QAM等,以支持更高的数据传输速率。

二、MATLAB仿真源码

% 设置仿真参数
N = 1e5;                        % 仿真符号个数
EbN0dB = -4:2:12;               % 每比特能量与噪声功率谱密度之比,单位dB
OSF = 8;                        % 过采样因子
fc = 1e3;                       % 载波频率
BER = zeros(1,length(EbN0dB));  % 每个Eb/N0对应一个仿真BER值
%% 发射机
a = randi([0 1],1,N);           % 生成均匀分布的随机0、1符号

% QPSK基带调制,调制输出为基带波形
s_t = qpsk_modulator(a, fc, OSF);
%% 接收机
for i = 1:length(EbN0dB)
    % AWGN信道
    L = 2 * OSF;
    SNRdB = EbN0dB(i) + 10*log10(2);
    r = add_awgn_noise(s_t,SNRdB,L);
    
    % QPSK解调
    [a_hat,samp_for_decision_I,samp_for_decision_Q] = qpsk_demodulator(r, fc, OSF);

    BER(i) = sum(a ~= a_hat) / N;    % 计算误比特率
    
   % 观察接收信号
    if i == length(EbN0dB)
        s = complex(samp_for_decision_I, samp_for_decision_Q);
        figure()
        plot(s, '*');
        grid on
        title('接收QPSK信号的星座图')
    end
end
%% BPSK的理论误码率
EbN0_line = 10.^(EbN0dB/10);
theoreticalBER = theoreticalBER_qpsk(EbN0_line);
%% 画图:性能曲线
figure()
semilogy(EbN0dB, BER, 'bo','linewidth',1);
hold on
semilogy(EbN0dB, theoreticalBER, 'r-','linewidth',1);
grid on;
legend('Simulated', 'Theoretical')
title('Probability of Bit Error for QPSK modulation');
xlabel('E_b/N_0 (dB)')
ylabel('Probability of Bit Error - P_b');

三、仿真结果

1.QPSK基带调制信号与频带调制信号的波形图

在这里插入图片描述

2. 接收机QPSK星座图

在这里插入图片描述

3. QPSK频带调制系统的性能仿真曲线

在这里插入图片描述

四、子函数与完整代码

子函数与完整代码列表如下:
在这里插入图片描述

完整代码,已上传至我的资源(欢迎下载):

https://download.csdn.net/download/weixin_45333185/90141109?spm=1001.2014.3001.5503

总结

暂无。



本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值