Этот пример показывает, как получить и отобразить данные о звуковом давлении из микрофона PCB® IEPE массивов, Модели 130E20. Датчик записывает звуковое давление, сгенерированное камертоном в середину C частота (на 261,626 Гц).
Чтобы обнаружить устройство, которое поддерживает Микрофоны, кликните по имени устройства в списке в Командном окне или получите доступ к устройству в массиве, возвращенном командой daq.getDevices
. В данном примере микрофон соединяется на канале 0 из устройства National Instruments® 9234 на шасси NI cDAQ-9174 CompactDAQ с ID cDAQ1Mod3
.
devices = daq.getDevices devices(3)
devices = Data acquisition devices: index Vendor Device ID Description ----- ------ --------- -------------------------------- 1 ni cDAQ1Mod1 National Instruments NI 9205 2 ni cDAQ1Mod2 National Instruments NI 9263 3 ni cDAQ1Mod3 National Instruments NI 9234 4 ni cDAQ1Mod4 National Instruments NI 9201 5 ni cDAQ1Mod5 National Instruments NI 9402 6 ni cDAQ1Mod6 National Instruments NI 9213 7 ni cDAQ1Mod7 National Instruments NI 9219 8 ni cDAQ1Mod8 National Instruments NI 9265 9 ni Dev1 National Instruments PCIe-6363 10 ni Dev2 National Instruments NI ELVIS II ans = ni: National Instruments NI 9234 (Device ID: 'cDAQ1Mod3') Analog input subsystem supports: -5.0 to +5.0 Volts range Rates from 1000.0 to 51200.0 scans/sec 4 channels ('ai0','ai1','ai2','ai3') 'Voltage','Accelerometer','Microphone','IEPE' measurement types This module is in slot 3 of the 'cDAQ-9178' chassis with the name 'cDAQ1'.
Создайте сеанс и добавьте канал с типом измерения Microphone
.
s = daq.createSession('ni'); addAnalogInputChannel(s,'cDAQ1Mod3', 0, 'Microphone');
Установите Sensitivity
микрофона на значение, заданное в таблице данных датчика. Для этого датчика значение Sensitivity
составляет 0,037 вольт/Паскаль. Исследуйте свойства канала видеть конфигурацию устройства изменений.
s.Channels.Sensitivity = 0.037; s.Channels
ans = Data acquisition analog input microphone channel 'ai0' on device 'cDAQ1Mod3': Sensitivity: 0.037 MaxSoundPressureLevel: 136 ExcitationCurrent: 0.001 ExcitationSource: None Coupling: DC TerminalConfig: Differential Range: -200 to +200 Pascals Name: '' ID: 'ai0' Device: [1x1 daq.ni.CompactDAQModule] MeasurementType: 'Microphone' ADCTimingMode: ''
Установите длительность на 4 секунды и уровень к 51 200 сканированиям в секунду и запустите приобретение.
s.DurationInSeconds = 4; s.Rate = 51200; [data,time] = s.startForeground();
Используйте audioplayer
, чтобы воспроизвести приобретение
p = audioplayer(data, s.Rate); play(p);
Исследуйте данные во временном интервале
plot(time,data) xlabel('Time (secs)'); ylabel('Sound Pressure (pascals)');
Исследуйте данные в частотном диапазоне
Используйте fft
и следующие параметры, чтобы вычислить односторонний амплитудный спектр входящих данных:
Вычислите длину сигнала
Вычислите nfft
Вычислите амплитуду и частоту
length = double(s.NumberOfScans); nfft = 2^nextpow2(length); y = fft(data,nfft)/length; frequency = s.Rate/2*linspace(0,1,nfft/2+1); amplitude = 2*abs(y(1:nfft/2+1));
Постройте односторонний амплитудный спектр
plot(frequency,amplitude); xlim([0 1000]); xlabel('Frequency (Hz)'); ylabel('Amplitude');
Заметьте, что график показывает скачок на уровне 261,626 Гц. Это совпадает с частотой камертона.