Announcement

Collapse
No announcement yet.

Digital signal processing and event identification

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Digital signal processing and event identification

    Hi there,

    I am trying to perform event detection on microphone signal data sampled at 1000 Hz. The signal contains high frequency noise at ~ ±.0005 V and spectrum analysis reveals this to be uniformly distributed during the 'quiet' periods. The event to detect occurs within a predictable time window but its magnitude can be extremely small (a good event is ~±.002 V). The signal is a clap which, in a good trial, results in a rapid (~5 frames) change in signal followed by ~10-20 frames of slightly increased magnitude noise.

    Thoughit is reasonably easy to visually identify the event, I have >20,000trials so I must use automatic identification. I have tried high, low and band-pass filters, differentiation (and combinations of these) as input to a threshold detector but the method is not reliable.

    I have read a little about the Wigner Function and this sounds like away forward (maintaining a high frequency event whilst filtering high frequency noise) but I am struggling to understand it. I perform analysis in Matlab.
    Any ideas or pointers would be greatly appreciated.

    Yours
    Jonathan
    Last edited by Jonathan Flavell; April 28, 2015, 04:35 AM.

  • #2
    Re: Digital signal processing and event identification

    The open source audio tool Audacity has several tools available to manipulate time series like audio samples. You could use Amplify or Normalize to get reasonable gain between your noise floor and the clap signal. The noise removal tool will further improve and isolate the clap sound. Analyze the spectrum of the clap event to identify the frequencies to keep and build a band pass filter. The beat finder or sound finder tools will tag the timeline when they find a match. You can export the tag data from the tracks > Edit Labels > export menu into a spreadsheet, or the actual audio file can be chopped into separate audio files at each tag using File > Export multiple... You may create combination of effects into a chain to automate the process.

    - Ed Morra -

    Comment


    • #3
      Re: Digital signal processing and event identification

      Thanks for the tip Ed. I've played a little Audacity this morning but I am having some trouble with importing. I've imported a test signal as a signal coloum .xls file (raw import) but the Audacity plotted signal (waveform option) is very different to my Matlab plotted signal.

      Comment


      • #4
        Re: Digital signal processing and event identification

        Hi Jonathan!
        Although I am not familiar with analysis of audio-signals, you might consider to use a time-frequency analysis for the detection of the event (Time-frequency analysis being quite popular at the moment in the analysis of EMG signals). Using a short time fourier transform (STFT) with overlapping windows, you might be able to detect the signal out of the raw data without tedious filtering. However, one has to bear in mind that in STFT you always trade temporal accuracy for frequency accuracy and vice-versa. So in case you need highly accurate temporal detection, testing your algorithm on data with an event with known timing would be indispensable.

        Matlab's frequency toolbox has a nice function


        In case you don't have the toolbox, this function (though I didn't try it) might help


        good luck!
        Regards from Vienna
        Stefan

        Comment


        • #5
          Re: Digital signal processing and event identification

          Hello Jonathan,

          Have you tried the TKEO (Teager-Kaiser Energy Operator) algorithm on your signal? It's a kind of differentiator that should single out the clap start of your signal from the noise level. It's a simple algorithm that goes like this:

          yi = (xi)2 - xi-1 * xi+1

          HTH,

          Michel

          Comment


          • #6
            Re: Digital signal processing and event identification

            I'd echo the use of some time-frequency technique: STFT and spectrogram analysis has long been used in analyzing speech. You might also look into a wavelet transform-based method, which deals better with the tradeoff in time vs frequency resolution. You may find that your clap signal has a lot of power in a small bandwidth compared to your noise, and can focus on that to identify when it occurs.

            Comment


            • #7
              Re: Digital signal processing and event identification

              Thats great. Thanks for the tips! The TKEO algorithm work very well for this work.

              Comment

              Working...
              X