其他分享
首页 > 其他分享> > 用MATLAB 绘制双极性非归零信号的时域波形和功率谱

用MATLAB 绘制双极性非归零信号的时域波形和功率谱

作者:互联网

clear all
close all
clc
%% 生成单个码元
Ts = 1; % 码元周期
N_sample = 128; % 单个码元抽样点数
dt = Ts / N_sample; % 抽样时间间隔
N = 100; % 码元数
t = 0 : dt : (N * N_sample - 1) * dt; % 序列传输时间
gt1 = ones(1, N_sample); % NRZ
%% 生成随机序列
RAN = round(rand(1, N)); % 随机0 1序列
se1 = [];
for i = 1 : N % 生成序列
   if RAN(i)==1
       se1 = [se1 gt1];
   else
       se1 = [se1 -1*gt1];
   end
end
%% 绘制出结果
subplot(2, 1, 1);plot(t, se1);grid on;axis([0 20 -1.5 1.5]);title('DBNRZ');
%% 功率谱密度计算
fft_se1 = fftshift(fft(se1)); % 求序列的频谱
PE1 = 10 * log10(abs(fft_se1) .^ 2 / (N * Ts)); % 公式法求概率谱密度
PEL1 = (-length(fft_se1) / 2 : length(fft_se1) / 2 - 1) / 10; % 求区间长度
%% 绘制出结果
subplot(2, 1, 2);plot(PEL1, PE1); grid on; axis([-50 50 -50 50]); title('density-DBNRZ');

运行结果:
在这里插入图片描述

标签:归零,se1,%%,fft,码元,50,sample,MATLAB,时域
来源: https://blog.csdn.net/qq_37369201/article/details/100538720