2014-11-04 157 views
0

我有这样的阵列中,这是一个数字信号(在理论上):NRZ-S与Python

array_nrz = [1,0,1,1,0,0,0,1,1,0,1,0] 

我要绘制两个NRZ和NRZ-S编码。我怎样才能将这个阵列转换成一个NRZ-S信号?

array_transformed_nrz_s = [1,0,0,0,1,0,1,1,1,0,0,1] 

这里有两个说明的例子。

http://www.tpub.com/neets/book23/0060.GIF

http://www.itwissen.info/bilder/nrz-s-codierung.png

是否有一个包,我可以用?

据我了解信号的变化,只有当它遇到一个0

+0

如果您使用工程师计算,你应该看看numpy或scipy – Abdelouahab 2014-11-04 00:20:09

+0

我搜索,我没有找到一个NRZ-S编码实现在numpy或scipy – metraon 2014-11-04 00:22:24

+0

我发现这个'不归零空间 “一”代表没有变化的水平 “零”是由级别的变化表示。“ http://ckp.made- it.com/encodingschemes.html,所以这个想法总是把data [n]和data [n-1] – Abdelouahab 2014-11-04 00:43:02

回答

1

原来第二个例证是假的,不应该被考虑。

下面是一些代码,工程:

NRZ = [0,0,1,0,1,1,0,1] 
NRZS = [] 

state = NRZ[0] 
for bit in NRZ: 
    state ^= bit^1 
    NRZS.append(state) 
0

下面是一个使用功能,所以它会很容易执行它:

def nrzs(nrz): 
    NRZS = [] 
    state = nrz[0] 
    for bit in nrz: 
     state ^= bit^1 
     NRZS.append(state) 
    return NRZS 

控制台:

In [4]: nrzs([0,0,1,0,1,1,0,1]) 
Out[4]: [1, 0, 0, 1, 1, 1, 0, 0]