m基于matlab的DQPSK调制解调技术的仿真

目录

1.算法概述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法概述

4进制的DPSK通常记为DQPSK。DQPSK信号编码方式如下表:

      表中  θk是相对于前一相邻码元的相位变化。共有A、B两种方式。B方式中相邻码元间总有相位改变,故有利于在接收端提取码元同步。另外由于其相邻码元相位的最大相移为±135°,比A方式的最大相移小,素在通过频带受限的系统传输后其振幅起伏也较小。B方式DQPSK又称π/4DQPSK。DQPSK的产生方法与QPSk类似,但是DQPSK先将输入的双比特码经码型变换,再用码型变换器输出的双比特码进行四相绝对移相,则所得到的输出信号就是四相相对移相信号。通常采用的方法是码变换加调相法和码变换加相位选择法。

      码变换加调相法。码变换加调相法产生DQPSK信号的组成方框图如下图所示。串行的二进制不归零双极性码元经串并转换器变换后变为两路并行码元ab,经码变换器变换为相对码元cd,之后分别与一对相干载波相乘,最后进行相加,即可产生DQPSK信号。与QPSK信号的产生方法不同的是,DQPSK的产生需将串并转换后的码元ab经码变换器变为相对码cd,且在相干载波的产生时,用两个π/4相移器代替一个π/2相移器,这样所产生的码元符合A方式编码。

码变换加相位选择法。其组成方框图如下图所示。其中的逻辑选项电路除按规定完成选择载波的相位外,还应实现将绝对码转换成相对码的功能。也就是说,在四相绝对移相时,直接用输入双比特码去选择载波的相位;而在四相相对移相时,需要将输入的双比特码ab转换成相对应的双比特码cd,再用cd去选择载波的相位,这样就可产生DQPSK信号。

2、DQPSK信号的解调

DQPSK信号的解调与2DPSK信号的解调类似,也有两种方法,分别是极性比较法和相位比较法。

      极性比较法。其原理方框图如下图所示。由于DQPSK信号可以看做是两路2DPSK信号的合成,解调时也可以分别按两路2DPSK信号解调,因此在解调过程中用两路相干载波去解调,可以很容易分离出这两路正交的2DPSK信号。经低通滤波和抽样判决后恢复出相对相对码,再经码反变换器变换成绝对码,从而恢复出发送的二进制信息。

  • 相位比较法。其原理方框图如下图所示。用这种方法解调时不需要专门的相干载波,只需由收到的信号时延一个码元间隔T,然后与信号本身相乘。相乘起着相位比较的作用,相乘结果反映了前后码元的相位差,经低通滤波后在抽样判决,即可直接恢复出原始数字信息,故解调器中不需要码反变换器。

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

3.MATLAB部分代码预览

%pi/4-DQPSK调制解调系统的蒙特卡罗仿真
N = 10000;                            %仿真量大小
EbN0_indB = -2 : 0.5 : 12;            %仿真的信噪比点
EbN0 = 10.^(EbN0_indB/10);            %dB转换为自然值
times = 50;                           %仿真次数
err_rate = zeros(length(EbN0),times);
 
for ii = 1 : length(EbN0)
        for i = 1 : times
            r = rand(1,2*N);
            source = r>0.5;           %产生二进制信源
            b = 1 - 2*source;         %改变为反极性           
            bI = zeros(1,N);          %同相支路
            I = zeros(1,N);
            bQ = zeros(1,N);          %正交支路
            Q = zeros(1,N);
            delta = zeros(1,N);       %载波相位差
            for n = 1 : N             %串并变换
                bI(n) = b(2*n);
                bQ(n) = b(2*n-1);
                if n == 1             %差分编码  
                    I(n) = (bI(n)*bI(n) - bQ(n)*bQ(n))/sqrt(2);
                    Q(n) = (bQ(n)*bI(n) + bI(n)*bQ(n))/sqrt(2);
                else
                    I(n) = (I(n-1)*bI(n) - Q(n-1)*bQ(n))/sqrt(2);
                    Q(n) = (Q(n-1)*bI(n) + I(n-1)*bQ(n))/sqrt(2);
                end
            end
            Eb_x = cov(I);                       %信号能量
            Eb_y = cov(Q);
            sigma_x = sqrt(Eb_x/(2*EbN0(ii)));   %根据信噪比计算噪声方差
            sigma_y = sqrt(Eb_y/(2*EbN0(ii)));
            noise_x = randn(1,N)*sigma_x;        %高斯噪声产生
            noise_y = randn(1,N)*sigma_y;
            w = I + noise_x;                     %AWGN信道传输
            z = Q + noise_y;
            errornum_x = 0;              %错误数
            errornum_y = 0;
            for n = 1 : N                %差分译码
                if n == 1
                   x(n) = w(n)*w(n) + z(n)*z(n);
                   y(n) = z(n)*w(n) - w(n)*z(n);
                else
                   x(n) = w(n)*w(n-1) + z(n)*z(n-1);
                   y(n) = z(n)*w(n-1) - w(n)*z(n-1);
                end
                if x(n) <= 0                   %判决x
                    result_x(n) = -1;  
                elseif x(n) > 0
                    result_x(n) = 1;
                end
                if y(n) <= 0                   %判决y
                    result_y(n) = -1;  
                elseif y(n) > 0
                    result_y(n) = 1;
                end
                if result_x(n) ~= bI(n)        %计算x错误数
                    errornum_x = errornum_x + 1; 
                end
                if result_y(n) ~= bQ(n)        %计算y错误数
                    errornum_y = errornum_y + 1;
                end
                if errornum_x + errornum_y >= 100
                    break
                end
            end
            err_rate(ii,i) = (errornum_x + errornum_y)/(2*n);
        end
