在微秒内生成哔哔声c#

Posted

技术标签:

【中文标题】在微秒内生成哔哔声c#【英文标题】:Generate Beep in microseconds c# 【发布时间】:2016-06-17 16:46:05 【问题描述】:

我想在微秒(100 微秒)内生成矩形哔声,但 c# 仅在毫秒(1 或更多)内提供给我。 这是我想要做的图像: 图像 - 以微秒为单位的矩形脉冲

我能做什么?

感谢您的回答

【问题讨论】:

我不知道 c# 会根据时间显式绘制矩形。您能否澄清一下并显示一些代码? 使用NAudio library 很容易做到。请牢记物理学,时间分辨率仅限于采样率。没关系,没有人有足够好的耳朵来听到差异。或者根本听不到这个信号。 这种用法表示通信协议。为此,您确实需要一个精确的分辨率。 【参考方案1】:

您在使用 DirectX.Sound 吗? https://channel9.msdn.com/coding4fun/articles/Generating-Sound-Waves-with-C-Wave-Oscillators

使用 DirectX,您可以创建自己的波形,但是使用 44.1KHz(0.22mS 0.02267mS 或 22.67uS)的采样频率,您似乎无法精确地做你需要,但你可以接近。最接近的符合要求的脉冲宽度是 90.7 uS 或 113.4 uS。

【讨论】:

44.1kHz 的单个样本为 0.023us。但这并不重要。在一毫秒内,您可以在任何大于 2kHz 的采样率下获得 1kHz 正弦波的单个周期。 @jaket 实际上,我们都错了! - 持续时间为 0.022 毫秒(22 微秒),即 1/44100 我将编辑我的答案以更正此问题。

以上是关于在微秒内生成哔哔声c#的主要内容,如果未能解决你的问题,请参考以下文章

通过声卡哔哔声

识别微秒范围内的 POSIX 读取暂停

如何让android只在一只耳朵里发出哔哔声?

STM32 CubeMX如何生成微秒(us)级延时

有没有办法在 Windows 上测量时间到微秒精度? [复制]

在 C# WPF 中发出哔声