谢丫丫

如何将您的计算机用作任意波形发生器?

0
阅读(113) 评论(0)

了解您的计算机如何用作任意波形发生器。在本文中,我们将使用Scilab生成数字信号,这些信号可以通过计算机的音频硬件转换为模拟波形。

最近我一直在撰写文章,证明Scilab用于各种信号处理任务。在这种计算环境中进行DSP实验非常方便; 可以快速开发和改进通信,传感器和音频系统中涉及的算法,并且可以在时域和频域中仔细分析信号。

下一步是将所有这些信号处理活动扩展到实际电压信号领域,Scilab可以很容易地实现这一点(我假设您的计算机可以播放声音ICfans)。我目前无法访问MATLAB,但我认为它提供了相同的功能,所以我希望本文中的几乎所有内容都与MATLAB用户相关。还有另一个名为GNU Octave的免费MATLAB替代方案。我从来没有使用过它,所以我很感激Octave用户对如何实现本文和下一篇文章中讨论的数模转换操作的任何意见。

可能有很多方法可以使用这种Scilab-to-analog(或MATLAB-to-analog)功能。想到的一种可能性是通过在Scilab中生成基带信号并将它们转换为连接到RF电路的模拟信号来测试无线发射器的高频部分。但是,在本文中,我们将重点介绍更通用的应用程序:使用典型的计算机作为任意波形生成器。


基本设置

您需要的唯一硬件是音频电缆,两端带有公连接器。一侧插入计算机的耳机端口,另一侧将信号传送到相关电路(或示波器)。下图显示了我如何将Tektronix示波器探头剪切到音频连接器。

 

 

我们将用于生成模拟波形的命令称为sound()。唯一需要的输入参数是要发送到计算机音频DAC的数字数组。此数组中的值必须大于或等于-1且小于或等于+1。如果使用正弦信号,这很方便,因为sin()和cos()函数会在此范围内生成信号。但是,一般情况下,您需要在[-1,1]范围内了解信号幅度和必要的比例。

的声音()函数还接受期望的采样率的参数。如果未指定采样率,则使用默认值22.05 kHz。

虽然我们讨论采样率问题,但我应该提到影响任何将计算机音频硬件用作波形发生器的严重限制。该硬件用于音频信号,因此根据硬件要实现的音频质量选择其最大采样率。我的印象是,现在很多计算机都支持高达192 kHz的采样频率,但很难找到有关该主题的明确信息。

 

生成正弦曲线

让我们从一个简单的例子开始吧。我们将生成一个441赫兹的正弦波,并查看一些范围捕获。

 

image.png


数组n以及Signal_OneCycle数组的长度为50.采样周期为1/22050≈45μs。因此,一个周期持续约50×45μs= 2.25ms。我喜欢有大约十秒的持续时间,所以我有足够的时间来查看示波器上的信号。以下for循环用于将Signal_OneCycle阵列扩展为一个长度与所需信号持续时间相对应的数组。

 

image.png


现在我们已准备好生成信号。我们不必指定采样率,因为我使用的采样频率(22.05 kHz)与默认值相同。

 

image.png

 

以下范围捕获显示生成的波形。在底部,您可以看到峰峰值幅度和频率的测量值。直接来自耳机插孔的振幅可能适用于许多应用; 如果你需要更高的电压,一个简单的运算放大器电路就足够了。

 

 

以这种方式生成模拟信号的一个特别方便的方面是计算机的音量调节功能可以很好地控制信号的幅度。以下范围捕获可让您了解振幅与计算机音量之间的关系。

 

音量设定:10%

 

音量设定:50%

 

音量设定:80%

 

生成三角波

以下命令可用于生成三角波形。我们将使用相同的频率(即441 Hz),这意味着向上斜坡和向下斜坡必须具有25个样本的长度。

 

image.png


 

在我们完成之前,我想指出这个设置不仅提供了方便的幅度控制,还提供了快速的频率调整:您可以通过在调用时指定不同的采样频率来更改模拟波形的频率,而无需修改数值的声音()函数。例如,如果指定的采样频率比原始频率高2倍,则新波形频率将比原始波形频率高2倍。

 

image.png


 

image.png


 

结论

作为半导体行业的我们讨论了一种简单的技术,它使用Scilab(或MATLAB)将普通计算机变成任意波形发生器。本文提供了用于生成正弦波和三角波的Scilab命令,我们将在下一篇文章中介绍其他波形类型。