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

资源简介

用MATLAB绘制常用数字基带信号的波形和功率谱密度,归零码,不归零码等

资源截图

代码片段和文件信息

clear all;
Ts       = 1;                %码元周期
N_sample = 1000;              %每个码元抽样点数
fs=N_sample;

dt       = Ts/N_sample;      %抽样的时间间隔
N        = 2000;               %码元数
t        = 0:dt:(N*N_sample-1)*dt;

%!!!!!!!!!!!!!!!!!!!!!!!!!
df       = fs/length(t);
f        = -fs/2:df:fs/2-df; %定义频率矢量(频谱图的横坐标)

% 基本码元 g(t) = 1
gt0      = zeros(1N_sample);
gt1      = ones(1N_sample);                          %单极性不归零
gt2      = [ones(1N_sample/2)zeros(1N_sample/2)];  %单极性归零,占空比为0.5
gt3      = gt0-gt1;                                   %双极性不归零
gt4      = [zeros(1N_sample/2)-ones(1N_sample/2)zeros(1N_sample/2)];%双极性归零


%生成随机码元
random_code = randi([01]1N);
%单极性波形的最后结果
yt1      = zeros(1N*N_sample-1);       %单极性不归零NRZ波形
yt2      = zeros(1N*N_sample-1);       %单极性不归零NRZ波形
yt3      = zeros(1N*N_sample-1);       %双极性不归零NRZ波形
yt4      = zeros(1N*N_sample-1);       %双极性归零RZ波形

for i = 1:N
    if random_code(i) == 1                             %得到波形图
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形
        yt3((i-1)*N_sample+1:i*N_sample) = gt1;        %双极性不归零NRZ波形
        yt4((i-1)*N_sample+1:i*N_sample) = gt2;        %双极性归零RZ波形
    else
        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
        yt3((i-1)*N_sample+1:i*N_sample) = gt3;
        yt4((i-1)*N_sample+1:i*N_sample) = gt4;
    end
end
%*********************************************************************
%求单极性不归零时域波形于波功率谱密度

figure(1)
plot(tyt1‘LineWidth‘1.5);
axis([0 20 -0.1 1.1]);
title(‘二进制单极性不归零NRZ波形‘);
xlabel(‘时间t/s‘);         
grid;

figure(2)
fmt=fft(yt1); % 对时域信号进行FFT变换,计算其频谱
fmt=fftshift(fmt);
fmt=abs(fmt);
fmt_dB=fmt.^2/Ts;
maxF=max(fmt_dB);
fmt_dB=fmt_dB/maxF;
fmt_dB= 10*log10(fmt_dB +eps);
plot(ffmt_dB);grid on;
axis([-6 6 -80 0]);
xlabel(‘频率(Hz)‘);ylabel(‘功率谱幅度值(dB)‘);
title(‘二进制单极性不归零NRZ波形功率谱密度(db)‘);

%*********************************************************************
%*********************************************************************
%求单极性归零时域波形与波功率谱密度
figure(3)
plot(tyt2‘LineWidth‘1.5);
title(‘二进制单极性归零RZ波形‘);
xlabel(‘时间t/s‘);
axis([020-0.091.1]);              %画出单极性归零RZ波形功率谱密度
grid;

figure(4)
fmt=fft(yt2); % 对时域信号进行FFT变换,计算其频谱
fmt=fftshift(fmt);
fmt=abs(fmt);
fmt_dB=fmt.^2/Ts;
maxF=max(fmt_dB);
fmt_dB=fmt_dB/maxF;
fmt_dB= 10*log10(fmt_dB +eps);
plot(ffmt_dB);grid on;
axis([-6 6 -80 0]);
xlabel(‘频率(Hz)‘);ylabel(‘功率谱幅度值(dB)‘);
title(‘二进制单极性归零RZ波形功率谱密度(db)‘);


%*********************************************************************
%*********************************************************************
%求双极性不归零时域波形与波功率谱密度
figure(5)
plot(tyt3‘LineWidth‘1.5);
title(‘二进制双极性不归零波形‘);
xlabel(‘时间t/s‘);
axis([0 20 -1.1 1.1]) 
grid;

figure(6)
fmt=fft(yt3); % 对时域信号进行FFT变换,计算其频谱
fmt=fftshift(fmt);
fmt=abs(fmt);
fmt_dB=fmt.^2/T

评论

共有 条评论