QPSK调制解调原理及MATLAB仿真

这篇具有很好参考价值的文章主要介绍了QPSK调制解调原理及MATLAB仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


⭐️作者简介:小瑞同学,主要学习FPGA、信号处理、通信等。
🍎个人主页:小瑞同学的博客主页
🌻个人信条:越努力,越幸运!
⏰日期:2023.11.16
📖文章内容概述:简单介绍了QPSK的基本原理和具体流程,并使用MATLAB进行了仿真分析。


1.QPSK简介

👻QPSK(正交相移键控),是一种广泛使用的数字调制方式,具有较高的频道利用率和很强的抗干扰性能。QPSK是通过不同的载波相位来区分传输的信息,传输的码元中每2个bit代表一个符号,符号映射成4种相位,各相位之间相差 π / 2 \pi/2 π/2。相位映射关系如下表所示:

2bit码元 A方式 B方式
0 0 0 0 0 5 π / 4 5\pi/4 5π/4
0 1 π / 2 \pi/2 π/2 3 π / 4 3\pi/4 3π/4
1 1 π \pi π π / 4 \pi/4 π/4
1 0 3 π / 2 3\pi/2 3π/2 7 π / 4 7\pi/4 7π/4

👻在实际系统中,通常使用两路正交的BPSK信号相加来产生QPSK信号,每路各传输符号的1bit,而且B方式使用的更多,B方式的星座图如下图所示。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理
下面就介绍一下QPSK的具体实现过程。

2.QPSK调制

👻流程图取自知乎,过程如下:
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

2.1 双极性转换

👻对码元序列中的每个bit进行极性转换,即0->-1,1->1,这样原来的01序列就变成-1,+1序列。这样做的目的是将一个符号在QPSK星座图中表示出来,符号在星座图中的位置对应于不同的相位。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

2.2 串并转换

👻将序列分为IQ两路传输,序列的奇数位进入I路,偶数位进入Q路。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

2.3 成型滤波

👻波成型,即基带调制,是将一个符号序列映射成一个连续波形信号的过程,本质上是将离散信号转化为连续信号,调制后的信号仍是基带信号。为了实现无码间串扰传输,一般采用具有升余弦特性的滚降滤波器进行波成型。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

2.4 载波调制

👻载波调制就是将基带信号调制到载波频率附近的过程。I、Q两路信号分别与相差 π \pi π\2的正弦载波相乘,得到两路相互正交的BPSK信号。将两路信号相加即得到QPSK调制信号。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

3.已调信号经过信道

👻这里采用信噪比为5的高斯白噪声信道。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

4.QPSK解调

👻解调过程如下:
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

4.1 相干解调

👻相干解调就是将QPSK信号分别乘与发射机同频同相的相干载波,进行频谱搬移,这样又得到两路信号。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

4.2 低通滤波器

👻相干解调后同时产生了高频成分和低频成分,需要将高频成分滤除,低通滤波器的截止频率设置为码元速率 R b R_b Rb
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

4.3 匹配滤波

👻匹配滤波器是一种最佳滤波,当信号具有某种波形时,其输出信噪比最大,匹配滤波器一般选取与成型滤波器相同。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

4.4 抽样判决

👻选取信号中间时刻进行判决,值大于0判定为1,小于0则判定为0。判决后将两路合并即得到最终接收到的信号。可以看到波形与发送的数字序列相同,由于中间滤波器的影响,波形产生了少许平移。
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

5.QPSK误码性能曲线

👻随着信噪比的增大,误码率越来越小
qpsk调制,MATLAB专栏,matlab,开发语言,信息与通信,信号处理

6.参考程序

% =========QPSK.m=======================
% Author          : 小瑞同学
% Date            : 2023.11.13
% Description     : QPSK调制解调通信系统仿真
% Source          : 课程设计
% ======================================

clc;
close;
clear all;

%% 定义参数
Rb=1e3;%码元速率
Tb=1/Rb;%码元间隔
L=50;%码元长度
N=30;%一个码元的采样次数,N=Tb/Ts
Ts=Tb/N;%采样间隔
Fs=1/Ts;%采样频率
T=Tb*L;%基带波形总时间
t=0:Ts:T-Ts;%基带波形时间向量
t_iq=0:Ts:T/2-Ts;%I、Q两路波形时间向量
t0=0:Tb:Tb*L-Tb;%输入信号波形时间向量


%% 双极性转换
wave=randi([0,1],1,L);%产生随机码元序列
wave=2*wave-1;%变换极性
figure(1);
subplot(211);
plot(t0,wave);
title('输入的数字信号波形');

%采样
for i=1:N
x1(i,:)=wave;
end
wave_base=reshape(x1,1,L*N);
subplot(212);
plot(t,wave_base);
title('采样后的基带信号波形');

