%% 本程序为2DPSK(二进制差分键控相移键控)信号调制解调示例程序
% 若对你有帮助希望在参考文献引用我的期刊论文哦 (≧?≦)ゞ
% UESTC 刘俊杰 2015.11.10
clc; %Clear Command Window 清空命令窗口
clear; %清除变量
close all; %emove specified figure 清除图像
set(0,'defaultfigurecolor','w')
%% 参数设置
Ts=10^(-10);%码元周期
fc=1/Ts;%载波频率
N=50;
fs=N/Ts;%采样频率
signal_length=10;%随机序列长度
%% 生成信号
[signal,data]=random_sequence(signal_length,N); %生成随机序列
t=linspace(0,signal_length*Ts,signal_length*N); %生成时间序列
y=cos(2*pi*fc*t + pi/2); %同步信号
%% 画出随机二进制信息序列
figure(1)
subplot(4,1,1)
plot(t,signal) %画出随机二进制信息序列
%axis([0 9 -1.2 1.2]);
title('随机二进制信息序列')
xlabel('t');
ylabel('幅度');
ylim([0 1.2])
%% 画出传号差分二进制信息序列
subplot(4,1,2)
plot(t,data)
title('传号差分二进制信息序列')
xlabel('t');
ylabel('幅度');
ylim([0 1.2])
%% 画出2DPSK信号
signal1=phase_modulation(data,t,fc,N);
subplot(4,1,3)
plot(t,signal1) %画出2DPSK信号
title('2DPSK')
SNR=10;
signal2=awgn(signal1,SNR);
subplot(4,1,4)
plot(t,signal2) %画出加噪的2DPSK信号
title('加噪的2DPSK')
%% 画出乘法器输出信号
figure(2)
signal3=y.*signal2;
subplot(4,1,1)
plot(t,signal3)
title('乘法器输出信号')
%% 画出低通滤波器输出信号
subplot(4,1,2)
signal4=lvbo(signal3,fc,fs);
plot(t,signal4)
title('低通滤波器输出信号')
%% 画出抽样判决器输出信号
signal5=ceil(signal4);
subplot(4,1,3)
plot(t,signal5)
data1=signal5(N:N:end);
title('抽样判决器输出信号')
ylim([0 1.2])
%% 画出码反变换器输出信号
subplot(4,1,4)
data11=differential_encoding(data1,0);
Binary_Data_Orig = upsample(data11,N);
signal_out = filter(ones(N,1),1,Binary_Data_Orig); %
plot(t,signal_out)
title('码反变换器输出信号')
xlabel('t');
ylim([0 1.2])
评论0
最新资源