最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于 MATLAB的 QPSK 调制解调仿真

来源:动视网 责编:小OO 时间:2025-09-27 20:55:21
文档

基于 MATLAB的 QPSK 调制解调仿真

基于MATLAB的QPSK调制解调仿真一、实验目的(1)熟悉2QPSK调制解调原理。(2)掌握编写2QPSK调制解调程序的要点。(3)掌握使用MATLAB调制解调仿真的要点。二、实验内容(1)根据2QPSK调制解调原理,设计源程序代码。(2)通过MATLAB软件仿真给定信号的调制波形。(3)对比给定信号的理论调制波形和仿真解调波形。三、实验原理QPSK即四进制移向键控(quaternaryphaseshiftkeying),它利用载波的4种不同相位来表示数字信息,由于每一种载波相位代表两个比特
推荐度:
导读基于MATLAB的QPSK调制解调仿真一、实验目的(1)熟悉2QPSK调制解调原理。(2)掌握编写2QPSK调制解调程序的要点。(3)掌握使用MATLAB调制解调仿真的要点。二、实验内容(1)根据2QPSK调制解调原理,设计源程序代码。(2)通过MATLAB软件仿真给定信号的调制波形。(3)对比给定信号的理论调制波形和仿真解调波形。三、实验原理QPSK即四进制移向键控(quaternaryphaseshiftkeying),它利用载波的4种不同相位来表示数字信息,由于每一种载波相位代表两个比特
基于 MATLAB的 QPSK 调制解调仿真

一 、 实 验 目 的

( 1 ) 熟 悉2QPSK 调制解调原理。

(2)掌握编写2QPSK 调制解调程序的要点。

(3)掌握使用MATLAB 调制解调仿真的要点。

二 、 实 验 内 容

( 1 ) 根 据2QPSK 调制解调原理,设计源程序代码。

( 2 ) 通 过MATLAB软件仿真给定信号的调制波形。

(3)对比给定信号的理论调制波形和仿真解调波形。

三 、 实 验 原 理

QPSK即四进制移向键控(quaternary phase shift keying),它利用载波的4 种不同相 位来表示数字信息,由于每一种载波相位代表两个比特信息,因此每个四进制码元可以 用两个二进制码元的组合来表示。两个二进制码元中的前一个码元用a 表示,后一个码 元用b 表示。

图2-18-1    QPSK 调制原理

由 QPSK 信号的调制原理可知,对它的解调可以采用与2PSK 信号类似的解调方法 进行解调。解调原理图如图2-18-2 所示,同相支路和正交支路分别采用相干解调方 式解调,得到I ( t )和 Q(t),经过抽样判决和并/串交换器,将上下支路得到的并行数 据恢复成串行数据。

图2-18-2    QPSK 解调原理

四 、  程 序 设 计

(1 )利用QPSK 正交调制器,用调相法产生QPSK信号 。

( 2 ) 画 出 QPSK 信 号 的 波 形 。

( 3 ) 利 用 相 干 解 调 法 , 画 出QPSK解 调 后 的 信 号 。

五 、  设 计 流 程

( 1 ) 首 先 ,用 调 相 法 产 生QPSK  信 号 。

( 2 ) 使 用 MATLAB 画 出 QPSK  信 号 的 波 形 。

(3)根据相干解调法,画出解调后的波形,与原始信号波形进行比较。

六 、  源 程 序 代 码

clear all;clc;

N=20;%比特数

T=1;%比特周期

fc=2;%载波频率

Fs=100;%抽样频率

bitstream=randi([0,1],1,N);%随机产生的比特数0、1

bitstream=2*bitstream-1;%单极性变为双极性(0到-1;1到1)

I=[];Q=[];

%奇数进I路,偶数进Q路

for i=1:N

    if mod(i,2)~=0

        I=[I,bitstream(i)];

    else

        Q=[Q,bitstream(i)];

    end

end

%采用绘图比较I、Q比特流

bit_data=[];

for i=1:N

    bit_data=[bit_data,bitstream(i)*ones(1,T*Fs)];%在一个比特周期里面有T*Fs个1和采样点一模一样

end

I_data=[];Q_data=[];

for i=1:N/2

    %I路和Q路是原来比特周期的两倍,2Tb=Ts(码元周期),因此采样点个数为T*Fs*2

    I_data=[I_data,I(i)*ones(1,T*Fs*2)];

    Q_data=[Q_data,Q(i)*ones(1,T*Fs*2)];

end

%绘图

figure();

%时间轴

