{"id":207,"date":"2020-03-14T13:15:57","date_gmt":"2020-03-14T13:15:57","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/?p=207"},"modified":"2020-03-23T11:59:48","modified_gmt":"2020-03-23T11:59:48","slug":"ryans-status-report-for-saturday-mar-14","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/2020\/03\/14\/ryans-status-report-for-saturday-mar-14\/","title":{"rendered":"Ryan&#8217;s Status Report for Saturday, Mar. 14"},"content":{"rendered":"<p>This week, we&#8217;ve worked on creating the FIR filter for converting the 1-bit 1-3MHz Pulse Density Modulation output of the microphone to a standard double precision array in MATLAB. Essentially, the FIR filter is a lowpass filter that only allows signals below 20kHz (human hearing range) to pass through.<\/p>\n<p>We used MATLAB&#8217;s Filter Designer tool to generate a lowpass FIR filter with 1.000MHz sampling frequency, 20kHz passband, 25kHz stopband. The resulting FIR filter had 506 taps. I could have lowered the stop band at the expense of higher filter order, but I didn&#8217;t want to slow the system down too much during the actual filtering process. We will see if a sharper filter is needed. The FIR filter has the following frequency and phase response:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-208\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/FIR-LPF-FR.png\" alt=\"\" width=\"1117\" height=\"530\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/FIR-LPF-FR.png 1117w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/FIR-LPF-FR-300x142.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/FIR-LPF-FR-768x364.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/FIR-LPF-FR-1024x486.png 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>In order to apply the filter, we perform a convolution of the signal with the coefficients of the filter.<\/p>\n<p>Original PDM signal, zoomed in:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-211\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/PDM-Signal.png\" alt=\"\" width=\"960\" height=\"791\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/PDM-Signal.png 960w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/PDM-Signal-300x247.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/PDM-Signal-768x633.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Filtered result:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-210\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied.png\" alt=\"\" width=\"970\" height=\"773\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied.png 970w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied-300x239.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied-768x612.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Filtered result, zoomed in:<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-209\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied-Zoomed.png\" alt=\"\" width=\"963\" height=\"766\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied-Zoomed.png 963w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied-Zoomed-300x239.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-content\/uploads\/sites\/92\/2020\/03\/LPF-Applied-Zoomed-768x611.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Great, we are getting our 850Hz tone that we applied to the mic back!<\/p>\n<p>Further considerations:<\/p>\n<ul>\n<li>The process of convolving the PDM signal with the FIR filter seems to take a few seconds in MATLAB. We will need to optimize this for a realistic processing time for all 96 microphones.<\/li>\n<li>I was not able to get the resulting signal&#8217;s audio to play in MATLAB. I do hear some pops and crackles though, so there must be a way to play a double array.<\/li>\n<li>In talks with Patrick from TDK Invensense for microphones. We may be able to source the microphones from them instead of Mouser or Digikey, saving us a lot of money.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, we&#8217;ve worked on creating the FIR filter for converting the 1-bit 1-3MHz Pulse Density Modulation output of the microphone to a standard double precision array in MATLAB. Essentially, the FIR filter is a lowpass filter that only allows signals below 20kHz (human hearing range) to pass through. We used MATLAB&#8217;s Filter Designer tool &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/2020\/03\/14\/ryans-status-report-for-saturday-mar-14\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Ryan&#8217;s Status Report for Saturday, Mar. 14&#8221;<\/span><\/a><\/p>\n","protected":false},"author":280,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,3],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/posts\/207"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/users\/280"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/comments?post=207"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":212,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/posts\/207\/revisions\/212"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/media?parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/categories?post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teame0\/wp-json\/wp\/v2\/tags?post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}