通信原理实验(五)数字调制 —— PSK、DPSK

实验总览

主要完成2PSK和2DPSK的调制和解调,对调制方法,已调信号特性,解调方法进行分析。

2PSK

2PSK产生

2PSK信号发生程序

function [signal, csignal, baseband, t] = tPSK(N, TB, fc, fs)
     %% 一个码元多少个采样点
     L = TB * fs;
     %% 2PSK信号采样点
     t = 0 : 1 / fs : N * TB - 1 / fs;
     %% 载波定义
     tc = 0 : 1 / fs : TB - 1 / fs;
     %% 二进制符号
     symbols = round(rand(1, N));
     signal = zeros(1, N * L);
     baseband = zeros(1, N * L);
     for i = 1 : N
         if symbols(i) == 1
             signal((i - 1) * L + 1 : i * L) = cos(2 * pi * fc * tc + pi);
         else
             signal((i - 1) * L + 1 : i * L) = cos(2 * pi * fc * tc);
         end
     end

     for i = 1 : N
        if symbols(i) == 1
            baseband((i - 1) * L + 1 : i * L) = 1;
        else
            baseband((i - 1) * L + 1 : i * L) = 0;
        end
     end
     csignal = cos(2 * pi * fc * t);
end

实验主程序

clc;clear;
%% 2PSK参数定义
N = 20;
fB = 1;
TB = 1 / fB;
fc = 100;
fs = 600;
%% 产生2PSK信号
[signal, csignal, baseband, t] = tPSK(N, TB, fc, fs);
%% 2PSK相干解调
dmode_co = coherent(signal, -csignal, 1.5 * fB, fc / 1.5, fs, TB);
%% 抽样判决
saps = sj(dmode_co, TB, fs);
dbaseband = SNRZ(saps, TB, fs);
%% 频谱分析
L = length(t);
n = - 1 / 2 + 1 / L : 1 / L : 1 / 2;
f = n * fs;
HFB = fftshift(fft(baseband));
HFC = fftshift(fft(signal));
HFDC = fftshift(fft(dmode_co));
% HFDR = fftshift(fft(dmode_rc));
%% 基带信号和2ASK信号对比
%% 基带信号和2ASK信号时域波形
% figure(1)
% subplot(2, 1, 1); plot(t, baseband, 'LineWidth', 1.2); title('基带信号');
% subplot(2, 1, 2); plot(t, signal, 'LineWidth', 1.2); title('2ASK信号');
%% %% 基带信号和2ASK信号频谱
% figure(2)
% subplot(2, 1, 1); plot(f, abs(HFB), 'LineWidth', 1.2); title('基带信号');
% subplot(2, 1, 2); plot(f, abs(HFC), 'LineWidth', 1.2); title('2ASK信号');
%% 2PSK相干解调后信号与基带信号和2[SK信号对比
figure(3)
subplot(4, 1, 1); plot(t, baseband, 'LineWidth', 1.2); title('基带信号');
% subplot(3, 1, 1); plot(f, abs(HFB), 'LineWidth', 1.2); title('基带信号');
subplot(4, 1, 2); plot(t, signal, 'LineWidth', 1.2); title('2PSK信号');
% subplot(3, 1, 2); plot(f, abs(HFC), 'LineWidth', 1.2); title('2PSK信号'); 
subplot(4, 1, 3); plot(t, dmode_co, 'LineWidth', 1.2); title('相干解调后的信号');
% subplot(3, 1, 3); plot(f, abs(HFDC), 'LineWidth', 1.2); title('相干解调后的信号'); 
subplot(4, 1, 4); plot(t, dbaseband, 'LineWidth', 1.2); title('抽样判决后');
%% 眼图
% figure(4);
% neye = 1;
% L = TB * fs;
% for k = 1 : N - neye + 1
%     ss = dmode_rc((k - 1) * L  + 1 : ((k - 1) + neye) * L);
%     plot(ss,'LineWidth', 1.2);
%     hold on;
% end
% hold on;
% title('接收信号眼图 eyenum = 1');















实验结果

2PSK信号时域波形

### 2DPSK2PSK调制中的相位模糊现象 在2PSK调制中,由于其直接利用载波的绝对相位来表示信息比特,当接收端无法精确获取发送端的初始相位时,可能会遇到相位模糊问题。这种不确定性会导致解调后的信号可能出现180度的相位反转,即所谓的“倒π”现象,使得接收到的信息完全颠倒[^1]。 相比之下,在2DPSK(二进制差分相移键控)系统里,数据不是由载波本身的相位决定,而是取决于前后两个相邻符号之间的相对相位变化。即使发生了全局性的相位翻转,也不会改变这些相对关系,因此不会引起误判。具体来说,如果发生整体相位偏移,虽然每个单独的码元看起来像是被错误地解释了,但由于后续处理过程中会执行一次额外的逆变换操作,最终仍能正确还原原始消息序列。 综上所述,只有2PSK容易遭受相位模糊带来的困扰;而2DPSK则巧妙避开了这一难题,因为它的设计本质上就考虑到了可能存在的相位不确定因素,并采取措施进行了补偿。 ```matlab % MATLAB代码示例:展示两种调制方式下的相位特性差异 fs = 1e3; % Sampling frequency (Hz) t = 0:1/fs:1; f_carrier = 50; % Carrier frequency (Hz) data_2psk = [1 -1]; % Example data for 2PSK (-1 and 1 represent binary states) modulated_signal_2psk = exp(1i*pi*data_2psk).*exp(1i*2*pi*f_carrier*t); relative_data_differential = diff([0, data_2psk]); % Differential encoding of example data modulated_signal_2dpsk = cumsum(exp(1i*pi*relative_data_differential)).*exp(1i*2*pi*f_carrier*t); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值