%% QPSK符号映射
%基带信号奇数位映射为I路,偶数位映射为Q路
I_t=wave(1:2:end);
Q_t=wave(2:2:end);
%采样(另一种写法)
m=ones(1,N);
x2=I_t(m,:);
I=reshape(x2,1,L*N/2);
x3=Q_t(m,:);
Q=reshape(x3,1,L*N/2);

figure(2);
subplot(211);
plot(t_iq,I);
title('采样后的I路信号波形');
subplot(212);
plot(t_iq,Q);
title('采样后的Q路信号波形');
figure(3);
scatter(I_t,Q_t);
set(gca,'XAxisLocation','origin');
set(gca,'YAxisLocation','origin');
title('QPSK星座图');
%%波成形
a=rcosdesign(0.5,6,N);%升余弦滚降滤波器
filter_delay1=(length(a)-1)/2;%滤波器有一定的延迟
I=filter(a(filter_delay1:end),1,I);
Q=filter(a(filter_delay1:end),1,Q);
figure(4);
subplot(211);
plot(t_iq,I);
title('I路信号成形滤波后的波形');
subplot(212);
plot(t_iq,Q);
title('Q路信号成形滤波后的波形');
%% 载波调制
fc=8e3;%这里为了便于观察,取了较低的载波频率
carrier1=cos(2*pi*fc*t_iq);
psk1=I.*carrier1;
carrier2=-sin(2*pi*fc*t_iq);
psk2=Q.*carrier2;
qpsk=psk1+psk2;
figure(5);
plot(t_iq,qpsk);
title('QPSK调制信号');
%% 已调信号经过高斯白噪声信道
SNR=5;%信噪比
qpsk_trans=awgn(qpsk,SNR);
figure(6);
plot(t_iq,qpsk_trans);
title('经过高斯白噪声信道的已调信号');
%% 相干解调
I_dem=qpsk_trans.*carrier1;
Q_dem=qpsk_trans.*carrier2;
figure(7);
subplot(211);
plot(t_iq,I_dem);
title('相干解调后的I路信号波形');
subplot(212);
plot(t_iq,Q_dem);
title('相干解调后的Q路信号波形');
%% 低通滤波
fp=Rb;
wp=2*fp/Fs;
b=fir1(80,wp,'low');
filter_delay2=(length(b)-1)/2;
%求滤波器幅频响应
[h,w]=freqz(b,1,'whole');
f=w*Fs/2/pi;%数字频率转模拟频率
H=20*log(abs(h));
I_dem_filter=filter(b(filter_delay2:end),1,I_dem);
Q_dem_filter=filter(b(filter_delay2:end),1,Q_dem);
figure(8);
subplot(311);
plot(f,H);
title('低通滤波器的幅频响应');
subplot(312);
plot(t_iq,I_dem_filter);
title('I路信号经低通滤波后的波形');
subplot(313);
plot(t_iq,Q_dem_filter);
title('Q路信号经低通滤波的波形');
%%匹配滤波
c=rcosdesign(0.5,6,N);%用与发送端相同的升余弦滚降滤波器
filter_delay3=(length(c)-1)/2;
I_dem_filter=filter(c(filter_delay3:end),1,I_dem_filter);
Q_dem_filter=filter(c(filter_delay3:end),1,Q_dem_filter);
figure(9);
subplot(211);
plot(t_iq,I_dem_filter);
title('I路信号经匹配滤波后的波形');
subplot(212);
plot(t_iq,Q_dem_filter);
title('I路信号经匹配滤波后的波形');
%% 抽样判决
d=0;%判决门限
I_rec=[];
Q_rec=[];
%取码元中间时刻的值进行判决
for i=N/2:N:L*N/2
        if I_dem_filter(i)>0
            I_rec=[I_rec,1];
        else
            I_rec=[I_rec,0];
        end
end
for j=N/2:N:L*N/2
        if Q_dem_filter(j)>0
            Q_rec=[Q_rec,1];
        else
            Q_rec=[Q_rec,0];
        end
end

%% I、Q两路合并输出
sig_rec=zeros(1,L);
sig_rec(1:2:end)=I_rec;
sig_rec(2:2:end)=Q_rec;

figure(10);
plot(t0,sig_rec);
title('最终接收到的信号');
%% 误码性能分析
SNR1=1:20;
QPSK_awgn=1/2*erfc(sqrt(10.^(SNR1/10)/2));
figure(11);
semilogy(SNR1,QPSK_awgn,'r-*');
title('QPSK误码性能曲线');
xlabel('信噪比(dB)');ylabel('BER');




