Senior Design Project with the LPC54608 - Ultrasonic Pitch Shifter

Hey everyone, we're seniors majoring in electrical engineering at Penn State. For our senior design project, our class topic was embedded digital audio using the LPC54608 as the microcontroller. We decided to try and visualize ultrasonic frequencies for our project, mapping high frequencies beyond the human hearing range down to the audible range. The typical hearing range for humans is between 20 Hz - 20 kHz, but there is a lot of information available at frequencies beyond that. For example, dogs can hear beyond the 20 kHz range, and dog trainers use this to help train dogs with high frequency dog whistles. Likewise, bats and whales/dolphins use echolocation to see the world around them either at night or deep in the ocean, respectively. The medical and defense industries also use sonar/ultrasound for a similar purpose. Military submarines use sonar to detect objects in the ocean, similar to whales. Doctors use medical ultrasound to visualize the development babies when they are still in the womb. Sonar applications accomplish these tasks by sending out high frequency noises and looking at the echoes which bounce back off of objects. Based on the echoes which bounce back, it can be determined what objects are present.

For our project, we decided to try a ultrasonic pitch shifter. Instead of a sonar style visualization, we emit ultrasonic noises and shift them down into the human hearing range, so we can here them again. The aim of this project is to introduce ultrasonic frequencies to everyday people. Using the LPCxpresso54608 microcontroller, we develop a device that maps ultrasonic frequencies existing between 24 - 36 kHz to 0 - 12 kHz, a range almost exclusively within human hearing. Our solution hinges on a simple frequency pitch shifter algorithm which isolates the frequency range 24 - 36 kHz via bandpass filtering and shifts these frequencies down to the 0 - 12 kHz range through intentional aliasing. To accomplish this design, the LPCxpresso54608’s DMIC samples at 96 kHz, the DMA controller manages data transfer to relieve the board’s CPU, an 81-tap FIR bandpass filter designed using the Parks-McClellan algorithm isolates the frequencies in the range 24 - 36 kHz, and the resulting signal is decimated to shift those frequencies down to the 0 - 12 kHz range. Our group successfully shifted an ultrasonic version of the Mario theme song back to a range perceivable to humans.

Attached with this post is a link to the final design report we wrote for the class as well as links to the GitHub repository of the code and a YouTube video demonstrating the project.