Получите и проанализируйте данные о звуковом давлении от микрофона IEPE

В этом примере показано, как получить и отобразить данные о звуковом давлении из микрофона массива PCB ® IEPE, Model 130E20. Датчик регистрирует звуковое давление, генерируемое камертоном на частоте среднего С (261,626 Гц).

Обнаружение устройств, поддерживающих микрофоны

Чтобы обнаружить устройство, которое поддерживает измерения микрофона, получите доступ к устройству в таблице, возвращенной daqlist команда. В данном примере микрофон соединяется с каналом 0 устройства National Instruments ™ ® NI 9234 на корпусе CompactDAQ NI cDAQ-9178 с идентификатором cDAQ1Mod3.

d = daqlist("ni")
d =

  12×4 table

     DeviceID                 Description                    Model             DeviceInfo     
    ___________    __________________________________    _____________    ____________________

    "cDAQ1Mod1"    "National Instruments NI 9205"        "NI 9205"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod2"    "National Instruments NI 9263"        "NI 9263"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod3"    "National Instruments NI 9234"        "NI 9234"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod4"    "National Instruments NI 9201"        "NI 9201"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod5"    "National Instruments NI 9402"        "NI 9402"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod6"    "National Instruments NI 9213"        "NI 9213"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod7"    "National Instruments NI 9219"        "NI 9219"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod8"    "National Instruments NI 9265"        "NI 9265"        [1×1 daq.DeviceInfo]
    "Dev1"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev2"         "National Instruments NI ELVIS II"    "NI ELVIS II"    [1×1 daq.DeviceInfo]
    "Dev3"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev4"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]

deviceInfo = d{3, "DeviceInfo"}
deviceInfo = 

ni: National Instruments NI 9234 (Device ID: 'cDAQ1Mod3')
   Analog input 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'.


Создайте DataAcquisition и добавьте канал микрофона

Создайте DataAcquisition и добавьте канал с Microphone тип измерения.

dq = daq("ni");
ch = addinput(dq, "cDAQ1Mod3", "ai0", "Microphone");

Установите свойства датчика

Установите канал микрофона Sensitivity свойство значению, указанному в табличных данных датчика. Для этого датчика, Sensitivity значение составляет 0,037 В/Паскаль. Проверьте свойства канала, чтобы увидеть изменения в строении устройства.

ch.Sensitivity = 0.037;
ch
ch = 

    Index    Type      Device       Channel     Measurement Type              Range                  Name      
    _____    ____    ___________    _______    ___________________    ______________________    _______________

      1      "ai"    "cDAQ1Mod3"     "ai0"     "Microphone (Diff)"    "-200 to +200 Pascals"    "cDAQ1Mod3_ai0"

Сконфигурируйте и запустите приобретение

Установите скорость скана сбора 51200 сканов в секунду, затем используйте read для получения четырех секунд данных.

dq.Rate = 51200;
tt = read(dq, seconds(4));
t = tt.Time;
data = tt.cDAQ1Mod3_ai0;

Анализируйте данные

Использование audioplayer воспроизведение полученного сигнала микрофона

p = audioplayer(data, dq.Rate);
play(p);

Исследуйте данные во временном интервале

plot(t, data);
ylabel('Sound Pressure (pascals)');

Исследуйте данные в Частотный диапазон

Использование fft и следующие параметры для вычисления одностороннего амплитудного спектра поступающих данных:

  • Вычислите длину сигнала (количество выборок или записей в таблице)

  • Вычислите nfft

  • Вычислите амплитуду и частоту

len = height(tt);
nfft = 2^nextpow2(len);
y = fft(data,nfft)/len;
f = dq.Rate/2*linspace(0,1,nfft/2+1);
A = 2*abs(y(1:nfft/2+1));

Постройте график одностороннего спектра амплитуд

plot(f,A);
xlim([0 1000]);
xlabel('Frequency (Hz)');
ylabel('Amplitude');

График показывает скачок частоты 261,626 Гц. Это совпадает с частотой настройки вилки.