生成0,1等概的单极性非归零NRZ信号的波形和功率谱的matlab代码,写好注释
时间: 2024-02-05 11:13:50 浏览: 49
matlab_通信原理实验软件仿真实验_单极性归零码(RZ)的波形及其功率谱_单极性不归零码(NRZ)的波形及其功率谱
5星 · 资源好评率100%
以下是生成0,1等概的单极性非归零NRZ信号的波形和功率谱的 Matlab 代码,已附注释:
```matlab
% 设置参数
T = 1; % 周期为1秒
bitRate = 1000; % 比特率为1000比特/秒
n = 100; % 采样点数为100个
% 生成随机比特序列
bits = randi([0 1], 1, bitRate*T);
% 生成时间序列
t = linspace(0, T, n);
% 将比特序列映射到波形上
waveform = [];
for i = 1:length(bits)
if bits(i) == 0
waveform = [waveform zeros(1, n/bitRate)];
else
waveform = [waveform ones(1, n/bitRate)];
end
end
% 绘制波形图
subplot(2,1,1);
plot(t, waveform);
title('Non-Return-to-Zero (NRZ) Waveform');
xlabel('Time (s)');
ylabel('Amplitude');
% 计算功率谱密度
fs = n/T; % 采样频率
Pxx = abs(fft(waveform)/n).^2; % 计算功率谱密度
f = fs*(0:(n/2))/n; % 构造频率向量
% 绘制功率谱密度图
subplot(2,1,2);
plot(f,Pxx(1:n/2+1));
title('Power Spectral Density');
xlabel('Frequency (Hz)');
ylabel('Power');
```
代码中先设置了三个参数:周期 `T`、比特率 `bitRate` 和采样点数 `n`。然后生成了一个随机比特序列,并将它映射到波形上。最后计算了功率谱密度并绘制了波形图和功率谱密度图。
阅读全文