В этом примере показано, как использовать канал функционального преобразователя, чтобы сгенерировать синусоидальную функциональную форму волны на 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])