end
01_051_m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: DQPSK调制解调是一种数字调制技术,常用于无线通信系统中,其主要作用是基于初始相位的改变来编码数字信息。在这个实验中,我们使用了MATLAB软件来实现DQPSK调制解调的过程。实验的设备包括一个电脑、MATLAB软件以及一个DQPSK解调器。 首先,我们使用MATLAB编写DQPSK调制的程序,通过对输入的数字信号进行群变换,得到相应的符号序列。然后,将这些符号序列传递到DQPSK解调器进行解调。解调器将接收到的曲线进行解调处理,还原出原始数字信号。 在实验过程中,我们还使用了频域分析工具,来查看DQPSK调制和解调的频域特征。这些工具的使用,可以帮助我们更深入地了解DQPSK调制解调的原理,进一步优化实验的过程和结果。 总的来说,DQPSK调制解调实验是一项有效的数字通信技术研究,能够广泛应用于许多无线通信系统中。借助MATLAB软件和现代通信工具,我们可以快速实现DQPSK调制解调的过程,生成高品质、可靠的数字信息传输。 ### 回答2: DQPSK调制解调是一种数字通信技术,能够在较低的数据速率下,保证一定的传输速度和可靠性,被广泛应用于无线通信系统中。本实验基于MATLAB进行,是一种非常实用的数字信号处理技术实验。 在DQPSK调制解调实验中,我们需要首先生成一个低频信号,然后将其转化成高频信号,再通过DQPSK调制器将数字信号转化为模拟信号,接着将模拟信号传输到接收端,再通过DQPSK解调器将模拟信号转化为数字信号。 整个实验过程中,需要实现多种函数,如生成低频信号函数、DQPSK调制函数、DQPSK解调函数等。在生成低频信号函数中,需要考虑振幅、频率和采样率等参数,以便生成高质量的低频信号。在DQPSK调制函数中,需要利用二进制序列信息,来生成相应的载波相位和相位变化信息。在DQPSK解调函数中,需要考虑相位差以及译码器中的最远邻近规则,以确保正确的解调操作。 本实验还需要设计基带滤波器、载波相位控制器以及匹配滤波器等基础设备,以确保数字信号被正确的调制和解调。在实验过程中,还需要调整模拟信号质量,以便测试误码率等参数。 总之,DQPSK调制解调实验是一种非常有用的数字信号处理技术实验,它可以帮助我们更好的了解数字通信,掌握基本的数字信号处理技术并提高工程应用能力。 ### 回答3: DQPSK(Differential Quadrature Phase Shift Keying)是一种数字调制方式,其可以有效地提高调制信号的抗干扰能力和频谱利用率。本实验基于MATLAB软件平台,旨在了解和实现DQPSK调制解调技术。 首先,在MATLAB中实现DQPSK调制。将待调制的数字信号进行串并转换,将输入的二进制比特流转换为两个相邻比特之间的相位差,然后将差分编码得到正交I/Q信号。使用正交调制器将I/Q信号映射到QPSK调制符号上,得到基带DQPSK信号。在发送端,转换为模拟信号输出到发射机进行发射。 接下来,在MATLAB中实现DQPSK解调。使用接收机接收到信号,通过低通滤波器进行滤波,得到原始DQPSK信号。将信号进行差分解码,再进行相位解调,得到原始的二进制比特流。最后进行误码率的测试,使用比特误码率和符号误码率进行比较,确定系统的可靠性。 本实验旨在深入理解DQPSK 调制解调技术,掌握MATLAB数字信号处理技术,进一步提高数字通信专业知识和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱C编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值