アナログ入力を手軽に得る方法に、NIの測定ツールを使う方法があります。低速なものから高速なツールがあります。USB-6009(14ビット、差動4チャネル)は、低速ですが、複数の入出力をもち、安価なのが特徴です。USBケーブルでPCとつなぐだけで準備は終わります。

ebayだと、中古品が約1万円代で入手できます。
NI-MAXで接続を見る
無料で入手できるNIのツールMAXを起動します。「デバイスとインターフェース」の項目に、USB-6009を見つけてきます。
テストパネルをクリックします。開始をクリックすると、何らかのデータをロギングしていることがわかります。入力にはファンクション・ジェネレータのFGX-2005をつないでいます。
終了します。
アプリAnalog Input Recorderを起動
Data Acquisition Toolboxをインストールすると、Analog Input Recorder、Analog Output Generatorがアプリに登録されています。Analog Input Recorderを起動します。USB-6009を探し出してきて、入力波形を表示します。
画面上部の右端にあるGenerate Script codeをクリックします。
そのまま実行をクリックします。1秒間ロギングしたデータがグラフに描かれます。

ファンクション・ジェネレータは10Hz、3Vp-pの正弦波です。100Hzにします。

細かくてわからないので、
data = Dev1_1(1:50, :)
先頭の50個を表示しました。

サンプリング・レートが低いですね。デフォルトは1000になっていました。5000に変更します。グラフの表示数は、50から200個に増やしました。
d.Rate = 5000;

電圧が足りませんね。summaryも表示しまっす。振幅は取れたようですが、3Vp-pに対して、-3.5V、+2.9なので、正常なデータの取得ではありません。A-DコンバータのS&Hが十分な性能ではないかもしれません。
全データを表示すると、息継ぎをするようなところが出てしまい、サンプリング・レート48000はあまり信用できないと思われます。

方形波
ファンクション・ジェネレータの出力を、サイン波から方形波に変更しました。
プログラムです。
%Create DataAcquisition Object
%Create a DataAcquisition object for the specified vendor.
d = daq("ni");
d.Rate = 48000;
%Add Channels
%Add channels and set channel properties, if any.
addinput(d,"Dev1","ai0","Voltage");
%Read Data
%Read the data in timetable format.
Dev1_1 = read(d,seconds(0.1))
samples = length(Dev1_1.Dev1_ai0)
summary(Dev1_1)
%Dev1_1.Time(1:5)
%Dev1_1.Dev1_ai0(1:5)
data = Dev1_1(1:1000,:);
%data = Dev1_1(timerange(1,10))
%Plot Data
%Plot the read data on labeled axes.
plot(data.Time, data.Variables)
xlabel("Time")
ylabel("Amplitude (V)")
legend(Dev1_1.Properties.VariableNames)
%Clean Up
%Clear all DataAcquisition and channel objects.
clear d
ローパス・フィルタをかける
plotの最後に、
lowpass(data.Variables, 10 ,1000)
を追加しました。カットオフ周波数が10Hzで、サンプリング周波数は1kHzです。この周波数には何の根拠もありません。
少しだけ、立ち上がりが緩くなっています。