Weekly Status Report #4 10/13

Bobbie

Done this week

This week I generated test audio samples which would simulate the delays involved in sound arriving at our microphone array, using the Matlab script I wrote last week.

 

I also explored alternative signal processing techniques beyond adaptive nulling which could also be useful in our project. The most promising of these were Speech-distortion weighted multi-channel Wiener filtering (Ngo 2011), and the acoustic rake receiver (Dokmanic, Scheibler, and Vetterli 2015).

Over the course of this research I identified a few common useful utilities and prepared them for use in our project. This includes implementing the short-time Fourier transform and its inverse in Matlab, and finding the documentation for the Matlab “snr” function.

Goals for next week

  • Implement SDW-MWF in Matlab and evaluate its performance relative to our existing Matlab code.
  • Generate a working C implementation of the better-performing noise cancellation algorithm using Matlab Coder.

Kevin

Done this week

This week I explored the specific use case of white-noise adaptive cancellation with the implementation currently in place.  More specifically, trying to pinpoint the conditions that cause the filtering to work well vs. not well.

 

Additionally, I worked with Bobbie to come up with a quantitative way to analyze our results/ANC output and compare it to our desired signal.  We settled on using the Matlab “snr” function to evaluate the signal-to-noise ratio in our algorithm output relative to the original signal.

 

Also, I emailed professor Cameron Riviere to meet as a group and discuss his previous experience with adaptive noise cancelling.  He is a professor from the Robotics department with whom I am currently taking a sensors and sensing class with. We believe he will be a good resource for creating an effective actual microphone array as well as being able to receive feedback on our ANC implementation and figuring out how to integrate our current basic MATLAB implementation with a microphone array.  His previous ANC experience does not involve audio-signal inputs, however we should still be able to receive helpful feedback.

Goals for next week

  • Create a concrete geometric layout for how we want the microphone array with justification
  • Meet with professor Riviere to get a clearer direction on future endeavors
    • Clear concept on how to integrate our basic ANC code with multiple reference microphones.  (i.e. how to apply ANC to multiple reference signals)
    • Feedback on current ANC implementation
    • Feedback on our current testing environment

Questions to explore

  • How will multiple different noise signals affect our reference signals?
  • What do we do if our primary signal has a noise input that is much greater in magnitude (10+ dB) than the signal desired?
    • Our guess would be that this is not as important of a use-case because even a person without hearing impairments would have a difficult time in this scenario

Sean

Done this week

This week I noticed some crossing over on the routing microphone surface-mount PCB that I designed in Eagle. It looks like it might not be necessary, so I want to take a look at these and change the routing to avoid crossing over if possible.

I also did some research into audio on the Teensy board and found the Teensy Audio System Design Tool, which provides a GUI for drawing audio block diagrams and exporting Arduino code.

While our signal processing is very likely to be too complex to model graphically using these blocks, this will still be a useful tool that we can use to generate code and simplify getting audio in and out of the Teensy board.

Goals for next week

  • Finalize and send out the microphone mount PCB
  • Get simple input and output through the Teensy Audio Shield

 

Leave a Reply

Your email address will not be published. Required fields are marked *