如何将Simulink OFDM中随机整数生成器替换为固定自定义输入数据
解决Simulink中替换Random Integer Generator为自定义固定序列的问题
嘿,我来帮你搞定这个Simulink OFDM模型的替换问题!你遇到的核心问题应该是Repeating Sequence Stair没有匹配原Random Integer Generator的帧结构、采样时间或者数据输出模式,导致输出格式不对。这里给你几个靠谱的替代方案,完美适配你的需求:
方案1:Constant + Reshape 组合(最直接无代码)
这是最简单的纯Simulink配置方案:
- 拖入一个
Constant模块,在参数设置里把「Value」改成你的自定义序列:[84 104 105 115 32 105 115 32 97 32 116 101 115 116 46] - 再拖入一个
Reshape模块连接在Constant后面,根据原Random Integer Generator的帧大小设置Reshape的「Output dimensions」(比如原模块每帧输出15个整数,就设为[1 15]) - 最后把Constant和Reshape的采样时间、数据类型(比如uint8)都设置成和原模块完全一致,这样就能循环输出固定序列,帧格式和原模块完全对齐。
方案2:From Workspace 模块(灵活可控)
如果需要后续更方便修改序列,这个模块更适合:
- 先在MATLAB工作区定义序列和时间向量(假设原模块采样时间为
Ts):custom_seq = [84 104 105 115 32 105 115 32 97 32 116 101 115 116 46]; time_stamps = (0:length(custom_seq)-1)*Ts; seq_timeseries = timeseries(custom_seq, time_stamps); - 在Simulink中拖入
From Workspace模块,把「Data」参数设为seq_timeseries - 勾选「Repeat data after final time」,并设置输出的帧格式、数据类型与原模块一致,仿真时就会循环输出你的固定序列。
方案3:Signal Editor 模块(可视化操作友好)
如果你偏好可视化配置,这个模块上手更简单:
- 拖入
Signal Editor模块,双击打开编辑器 - 点击「Import」导入你的自定义序列,设置采样时间和帧大小,完全匹配原
Random Integer Generator的参数 - 在模块参数里勾选「Repeat signal」,就能循环输出序列,帧结构和原模块完全兼容。
关键注意事项
不管用哪个方案,一定要确保这三个参数和原模块完全一致:
- 采样时间:决定输出数据的时间间隔
- 帧大小/输出维度:保证每帧输出的整数数量和原模块相同
- 数据类型:比如原模块输出是uint8,新模块也要设置成同样的类型,避免后续模块出现类型不匹配错误
内容的提问来源于stack exchange,提问作者timcheen14
相关产品推荐
相关产品推荐

