伪随机序列
import numpy as np import matplotlib.pyplot as plt #用来正常显示中文标签 #plt.rcParams['font.family'] = ['Simhei'] plt.rcParams['font.sans-serif'] = ['Yahei consolas hybrid'] #用来正常显示负号 plt.rcParams['axes.unicode_minus']=False # A = 6 N = 200 x0 = 1 M = 255 v = np.zeros([N,1]) #print(v) x= np.arange(N) for k in np.arange(N): x2 = A*x0 x1 = x2 % M v1 = x1/256 v[k] = 2*(v1 - 0.5) x0 = x1 #print(v.reshape(7,16)) plt.plot(x,v) plt.xlabel('k') plt.ylabel('v') plt.title('伪随机序列') plt.show()
再来一个
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Yahei consolas hybrid']
#plt.rcParams['axes.unicode_minus']=False
def xor(A,B):
xx = (not(A) and B) or (A and not(B))
return xx
L = 60
M = np.zeros(L)
IM = np.zeros(L)
x1 = x2 =x3 =1
x4 = 0
S = 1
for i in np.arange(L):
if xor(x3,x4):
M[i] = 1
else:
M[i] = 0
if xor(M[i],S):
IM[i] = 1
else:
IM[i] = -1
x4 = x3
x3 = x2
x2 = x1
x1 = M[i]
S = not(S)
plt.subplot(2,1,1)
plt.title('M序列')
plt.step(np.arange(L),M)
plt.subplot(2,1,2)
plt.title('逆M序列')
plt.step(np.arange(L),IM)
plt.subplots_adjust(hspace = 0.35)
plt.show()

参考:系统辨识与自适应控制MATLAB仿真(修订版) 庞中华 崔红 著

浙公网安备 33010602011771号