• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Matlab
  • 标签: DPSK  

资源简介

基于matlab的2DPSK的调制和解调: 用matlab实现数字信号的差分相位调制,之后再用相干解调方法进行解调。

资源截图

代码片段和文件信息

%
%参数设置
%
Ts = 1/100;      %码元周期
Rs = 1/Ts;       %码元频率
n1 = 10;         %载波频率系数
fc = Rs*n1;      %载波频率
n2 = 64;         %采样频率系数
fs = fc*n2;      %采样频率
N_sample = fs*Ts;%每个码元采样点数=n1*n2
dt = Ts/N_sample;%抽样时间间隔
N = 10;          %码元数
t=0:dt:(N*N_sample-1)*dt;         % 传输序列持续时间

%产生基带信号------------------------------------------------
a=round(rand(1N));         %基带序列
fprintf(‘基带序列是:\n‘);
disp(a);
b=zeros(1N+1);                %相对码序列
for i = 2:N+1
    b(i) = xor(a(i-1)b(i-1));
end
mt=zeros(1N*N_sample);
%生成双极性不归零信号
for i=2:N+1
    if b(i) == 0
        b(i) = -1;
    end
end
%扩展序列为一个N*N_sample的序列
for i=1:N
    mt(1(i-1)*N_sample+1) = b(1i+1);%每个码元扩充(N_sample-1)个0上一个N_sample结束后为对应的码元值
end
%生成已调信号------------------------------------------------
gt = cos(2*pi*fc*t(1:N_sample)+pi);%载波信号
noise = normrnd(00.11length(t)); %噪声,均值=0,标准差=0.01
st=conv(mtgt);                    %载波与基带信号卷积
% s1t=st(1:N_sample*N);
st1=st(1:N_sample*N)+noise;

%解调--------------------------------------------------------
%带通滤波
w1=2*(fc-Rs)/fs;%下截止频率
w2=2*(fc+Rs)/fs;%上截止频率
numerator = fir1(60[w1w2]);%FIR滤波器60为阶数numerator是FIR滤波器的系数
sfBandpass = filter(numerator1st1);
% [n1m1]=size(sfBandpass(1:N*N_sample));
% [nm]=size(cos(2*pi*fc*t));
% fprintf(‘%d %d\n %d %d\n‘n1m1nm);
%相干解调
sfModulation = sfBandpass(1:length(t)).*cos(2*pi*fc*t);
%低通滤波器
w1l = [];
w2l = 2*Rs/fs;
numerator = fir1(60[w1lw2l]);%FIR滤波器60为阶数numerator是FIR滤波器的系数
sf = filter(numerator1sfModulation);
% [nm]=size

评论

共有 条评论