伪随机序列
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仿真(修订版) 庞中华 崔红 著