用matlab产生一组单极性归零码和单极性不归零码,并绘制出其时域波形
时间: 2023-12-11 14:03:14 浏览: 116
单极性归零码(NRZ)和单极性不归零码(NRZ-L)是两种常见的数字通信编码方式。可以通过MATLAB代码生成这些编码并绘制出其时域波形。
以下是生成单极性归零码和单极性不归零码的MATLAB代码示例:
```matlab
% 生成单极性归零码
bits = [1 0 1 1 0 1 0 0]; % 待编码的比特串
signal = zeros(1, length(bits)*10);
for i = 1:length(bits)
if bits(i) == 1
signal((i-1)*10+1:i*10) = 1;
end
end
plot(signal);
title('NRZ Code');
xlabel('Time');
ylabel('Amplitude');
% 生成单极性不归零码
bits = [1 0 1 1 0 1 0 0]; % 待编码的比特串
signal = zeros(1, length(bits)*10);
last_bit = 1;
for i = 1:length(bits)
if bits(i) == 1
signal((i-1)*10+1:i*10) = last_bit;
last_bit = -last_bit;
else
signal((i-1)*10+1:i*10) = last_bit;
end
end
plot(signal);
title('NRZ-L Code');
xlabel('Time');
ylabel('Amplitude');
```
以上代码中,我们先定义了一个待编码的比特串 `bits`,然后根据编码方式生成相应的信号波形。在单极性归零码中,每个1都对应着一个高电平,每个0都对应着一个低电平;在单极性不归零码中,每个1都会对应着一个正脉冲或负脉冲,每个0则是上一个脉冲的反向。最后使用MATLAB的 `plot` 函数绘制出时域波形。
阅读全文