为啥 MATLAB 在尝试采集数据时会更改采样率?
Posted
技术标签:
【中文标题】为啥 MATLAB 在尝试采集数据时会更改采样率?【英文标题】:Why does MATLAB change the sample rate while trying to acquire data?为什么 MATLAB 在尝试采集数据时会更改采样率? 【发布时间】:2013-05-03 05:20:49 【问题描述】:我正在使用带有 Data Acquisition 工具箱的 Matlab 32 位 DataQ 采集设备。
有时,当我将采样率设置为 300 时,它会告诉我:
警告:此硬件不支持请求的值 300 采样率。 SampleRate 已设置为 1000"
但是,如果我将 SampleRate 设置为 1000,它有时会将其设置回 300 并显示相同的错误消息。
另外,如果我将程序设置为在显示错误并且设备开始记录后返回 SampleRate,这始终是我设置的值,而不是程序声称将其更改为的值。
任何人知道我如何找出实际采样率是多少或阻止它重置我的?我需要知道每秒有多少样本以供进一步计算。
【问题讨论】:
也许 MATLAB 新闻组上的 this thread 可以解释您所看到的。您的代码是否与新闻组线程中发布的代码相似? 查看 Sherryl Radbil 的回答 here。也许它会有所帮助。设备支持的最大采样频率是多少?您还应该考虑某些设备使用的通道数,以确定最大采样频率。 @HebeleHododo - 这似乎与最小采样率或一组受限的有效选择有关,而不是最大。跨度> @ChrisStratton 你是对的,受限集似乎更有可能。 嗯,这听起来像是一个错误,一个一旦设置就无法更改它的问题......或者可能是一个(假设?)正在进行的并发操作,它可能会锁定采样率? 【参考方案1】:问题不在于 Matlab,而在于 DAQ。我对 NI DAQ 也有类似的“问题”。硬件设置为以非常高的速率进行采样以避免混叠。您可以以比要求更高的速率进行采样,然后使用 Matlab 命令“重新采样”来降低采样率。重采样将避免任何较高频率的混叠。
【讨论】:
以上是关于为啥 MATLAB 在尝试采集数据时会更改采样率?的主要内容,如果未能解决你的问题,请参考以下文章