如何將您的計算機用作任意波形發生器

瞭解您的計算機如何用作任意波形發生器。在本文中,我們將使用Scilab生成數字信號,這些信號可以通過計算機的音頻硬件轉換為模擬波形。

最近我一直在撰寫文章,證明Scilab用於各種信號處理任務。在這種計算環境中進行DSP實驗非常方便; 可以快速開發和改進通信,傳感器和音頻系統中涉及的算法,並且可以在時域和頻域中仔細分析信號。

下一步是將所有這些信號處理活動擴展到實際電壓信號領域,Scilab可以很容易地實現這一點(我假設您的計算機可以播放sound)。我目前無法訪問MATLAB,但我認為它提供了相同的功能,所以我希望本文中的幾乎所有內容都與MATLAB用戶相關。還有另一個名為GNU Octave的免費MATLAB替代方案。我從來沒有使用過它,所以我很感激Octave用戶對如何實現本文和下一篇文章中討論的數模轉換操作的任何意見。

可能有很多方法可以使用這種Scilab-to-analog(或MATLAB-to-analog)功能。想到的一種可能性是通過在Scilab中生成基帶信號並將它們轉換為連接到RF電路的模擬信號來測試無線發射器的高頻部分。但是,在本文中,我們將重點介紹更通用的應用程序:使用典型的計算機作為任意波形生成器。

基本設置

您需要的唯一硬件是音頻電纜,兩端帶有公連接器。一側插入計算機的耳機端口,另一側將信號傳送到相關電路(或示波器)。下圖顯示了我如何將Tektronix示波器探頭剪切到音頻連接器。

如何將您的計算機用作任意波形發生器

我們將用於生成模擬波形的命令稱為sound()。唯一需要的輸入參數是要發送到計算機音頻DAC的數字數組。此數組中的值必須大於或等於-1且小於或等於+1。如果使用正弦信號,這很方便,因為sin()cos()函數會在此範圍內生成信號。但是,一般情況下,您需要在[-1,1]範圍內瞭解信號幅度和必要的比例。

sound()函數還接受期望的採樣率的參數。如果未指定採樣率,則使用默認值22.05 kHz。

雖然我們討論採樣率問題,但我應該提到影響任何將計算機音頻硬件用作波形發生器的嚴重限制。該硬件用於音頻信號,因此根據硬件要實現的音頻質量選擇其最大采樣率。我的印象是,現在很多計算機都支持高達192 kHz的採樣頻率,但很難找到有關該主題的清晰信息。

生成正弦曲線

讓我們從一個簡單的例子開始吧。我們將生成一個441赫茲的正弦波,並查看一些範圍捕獲。

SignalFrequency = 441;

採樣頻率= 22.05e3;

Samples_per_Cycle = SamplingFrequency / SignalFrequency;

n = 0:(Samples_per_Cycle-1);

Signal_OneCycle = sin(2 *%pi * n /(SamplingFrequency / SignalFrequency));

數組n以及Signal_OneCycle數組的長度為50.採樣週期為1/22050≈45μs。因此,一個週期持續約50×45μs= 2.25ms。我喜歡有大約十秒的持續時間,所以我有足夠的時間來查看示波器上的信號。以下for循環用於將Signal_OneCycle陣列擴展為一個長度與所需信號持續時間相對應的數組。

CycleDuration =(1 / SamplingFrequency)* length(n);

FullSignal = 0;

對於k = 1:(10 / CycleDuration)

> FullSignal = [FullSignal Signal_OneCycle];

>結束

現在我們已準備好生成信號。我們不必指定採樣率,因為我使用的採樣頻率(22.05 kHz)與默認值相同。

sound(FullSignal)

以下範圍捕獲顯示生成的波形。在底部,您可以看到峰峰值幅度和頻率的測量值。直接來自耳機插孔的振幅可能適用於許多應用; 如果你需要更高的電壓,一個簡單的運算放大器電路就足夠了。

如何將您的計算機用作任意波形發生器

以這種方式生成模擬信號的一個特別方便的方面是計算機的音量調節功能可以很好地控制信號的幅度。以下範圍捕獲可讓您瞭解振幅與計算機音量之間的關係。

如何將您的計算機用作任意波形發生器

音量設定:10%

如何將您的計算機用作任意波形發生器

音量設定:50%

如何將您的計算機用作任意波形發生器

音量設定:80%

本文使用Scilab將普通計算機變成任意波形發生器的後續內容請打開下面鏈接進行查看:https://www.eetoday.com/application/communication/201904/74993.html

相關推薦

推薦中...