Используйте каналы генератора функций, чтобы сгенерировать синусоидальную форму волны 1 кГц и записать данные одновременно, используя аналоговый входной канал.
Обнаружение устройств Digilent, подключенных к вашей системе с помощью daqlist
daqlist("digilent") dq = daq("digilent")
ans = 1×4 table DeviceID Description Model DeviceInfo ________ _____________________________________________ ____________________ _______________________ "AD1" "Digilent Inc. Analog Discovery 2 Kit Rev. C" "Analog Discovery 2" [1×1 daq.di.DeviceInfo] dq = DataAcquisition using Digilent Inc. hardware: Running: 0 Rate: 10000 NumScansAvailable: 0 NumScansAcquired: 0 NumScansQueued: 0 NumScansOutputByHardware: 0 RateLimit: [] Show channels Show properties and methods
Добавьте канал генератора функций с идентификатором устройства AD1
и идентификатор канала 1
. Установите тип формы волны равным Sine
.
ch_fgen = addoutput(dq, "AD1", "1", "Sine");
Установите коэффициент усиления канала равным 5 (устанавливает амплитуду синусоиды равной 5 В). Присвойте коэффициент усиления переменной.
ch_fgen.Name = "AD1_1_fgen"
gain = 5;
ch_fgen.Gain = gain;
ch_fgen = Index Type Device Channel Measurement Type Range Name _____ ______ ______ _______ ________________ ____________________ ____________ 1 "fgen" "AD1" "1" "Sine" "-5.0 to +5.0 Volts" "AD1_1_fgen"
Установите частоту сигнала 1 кГц
ch_fgen.Frequency = 1000;
Добавьте аналоговый входной канал с идентификатором устройства AD1
и идентификатор канала 1
. Установите тип измерения равным Voltage
.
ch_in = addinput(dq, "AD1", "1", "Voltage"); ch_in.Name = "AD1_1_in"
ch_in = Index Type Device Channel Measurement Type Range Name _____ ____ ______ _______ ________________ __________________ __________ 1 "ai" "AD1" "1" "Voltage (Diff)" "-25 to +25 Volts" "AD1_1_in"
Получите данные с более высокой частотой скана, чем самая высокая частота в сгенерированной форме волны.
dq.Rate = 100 * ch_fgen.Frequency;
[data, startTime] = read(dq, seconds(1));
period = 1/ch_fgen.Frequency; plot(data.Time, data.AD1_1_in); xlabel('Time in seconds'); ylabel('Voltage in volts'); title(['Period = ', num2str(period), ' seconds']) xlim([seconds(0) seconds(5*period)]); ylim([-gain gain]);