В этом примере показано, как использовать канал функционального преобразователя, чтобы сгенерировать синусоидальную функциональную форму волны на 1 кГц и данные записи одновременно, с помощью аналоговых входов. Область значений выходного напряжения исходящего сигнала-5.0 к +5.0 вольтам. Этот пример использует основанный на сеансе интерфейс с Аналоговым оборудованием Открытия Digilent.
Узнайте устройства Digilent, соединенные к вашей системе с помощью daq.getDevices
и создайте сеанс с помощью перечисленного устройства Digilent.
s = daq.createSession('digilent')
s = Data acquisition session using Digilent Inc. hardware: Will run for 1 second (10000 scans) at 10000 scans/second. No channels have been added.
Добавьте канал функционального преобразователя с ID устройства AD1
и ID канала 1
. Установите тип формы волны на Sine
.
fgenCh = addFunctionGeneratorChannel(s, 'AD1', 1, 'Sine')
fgenCh = Data acquisition sine waveform generator '1' on device 'AD1': Phase: 0 Range: -5.0 to +5.0 Volts TerminalConfig: SingleEnded Gain: 1 Offset: 0 Frequency: 4096 WaveformType: Sine FrequencyLimit: [0.0001 25000000.0] Name: '' ID: '1' Device: [1x1 daq.di.DeviceInfo] MeasurementType: 'Sine'
Установите усиление канала на 5 (устанавливает амплитуду синусоиды к 5 В). Сохраните настройку усиления к переменной, для того, чтобы установить оси.
gain = 5; fgenCh.Gain = gain;
Установите частоту на 1 кГц
fgenCh.Frequency = 1000;
Добавьте канал аналогового входа с ID устройства AD1
и ID канала 1
. Установите тип измерения на Voltage
.
aiCh = addAnalogInputChannel(s, 'AD1', 1, 'Voltage')
aiCh = Data acquisition analog input voltage channel '1' on device 'AD1': Coupling: DC TerminalConfig: Differential Range: -25 to +25 Volts Name: '' ID: '1' Device: [1x1 daq.di.DeviceInfo] MeasurementType: 'Voltage'
Получите данные на более высоком уровне, чем самая высокая частота в сгенерированной форме волны. Установите длительность генерации составлять 1 секунду.
s.Rate = 100 * fgenCh.Frequency; s.DurationInSeconds = 1;
[data, timestamps] = startForeground(s);
period = 1/fgenCh.Frequency; plot(timestamps, data); xlabel('Time in seconds'); ylabel('Voltage in volts'); title(['Period = ', num2str(period), ' seconds']) axis([0 5*period -gain gain])