常用数字PAM信号频谱分析
单极性不归零码,双极性不归零码,单极性归零码,单极性不归零码功率谱分析仿真
close all; clear all; clc
Ts = 1; % 码元周期
fs = 1000; % 单个码元抽样点数
dt = Ts / fs; % 抽样时间间隔
N = 100; % 码元数
t = (0: N*fs-1)/fs; % 时间刻度
re = 10; % 扩展倍数
duty = 50; % 占空比
RanNum = randi([0, 1], 1, N) % 随机01序列
NRZ = RanNum;
BNRZ = RanNum - (~RanNum);
RZ = RanNum;
BRZ = RanNum - (~RanNum);
rep_NRZ = reshape(repmat(NRZ', 1, re)', N*re, 1)'
fft_NRZ = fftshift(fft(rep_NRZ));
PE_NRZ = 10 * log10(abs(fft_NRZ) .^ 2 / (N * Ts));
PEL_NRZ = (-length(fft_NRZ) / 2 : length(fft_NRZ) / 2 - 1) / 100*(1/Ts);
rep_BNRZ = reshape(repmat(BNRZ', 1, re)', N*re, 1)'
fft_BNRZ = fftshift(fft(rep_BNRZ));
PE_BNRZ = 10 * log10(abs(fft_BNRZ) .^ 2 / (N * Ts));
PEL_BNRZ = (-length(fft_BNRZ) / 2 : length(fft_BNRZ) / 2 - 1) / 100*(1/Ts);
rep_RZ = reshape([repmat(RZ', 1, re*duty/100), zeros(N, re*duty/100)]', N*re, 1)'
fft_RZ = fftshift(fft(rep_RZ));
PE_RZ = 10 * log10(abs(fft_RZ) .^ 2 / (N * Ts));
PEL_RZ = (-length(fft_RZ) / 2 : length(fft_RZ) / 2 - 1) / 100*(1/Ts);
rep_BRZ = reshape([repmat(BRZ', 1, re*duty/100), zeros(N, re*duty/100)]', N*re, 1)'
fft_BRZ = fftshift(fft(rep_BRZ));
PE_BRZ = 10 * log10(abs(fft_BRZ) .^ 2 / (N * Ts));
PEL_BRZ = (-length(fft_BRZ) / 2 : length(fft_BRZ) / 2 - 1) / 100*(1/Ts);
subplot(221)
plot(PEL_NRZ, PE_NRZ)
subplot(222)
plot(PEL_BNRZ, PE_BNRZ)
subplot(223)
plot(PEL_RZ, PE_RZ); axis([-5 5 -50 75]);
subplot(224)
plot(PEL_BRZ, PE_BRZ); axis([-5 5 -50 75]);