产生一组单极性归零码和单极性不归零码,并绘制出其时域波形 MATBAL
时间: 2023-12-06 08:44:44 浏览: 201
单极性归零码(unipolar return-to-zero code)是一种数字编码方式,每个二进制位只有两种状态,即高电平和低电平,高电平代表1,低电平代表0,而且每个二进制位间都有一个归零区间。单极性不归零码(unipolar non-return-to-zero code)也是一种数字编码方式,每个二进制位只有两种状态,即高电平和低电平,高电平代表1,低电平代表0,但是每个二进制位间没有归零区间。
下面给出一组4位单极性归零码和单极性不归零码及其时域波形:
单极性归零码:0101
单极性归零码时域波形:
```
__ __
| | | |
___| |____| |_
0 1 2 3 4
```
单极性不归零码:0101
单极性不归零码时域波形:
```
___ ___ ___
| | | | | |
| |_| |_| |
0 1 2 3
```
其中,横坐标表示时间,纵坐标表示电平。在单极性归零码时域波形中,每个二进制位的高电平部分之间都有一个归零区间,用来表示0;在单极性不归零码时域波形中,每个二进制位的高电平部分之间没有归零区间,用来表示1。
相关问题
用matlab产生一组单极性归零码和单极性不归零码,并绘制出其时域波形
单极性归零码(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` 函数绘制出时域波形。
产生一组单极性归零码和单极性不归零码,并绘制出其时域波形,用matlab
单极性归零码(unipolar return-to-zero code):
```matlab
bits = [1 0 1 1 0 1 0];
T = 1; % bit duration
t = 0:T/100:T*(length(bits)-1);
signal = zeros(1,length(t)); % initialize signal
for i = 1:length(bits)
if bits(i) == 1
signal((i-1)*100+1:i*100) = 1;
else
signal((i-1)*100+1:i*100) = -1;
end
end
plot(t, signal, 'LineWidth', 2);
ylim([-2 2]);
grid on;
```
单极性不归零码(unipolar non-return-to-zero code):
```matlab
bits = [1 0 1 1 0 1 0];
T = 1; % bit duration
t = 0:T/100:T*(length(bits)-1);
signal = zeros(1,length(t)); % initialize signal
for i = 1:length(bits)
if bits(i) == 1
signal((i-1)*100+1:i*100) = 1;
end
end
plot(t, signal, 'LineWidth', 2);
ylim([-2 2]);
grid on;
```
时域波形如下图所示:
![unipolar_codes](https://i.imgur.com/J4wNp5v.png)
阅读全文