主要内容

Bernoulli Binary Generator

生成伯努利分布的随机二进制数

  • Bernoulli Binary Generator block

库:
Communications Toolbox / Comm Sources / Random Data Sources

描述

Bernoulli Binary Generator 模块使用伯努利分布生成随机二进制数。使用此模块生成随机数据位,以对数字通信系统进行仿真并获取性能度量,如误码率。参数为 p 的伯努利分布以概率 p 生成 0,以概率 1-p 生成 1。伯努利分布的均值为 1-p,方差为 p(1-p)。Probability of zero 参数指定 p,它可以是范围 [0, 1] 内的任何实数。

输出信号可以是列向量或行向量、二维矩阵或标量。输出信号的行数对应于一个帧中的采样数,由 Samples per frame 参数设置。输出信号的列数对应于信道数,由 Probability of zero 参数中的元素数设置。有关详细信息,请参阅 Sinks

示例

全部展开

doc_bernoulli_gen_example 模型生成二进制数据,应用 BPSK 调制,并显示输出。

运行模型。

限制

  • 要在 For Each Subsystem (Simulink) 中使用此模块,您必须将 Source of initial seed 设置为自动,并将模型设置为普通加速仿真模式。这可确保每次运行都会生成独立的噪声采样。

端口

输出

全部展开

输出数据信号,以标量、向量或矩阵形式返回。

数据类型: double

参数

全部展开

要以交互方式编辑模块参数,请使用属性检查器。在 Simulink® 工具条的仿真选项卡上,从准备库中选择属性检查器

零的概率必须在范围 [0, 1] 内。Probability of zero 参数中的元素数对应于模块输出的独立信道数。参数为 p 的伯努利分布以概率 p 生成 0,以概率 1-p 生成 1。

随机数生成器的种子源,指定为以下项之一:

  • 自动 - 模块使用全局随机数流。如果您使用 parsim (Simulink) 函数,请参阅提示

  • 参数 - 模块将随机数生成器种子设置为初始种子

有关详细信息,请参阅使用 RandStream 管理全局流随机数生成器

随机数生成器的种子值,指定为非负整数。如果此参数是常量,则结果序列是可重复的。

可调: Yes

依赖关系

要启用此参数,请将 Source of initial seed 设置为 Parameter

正标量指定输出信号每个采样之间的时间(以秒为单位)。如果将采样时间设置为 -1,则输出信号从下游继承采样时间。有关采样时间每帧采样数参数之间关系的信息,请参阅采样时间

输出信号的一个信道中的每帧采样数,指定为正整数。有关采样时间每帧采样数之间关系的信息,请参阅采样时间

输出数据类型,指定为 doublesingleuint8uint16uint32boolean

要运行的仿真的类型,指定为代码生成解释执行

  • 代码生成 - 使用生成的 C 代码对模型进行仿真。第一次运行仿真时,Simulink 会为该模块生成 C 代码。除非模型发生变化,否则模型会对后续仿真重用 C 代码。此选项需要额外的启动时间,但后续仿真的速度比使用解释执行选项快。

  • 解释执行 - 使用 MATLAB® 解释器对模型进行仿真。此选项会缩短启动时间,但后续仿真的速度比使用代码生成选项慢。在此模式下,您可以调试模块的源代码。

有关详细信息,请参阅解释执行与代码生成 (Simulink)

模块特性

数据类型

Boolean | double | integer | single

多维信号

可变大小信号

详细信息

全部展开

提示

Source of initial seed 设置为参数,并确保在使用 parsim (Simulink) 函数以并行方式运行仿真(例如蒙特卡罗模拟运行)时,所有模块具有不同的初始种子值。

否则,对于以下模型配置,不同工作单元可能会生成相同的随机数(导致误导性结果):

  • 如果模型处于快速加速模式。

  • 如果此模块的仿真方式设置为代码生成,且 Source of initial seed 设置为自动

有关详细信息,请参阅选择仿真模式 (Simulink)

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出

全部展开