使用 NAudio 无法正确生成方波

Posted

技术标签:

【中文标题】使用 NAudio 无法正确生成方波【英文标题】:Square Wave not generating properly usin NAudio 【发布时间】:2020-03-03 08:12:59 【问题描述】:

我正在使用 NAudio 播放方波。当我大胆地录制那个声音并检查波形时。

它来不及。

NAudio 生成声音的波形

Audacity 生成声音的波形

我做错了什么吗?

代码

sine20Seconds = new SignalGenerator()

    Gain = 0.5,
    Frequency = Convert.ToDouble(freqBox1.Text)                    
;
sine20Seconds.Type = SignalGeneratorType.Square;
wo = new WaveOutEvent();
wo.Init(sine20Seconds);
wo.Play();

【问题讨论】:

您能否将生成(或者更确切地说:不生成)方波数据的代码添加到您的问题中? 已添加代码。@Paul-Jan 谢谢。在您的代码片段中,您使用“sineWave”初始化 WaveoutEvent。这与您刚刚初始化的 sine20seconds 信号发生器不是同一个变量。此外,您为正方形使用了错误的信号发生器类型。 是的,换句话说,发布的代码质量很差。当人们懒得发布完整代码时,这很尴尬。 【参考方案1】:

尝试改变

sine20Seconds.Type = SignalGeneratorType.Triangle;

sine20Seconds.Type = SignalGeneratorType.Square;

根据instructions here

【讨论】:

抱歉代码错误,我只使用了 SignalGeneratorType.Square 并得到了结果。即使它设置为三角形,输出也不是应该的。 如果使用 Square 枚举,输出是否相同?您可以制作同一个项目或共享整个项目吗?听起来您缺少某些特定的东西,因为 Square 枚举无法生成您所描述的模式。如果您查看源代码,显然情况就是如此。谢谢 这是唯一的代码。我运行它并大胆地记录它,然后检查结果(我分享的)。你可以检查并更新我。 哇,谢谢!你很友善 :-) 说真的 - 完整的文章是最好的。由于您的代码示例有问题,因此许多人会认为您的其余代码也是如此。没有足够的上下文来回答您的问题。

以上是关于使用 NAudio 无法正确生成方波的主要内容,如果未能解决你的问题,请参考以下文章

利用python和jupyter notebook交互式小部件生成方波,可以实时调节谐波个数和基波频率

信号转换 | 如何将正弦波转换成方波?

正弦信号怎么变成方波信号,需要怎么处理?

利用运放怎样实现由方波变成正弦波

怎样将正弦波变成方波或者锯齿波?

在 JFrame 中生成方波