伪随机序列

复制代码
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()
复制代码

 再来一个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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仿真(修订版) 庞中华 崔红 著

posted @   华小电  阅读(435)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示