生成0,1等概的单极性非归零NRZ信号的波形和功率谱的matlab代码,写好注释
时间: 2024-02-20 09:01:08 浏览: 85
好的,以下是生成0,1等概的单极性非归零NRZ信号的波形和功率谱的MATLAB代码:
```matlab
% 设置参数
T = 1; % 采样时间间隔
fs = 1000; % 采样频率
t = 0:T:(1-T); % 时间序列
% 生成随机二进制序列
N = length(t); % 信号长度
bit_seq = randi([0 1],1,N); % 生成0,1等概的随机二进制序列
% 生成单极性非归零NRZ信号
nrz_seq = 2*bit_seq - 1;
% 绘制时域波形
figure;
plot(t, nrz_seq);
title('Non-Return-to-Zero (NRZ) Signal in Time Domain');
xlabel('Time (s)');
ylabel('Amplitude');
% 绘制功率谱密度图
f = (-N/2:N/2-1)*(fs/N); % 频率序列
spec = fftshift(abs(fft(nrz_seq)).^2/N); % 计算功率谱密度
figure;
plot(f, spec);
title('Power Spectral Density of Non-Return-to-Zero (NRZ) Signal');
xlabel('Frequency (Hz)');
ylabel('Power');
```
代码中,我们先设置了采样时间间隔T和采样频率fs,然后生成了一个长度为N的随机二进制序列。接着,通过将二进制序列映射为单极性非归零NRZ信号,得到了非归零NRZ信号的时域波形,并计算了其功率谱密度图。
希望这段代码对您有所帮助!
阅读全文