python - Python 中的伪随机二进制序列 (prbs)

如何通过 Python 生成伪随机二进制序列 (prbs) 信号?

最佳答案

请看下面的代码。它有点粗糙,但您可以了解如何使用 NumPy 创建随机信号PRBS

import numpy as np
import matplotlib.pyplot as plt

nstep = 300

# random signal generation

a_range = [0,2]
a = np.random.rand(nstep) * (a_range[1]-a_range[0]) + a_range[0] # range for amplitude

b_range = [2, 10]
b = np.random.rand(nstep) *(b_range[1]-b_range[0]) + b_range[0] # range for frequency
b = np.round(b)
b = b.astype(int)

b[0] = 0

for i in range(1,np.size(b)):
    b[i] = b[i-1]+b[i]

# Random Signal
i=0
random_signal = np.zeros(nstep)
while b[i]<np.size(random_signal):
    k = b[i]
    random_signal[k:] = a[i]
    i=i+1

# PRBS
a = np.zeros(nstep)
j = 0
while j < nstep:
    a[j] = 5
    a[j+1] = -5
    j = j+2

i=0
prbs = np.zeros(nstep)
while b[i]<np.size(prbs):
    k = b[i]
    prbs[k:] = a[i]
    i=i+1

plt.figure(0) 
plt.subplot(2,1,1)
plt.plot(random_signal, drawstyle='steps',label='Random Signal')
plt.legend()
plt.subplot(2,1,2)
plt.plot(prbs, drawstyle='steps', label='PRBS')
plt.legend()
plt.show()

https://stackoverflow.com/questions/13006929/

相关文章:

heroku - 如何在 Heroku bash 或 Heroku Scheduler 中实现 He

hibernate - 带有关联表的 JPA 注解

winapi - 使用 NtOpenKey 时重定向注册表访问的正确方法是什么?

nginx - 在 nginx 托管上出现 502 错误网关错误

php - DOMDocument::save[domdocument.save]:无法打开流:权限

Django 模型 - 共享公共(public)基类的不同对象类型的外键

python - 是否可以在 Pandas 中将 searchsorted 与 MultiIndex

python - 故意在python中制作一个孤儿进程

html5-video - HTML5 视频自动播放是否适用于三星智能电视?

c# - PDFSharp 使用 PdfTextField 作为位置和大小引用在 pdf 中插入图像