<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<tt>The nice thing about an IQ stream is that it's already a complex
(analytic) function. When you have only a single stream of
samples,</tt> like right out of an ADC, then you might need the
Hilbert transform.<br>
<br>
Usually, at least when digitizing the RF from an antenna, there are
thousands of signals. You'll want to be selective. Apply a
band-pass filter, and do a digital down-conversion by multiplying by
sin & cos of a digital LO. This brings the selected signal down
to baseband. Since the bandwidth has been limited by the filter,
you have many more samples than you need, so you can decimate, just
tossing out all but every Nth sample. At this point you might have
an audio signal you can listen to.<br>
<br>
Dave<br>
WA8YWQ<br>
<br>
On 6/22/2012 7:24 PM, Erik Anderson wrote:
<blockquote
cite="mid:CAAeZAZ5EdxELJB_V+8vPsQHcak3V2+dQ1q4WTdfzjqVEdTt6bg@mail.gmail.com"
type="cite">
<pre wrap="">***** High Performance Software Defined Radio Discussion List *****
</pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
I think I've reached the point in my little
programming exercise where I'm getting a really fast IQ stream
flying at me that likely contains interesting radio data. So now
I'm trying to figure out what to do with it. And of course I'm
doing the stupid thing and trying to wade out and figure things
out on my own and realizing that this isn't as easy as calling up
your local FFT library and throwing everything at it to fix for
you.
<div>
<br>
</div>
<div>I'm still learning all the terms here and not quite ready to
read the math yet, would like someone more intelligent than
me (I'm sure this reflector has plenty) to say whether I'm going
in the right direction with this. Goal: transform an IQ stream
into an audio stream.</div>
<div><br>
</div>
<div>(*) Apply a Hilbert transform, selecting either USB or LSB</div>
<div>- every example describes passing Hilbert a real stream ("use
it to convert your signal from real to complex"), I'm thinking
for my use case it can take a complex stream as well. In the
end I want an analytical stream (i.e. discard one sideband).</div>
<div>- comes in two approximations: convolution and FIR. I
haven't found documentation on convolution yet (still reading).
Different workarounds/limitations for each ("<span
style="background-color:rgb(255,255,255);font-family:sans-serif;font-size:10px;line-height:14px">Failure
to appreciate or correctly apply these concepts is probably
one of the most common mistakes made by non-experts")</span>.
Filter may need to keep history and/or delay the signal
(hopefully not by half a sample).</div>
<div>- if using FIR, half the multiplications required by the
implementation may drop out with the following step.</div>
<div><br>
</div>
<div>(*) Forget the imaginary (quadrature) stream and force real</div>
<div>- Assuming the signal is either analytic or mirrored, this is
a safe operation.</div>
<div>- Causes an immediate fold over the zero frequency line.</div>
<div>- Do I need to follow this by multiplying the output by 2?
Does the fold cause the power to be cut in half? It feels like
it wouldn't if the initial signal is real, so this is likely
"no".</div>
<div><br>
</div>
<div>(*) Apply a low-pass audio filter</div>
<div>- Doing this as a real stream uses less math, is there a
benefit to doing this earlier when the stream is complex?</div>
<div><br>
</div>
<div>(*) Decimate</div>
<div>- I'm guessing this causes folding at the nyquist boundary,
so don't decimate down to less than twice the cutoff frequency
of the low-pass filter you applied.</div>
<div><br>
</div>
<div>Was hoping this month to get something working by field day.
Don't think that's gonna happen anymore (lol), but this is
still fun.</div>
<div><br>
</div>
<div>73s, Erik KM2G</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
HPSDR Discussion List
To post msg: <a class="moz-txt-link-abbreviated" href="mailto:hpsdr@openhpsdr.org">hpsdr@openhpsdr.org</a>
Subscription help: <a class="moz-txt-link-freetext" href="http://lists.openhpsdr.org/listinfo.cgi/hpsdr-openhpsdr.org">http://lists.openhpsdr.org/listinfo.cgi/hpsdr-openhpsdr.org</a>
HPSDR web page: <a class="moz-txt-link-freetext" href="http://openhpsdr.org">http://openhpsdr.org</a>
Archives: <a class="moz-txt-link-freetext" href="http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/">http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/</a></pre>
</blockquote>
</body>
</html>