❤️如果觉得文章对你有所帮助的话,别忘了点个收藏哦~
❤️更多优质内容可浏览本人主页👇,期待再次与你相遇!
🎉🎉🎉🎉🎉🎉小瑞同学的博客主页🎉🎉🎉🎉🎉🎉文章来源地址https://www.toymoban.com/news/detail-851682.html

到了这里,关于QPSK调制解调原理及MATLAB仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于MATLAB的BPSK和QPSK调制的性能比较

    摘要: 本文基于研究了MATLAB设计了一个数字通信系统,该系统研究比较了同一数据在不同信噪比下通过高斯信道时BPSK和QPSK的误码率,以及通过同一个瑞利信道时,不同信噪比下两种调制方式的误码率,同时本文也对BPSK和QPSK作了简要介绍。最后,本文研究了QPSK在高斯信道和

    2024年02月06日
    浏览(92)
  • 【FPGA教程案例34】通信案例4——基于FPGA的QPSK调制信号产生,通过matlab测试其星座图

    FPGA教程目录 MATLAB教程目录 ---------------------------------------------------------------------------------------   目录 1.软件版本 2.QPSK调制原理

    2023年04月12日
    浏览(65)
  • m基于FPGA的QPSK调制解调通信系统verilog实现,包含testbench,不包含载波同步

    目录 1.算法仿真效果 2.算法涉及理论知识概要 3.Verilog核心程序 4.完整算法代码文件 本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition 其中Vivado2019.2仿真结果如下:  Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition的测试结果如下:        

    2024年02月12日
    浏览(47)
  • 基于DNN深度学习网络的OFDM+QPSK信号检测算法matlab仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 matlab2022a          正交频分复用(OFDM)是一种多载波调制技术,已经广泛应用于数字通信领域。OFDM信号检测是接收端的关键问题之一,目的是将接收到的OFDM信号恢复为原始

    2024年02月15日
    浏览(38)
  • 通信原理与MATLAB(十一):QAM的调制解调

    QAM调制原理如下图所示,基带码元波形经过串并转换分成I、Q两路,然后再经过电平转换(00转换成-1,01转换成-3,10转换成1,11转换成3),再与对应的载波相乘,然后再相加完成QAM的调制。 本次采用的是16QAM,M=16=2^k,因此k=4, L=2^(k/2)=4 QAM的解调原理如下图所示,QAM信号再分为I、Q两路

    2024年02月12日
    浏览(47)
  • 通信原理与MATLAB(五):FM的调制解调

    FM是频率调制,是用基带信号控制载波的频率,其实现原理如下图所示,基带信号经过积分器,然后和载波信号一起输入给调相器,基带信号控制载波的频率,实现FM的调制。 FM的解调原理如下图所示,FM信号经过信道传输之后,通过鉴频器变成调幅调频波,然后经过移相器,

    2024年02月08日
    浏览(41)
  • 通信原理与MATLAB(一):AM的调制解调

    AM的调制原理如下图所示,基带信号m(t)和直流量A0相加,然后和高频载波相乘实现AM信号的调制。 AM的解调原理如下图所示,AM信号经过信道传输之后,再和载波相乘,然后经过低通滤波,隔直流之后恢复出原始基带信号。 AM.m文件,主文件 T2F.m文件,FFT功能 F2T.m文件,IFFT功能

    2023年04月08日
    浏览(51)
  • 通信原理与MATLAB(十二):MSK的调制解调

    MSK调制原理如下图所示,基带码元先差分编码,然后经过串并转换分成I、Q两路,再与对应的载波相乘,然后再相加完成MSK的调制。 其中注意:I、Q两路码元分别是差分编码后的相对码的奇数和偶数位置上的码元,I路对应于奇数,Q路对应于偶数。而pk是I路码元,但是其码元宽

    2024年02月12日
    浏览(44)
  • 【MATLAB源码-第120期】基于matlab的GFSK系统调制解调仿真,输出各个节点的波形以及功率谱。

    GFSK(高斯频移键控)是一种数字调制技术,广泛应用于无线通信领域,尤其是在低功率和短距离通信系统中,例如蓝牙技术。GFSK是频移键控(FSK)的一种改进形式,通过使用高斯滤波器对基带信号进行处理,以实现更高的频谱效率和更低的带外辐射。以下是GFSK系统的详细介

    2024年01月22日
    浏览(51)
  • 通信原理与MATLAB(七):2FSK的调制解调

    2FSK调制原理如下图所示,基带码元d(t)中码元为1时,波形为频率为f1的高频载波;基带码元d(t)中码元为0时,波形为频率为f2的高频载波实现2FSK信号的调制,即基带码元和f1的高频正弦波相乘生成2ASK,基带码元的反码和f2的高频正弦波相乘生成第二个2ASK,两个2ASK相加得到2FSK。

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包