t=0:1/Fs:N*T-1/Fs;

subplot(3,1,1)

plot(t,bit_data);legend('Bitstream')%比特信息

subplot(3,1,2)

plot(t,I_data);legend('I Bitstream')%I路信息

subplot(3,1,3)

plot(t,Q_data);legend('Q Bitstream')%Q路信息

%载波信号

bit_t=0:1/Fs:2*T-1/Fs;%载波周期为2倍比特周期,定义时间轴

%定义I路和Q路的载波

I_carrier=[];Q_carrier=[];

for i=1:N/2

    I_carrier=[I_carrier,I(i)*cos(2*pi*fc*bit_t)];%I路载波信号

    Q_carrier=[Q_carrier,Q(i)*cos(2*pi*fc*bit_t+pi/2)];%Q路载波信号

end

%传输信号

QPSK_signal=I_carrier+Q_carrier;

%绘图

figure();%产生一个新图

subplot(3,1,1)

plot(t,I_carrier);legend('I signal')%I路信号

subplot(3,1,2)

plot(t,Q_carrier);legend('Q signal')%Q路信号

subplot(3,1,3)

plot(t,QPSK_signal);legend('QPSK signal')%I路、Q路和的信号

snr=1;%信躁比

%接收信号

QPSK_receive=awgn(QPSK_signal,snr);%awgn()添加噪声

%解调

for i=1:N/2

    I_output=QPSK_receive(1,(i-1)*length(bit_t)+1:i*length(bit_t)).*cos(2*pi*fc*bit_t);

    if sum(I_output)>0 %积分器求和,大于0为1,否则为-1

        I_recover(i)=1;

    else

        I_recover(i)=-1;

    end

     Q_output=QPSK_receive(1,(i-1)*length(bit_t)+1:i*length(bit_t)).*cos(2*pi*fc*bit_t+ pi/2);

    if sum(Q_output)>0

        Q_recover(i)=1;

    else

        Q_recover(i)=-1;

    end

end

%并/串变换

bit_recover=[];

for i=1:N

    if mod(i,2)~=0

        bit_recover=[bit_recover,I_recover((i-1)/2+1)];%奇数取I路信息

    else

        bit_recover=[bit_recover,Q_recover(i/2)];%偶数取Q路信息

    end

end

%适用绘图比较I、Q比特流

recover_data=[];

for i=1:N

    recover_data=[recover_data,bit_recover(i)*ones(1,T*Fs)];

end

I_recover_data=[];Q_recover_data=[];

for i=1:N/2

    I_recover_data=[I_recover_data,I_recover(i)*ones(1,T*Fs*2)];

    Q_recover_data=[Q_recover_data,Q_recover(i)*ones(1,T*Fs*2)];

end

%绘图

figure();

t=0:1/Fs:N*T-1/Fs;

subplot(3,1,1)

plot(t,recover_data);legend('Bitstream')%恢复的比特信息

subplot(3,1,2)

plot(t,I_recover_data);legend('I Bitstream')%恢复的I路信息

subplot(3,1,3)

plot(t,Q_recover_data);legend('Q Bitstream')%恢复的Q路信息

七、实验波形

1、发送端产生的比特流…[ax,bg]…,奇数进I路、偶数进Q路对应的比特数和波形图如下所示

2、QPSK调制乘以载波信号后传输的I路和Q路、IQ路和信号(QPSK)对应波

形图如图所示

3、QPSK经过解调产生的二进制信息比特流、I路和Q路信息波形图如图所示

八、实验总结和心得

在本次实验中,我根据QPSK 调制解调仿真原理,写出了源程序代码,了解到了很多东西,其中通过Matlab软件根据相干解调法,画出解调后的波形,与原始信号波形进行仿真比较。我熟悉掌握了QPSK 调制解调原理和更深一步掌握如何使用MATLAB调制仿真。

文档

基于 MATLAB的 QPSK 调制解调仿真

基于MATLAB的QPSK调制解调仿真一、实验目的(1)熟悉2QPSK调制解调原理。(2)掌握编写2QPSK调制解调程序的要点。(3)掌握使用MATLAB调制解调仿真的要点。二、实验内容(1)根据2QPSK调制解调原理,设计源程序代码。(2)通过MATLAB软件仿真给定信号的调制波形。(3)对比给定信号的理论调制波形和仿真解调波形。三、实验原理QPSK即四进制移向键控(quaternaryphaseshiftkeying),它利用载波的4种不同相位来表示数字信息,由于每一种载波相位代表两个比特
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top