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

资源简介

里面有本人运行出来的程序,图,程序语句后面还有注释!希望可以帮到大家!

资源截图

代码片段和文件信息

clear all;
close all;

A=1;
fc=2;     %2Hz
N_sample=8;
N=500;    %码元数
Ts=1;     %1 Baud/s

dt=Ts/fc/N_sample;  %波形采样间隔
t=0:dt:N*Ts-dt;
Lt=length(t);

%产生二进制信源
d=randn(1N)>.5;
%计算相对码元
d0=0;
for i=1:length(d)
    if (i==1)
        if (d(i)==d0)
            d_2dpsk(i)=0;
        else
            d_2dpsk(i)=1;
        end
    elseif (d(i)==d_2dpsk(i-1))
        d_2dpsk(i)=0;
       else
        d_2dpsk(i)=1;
       end
end
dd=sigexpand(dfc*N_sample);
gt=ones(1fc*N_sample);   %NRZ波形

figure(1)
subplot(321);   %输入NRZ信号波形(单极性)
d_NRZ=conv(ddgt);
plot(td_NRZ(1:length(t)));
axis([0 10 0 1.2]);
ylabel(‘输入信号‘);

subplot(322);  %输入NRZ频谱
[fd_NRZf]=T2F(td_NRZ(1:length(t)));
plot(f10*log10(abs(d_NRZf).^2/Ts));
axis([-2 2 -50 10]);
ylabel(‘输入信号功率谱密度(dB/Hz)‘);

dd1=sigexpand(d_2dpskfc*N_sample);
subplot(323);   %差分NRZ信号波形(单极性)
d_NRZ1=conv(dd1gt);
plot(td_NRZ1(1:length(t)));
axis([0 10 0 1.2]);
ylabel(‘差分信号‘);

subplot(324);  %差分NRZ频谱
[fd_NRZ1f]=T2F(td_NRZ1(1:length(t)));
plot(f10*log10(abs(d_NRZ1f).^2/Ts));
axis([-2 2 -50 10]);
ylabel(‘差分信号功率谱密度(dB/Hz)‘);

%2dpsk
ht=A*cos(2*pi*fc*t);
d_2dpsk1=2*d_NRZ1-1;
s_2dpsk=d_2dpsk1(1:Lt).*ht;
subplot(325);
plot(ts_2dpsk);
axis([0 10 -1.2 1.2]);
ylabel(‘2DPSK‘);

subplot(326);
[fs_2dpskf]=T2F(ts_2dpsk);
plot(f10*log10(abs(s_2dpskf).^2/Ts));
axis([-fc-4 fc+4 -50 10]);
ylabel(‘2DPSK功率谱密度(dB/Hz)‘);

%采用相位比较法
count=1;
for i=1:length(t)
    if(mod(i8)==1&i~=1)
        count=

评论

共有 条评论

相关资源