You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Simulink中停止持续输出,实现单次消息发送?

实现USRP N210单条消息发射的解决方案

完全可以实现单条消息的单次发射,以下是几种适配Matlab & Simulink的具体实现方法:

方法1:通过触发信号控制发射模块

  • 打开USRP Transmitter模块的配置面板,启用Enable端口(部分版本可通过右键模块→「Mask」→「Edit Mask」添加,或直接在模块参数中找到Enable选项勾选)。
  • 添加一个Pulse Generator模块,设置脉冲类型为「Single」,脉宽设置为能覆盖单条消息的完整时长(比如单条消息占1000个采样点,采样率1e6,则脉宽设为0.001秒)。
  • 将脉冲信号接入USRP Transmitter的Enable端口,消息源使用Constant或From Workspace模块加载单条消息数据。只有当触发脉冲为高电平时,发射模块才会输出数据,实现单次发射。

方法2:限制数据源的输出时长

  • 若使用Signal From Workspace模块作为消息源,在工作区定义单条消息数组(例如tx_data = pskmod([1 0 1 0 1], 2);),将模块的「Samples per frame」设为数组的总长度。
  • 在Simulink模型的「Model Configuration Parameters」中,设置Stop Time为length(tx_data)/Fs(Fs为你的采样率),模型运行时会仅发射这一帧数据,运行结束后自动停止。

方法3:用Matlab脚本控制模型单次运行

  • 预先在Simulink中搭建好发射机模型,确保消息源指向工作区变量。
  • 编写Matlab脚本定义单条消息并触发模型单次运行:
    % 生成单条消息的基带信号(根据你的调制方式调整)
    tx_msg = [0 1 1 0 1 0 0 1]; % 示例二进制消息
    tx_data = qammod(tx_msg, 4); % 4QAM调制
    assignin('baseworkspace', 'tx_data', tx_data);
    
    % 设置采样率与停止时间,触发模型运行
    Fs = 1e6; % 你的USRP采样率
    stop_time = num2str(length(tx_data)/Fs);
    sim('your_tx_model.slx', 'StopTime', stop_time);
    
  • 脚本执行后,模型仅发射一次预先定义的单条消息,完成后自动停止。

注意事项

  • 为保证接收机能正确捕获单条消息,建议在消息前添加同步头(如PN序列),配合接收机的帧同步模块使用。
  • 确保收发两端USRP的中心频率、采样率、增益等参数完全匹配,避免因参数偏差导致接收失败。

内容的提问来源于stack exchange,提问作者Emily

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:12:44