<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:admin="http://webns.net/mvcb/"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
	<channel> 

	<title>Comments on: Simple ASK demodulation in software?</title>
	<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software/</link>
	<description>Comments on Ask MetaFilter post Simple ASK demodulation in software?</description>
	<pubDate>Thu, 30 Nov 2006 23:55:41 -0800</pubDate>
	<lastBuildDate>Thu, 30 Nov 2006 23:55:41 -0800</lastBuildDate>
	<language>en-us</language>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<ttl>60</ttl>

	<item>
		<title>Question: Simple ASK demodulation in software?</title>
		<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software</link>	
		<description>I have an audio signal containing very simple amplitude shift keyed data . Is there any cross-platform software I can use to extract the data? Or pointers to an explanation I could use to write my own? &lt;br /&gt;&lt;br /&gt; The Polar heart rate monitor I have can transfer data to a computer via chirping into the microphone, but the software for it is Windows-only, and pretty limited in what it can do. The chirping is an on/off keyed signal, and if I could just get at the digital data, I&apos;m pretty sure I could decode most of it, since the protocol for an earlier model of the watch has been reverse engineered. But I&apos;m stuck at the audio decoding stage. If I look at the waveform, it&apos;s obvious that I could do it by hand--just chunk the waveform into slices the size of a pulse, and write down a 1 for each slice that contains a signal and a 0 for each one that contains no signal. But that would take forever.&lt;br&gt;
&lt;br&gt;
I&apos;m looking for software that can examine the waveform and turn it into 1s and 0s for me. Or if there&apos;s a well-explained algorithm I could use to write my own software, I&apos;d be just as happy with that.</description>
		<guid isPermaLink="false">post:ask.metafilter.com,2006:site.52122</guid>
		<pubDate>Thu, 30 Nov 2006 23:23:02 -0800</pubDate>
		<dc:creator>hades</dc:creator>
		
			<category>demodulation</category>
		
			<category>amplitude</category>
		
			<category>ook</category>
		
			<category>dsp</category>
		
	</item> <item>
		<title>By: TheOnlyCoolTim</title>
		<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software#787381</link>	
		<description>I don&apos;t know any program to automatically handle it, but it shouldn&apos;t be too bad. Your sound data is digital samples, meaning it exists as a series of numbers each describing the voltage of the signal at a single instant. Each number is called a &quot;sample&quot;&lt;br&gt;
&lt;br&gt;
First is the problem of chunking the data into slices. You should be able to see the bit time easily (minimum time a signal must stay at one level without changing), and just manually pick the first transition as the start point for cutting the data up. Maybe graphically examine the rest of the signal with the chunks displayed to see that it lines up throughout.&lt;br&gt;
&lt;br&gt;
Then your program (or MATLAB script, if you&apos;ve access to that) decides if each chunk is a one or zero. Depending on how clean your signal is, you might be able to just look at the maximum absolute value of all the samples, and compare to a threshold x. If &amp;gt;x, the bit is a 1, if &amp;lt;x, the bit is a 0. That may not work, so you might go on to try something called the Mean-Square value- square each sample&apos;s value, take the average over the entire bit time, and compare that value to a threshold. Keep in mind that the presence of a signal could mean either a 1 or a 0, so flip all the bits if you get gibberish.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2006:site.52122-787381</guid>
		<pubDate>Thu, 30 Nov 2006 23:55:41 -0800</pubDate>
		<dc:creator>TheOnlyCoolTim</dc:creator>
	</item><item>
		<title>By: ptm</title>
		<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software#787386</link>	
		<description>You could try this &lt;a href=&quot;http://www.topshareware.com/Decoder-Suite-download-9814.htm&quot;&gt;binary decoder&lt;/a&gt;.  In reality you have a signal which looks like &lt;a href=&quot;http://en.wikipedia.org/wiki/Rs232&quot;&gt;RS232&lt;/a&gt; or equivalent.  There are many pieces of software available to read and interpret that form of data, determine which protocal was used.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2006:site.52122-787386</guid>
		<pubDate>Fri, 01 Dec 2006 00:09:50 -0800</pubDate>
		<dc:creator>ptm</dc:creator>
	</item><item>
		<title>By: rom1</title>
		<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software#787402</link>	
		<description>You could certainly do it with &lt;a href=&quot;http://www.mathworks.com&quot;&gt;MATLAB&lt;/a&gt;, but it&apos;s expensive.&lt;br&gt;
&lt;a href=&quot;http://www.gnu.org/software/octave&quot;&gt;Octave&lt;/a&gt; is a free alternative.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2006:site.52122-787402</guid>
		<pubDate>Fri, 01 Dec 2006 00:39:12 -0800</pubDate>
		<dc:creator>rom1</dc:creator>
	</item><item>
		<title>By: effugas</title>
		<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software#787413</link>	
		<description>Yeah, go ahead and pick up the Python code thats been put to glue together components of GNU Radio.  Its the closest to what you&apos;re looking for.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2006:site.52122-787413</guid>
		<pubDate>Fri, 01 Dec 2006 01:02:39 -0800</pubDate>
		<dc:creator>effugas</dc:creator>
	</item><item>
		<title>By: blenderfish</title>
		<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software#787420</link>	
		<description>&lt;a href=&quot;http://www.cse.dmu.ac.uk/~mward/martin/software/tape-read&quot;&gt; This perl program&lt;/a&gt; does a similar task, but for a different modulation scheme (&lt;a href=&quot;http://en.wikipedia.org/wiki/Audio_frequency-shift_keying&quot;&gt;frequency shift keying&lt;/a&gt;.) I&apos;d bet it could probably be pretty readily adapted (i.e., from detecting transitions between high frequency and low frequency to detecting transitions between some frequency and no frequency.)</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2006:site.52122-787420</guid>
		<pubDate>Fri, 01 Dec 2006 01:35:58 -0800</pubDate>
		<dc:creator>blenderfish</dc:creator>
	</item><item>
		<title>By: TheOnlyCoolTim</title>
		<link>http://ask.metafilter.com/52122/Simple-ASK-demodulation-in-software#787731</link>	
		<description>&lt;em&gt;In reality you have a signal which looks like RS232 or equivalent.&lt;/em&gt;&lt;br&gt;
&lt;br&gt;
I don&apos;t think so. RS232 signals aren&apos;t modulated - they have either a high or low voltage level. This is a modulated signal - it&apos;s a sine wave, with two levels of amplitude, in this case one level being zero.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2006:site.52122-787731</guid>
		<pubDate>Fri, 01 Dec 2006 10:21:21 -0800</pubDate>
		<dc:creator>TheOnlyCoolTim</dc:creator>
	</item>
	</channel>
</rss>
