Hi Al,
On 27.11.23 06:44, Al Grant wrote:
Thanks for the detailed reply Marcus.
you're most welcome!
*M=800*
Where is M=800 in my rational resampler? I see looking at the link to the
picture I posted I had Decimation=100 (is M shorthand for decimation?)
https://imgur.com/a/B2HqCKc shows "Rational Resampler" with "Decimation: 800",
not 100.
*PICTURE*
To your picture:
[image: image.png]
But my sample only has a repeating tone on 1 frequency, but in the picture
above with frequency on the x axis (and power on the y?), and 3 peaks I
have circled in red, at first glance I would have said this shows a signal
on the 3 different frequencies?
No, it doesn't have 3 different frequencies! You missed my point there: this is *one*
signal. The frequency axis extends to - infinity and to + infinity; there's infinitely
many (light green) repetitions, not 3, in a discrete-time signal. (I just couldn't draw
infinitely wide pictures!)
We just conveniently decide that, to look at the signal, it suffices to look at the
baseband one repetition, the dark green one.
It does suffice to describe all the information in the signal! But: it breaks down when
you do things like decimating or interpolating, because suddenly you get the effects of
these repetitions you "just tried very hard to forget about" :D
I am assuming you didn't mean what I have written above, but I
can't reconcile the picture with the concept you are trying to convey.
Hope the above helps!
*FILTER TYPE*
I see you have suggested a series of resampling filters, instead of 1 big
one, is that for computing efficiency or because it wont work the way I
expect the way I have done it?
What is the difference between just a straight decimating block and
rational resampler?
If you choose to use a filter that cuts out the lower 1/M of the original bandwidth, it's
the same. (assuming the rational resampler is set to "Interpolation: 1")
*BASEBAND*
Since my original post I have a slightly better understanding of a baseband
file. Correct me if I get it wrong, but for example a RTL-SDR can capture
baseband at 2.4Mhz (i.e. spectral width).
Sounds right!
To my example I am interested in
160.100Mhz to 160.200 with 100 channels spaced at 160.100, 160.110Mhz etc
etc.
So, a bandwidth of 100 · 0.01 MHz, if I get you correctly, or 1 MHz. Add a bit "left and
right", because the analog filters aren't perfect, so maybe 1.2 MHz, just because we can
trivially afford to be so generous.
So in one baseband file I can capture all 100 channels. Cool.
Exactly!
For the moment I just want to focus on 1 disaster (channel) at a time, and
am interested in getting the file into Java and doing the processing there.
And you seem to be doing the right thing in principle (I didn't look at the numbers being
sensible here): you're selecting a single channel, say "OK, because that channel is only
1/M of the overall bandwidth, I decimate by M".
The thing I'm not understanding about your flow graph is then why the following low-pass
filter at all?
(it's also incorrectly parameterized, as far as I can tell, because your input sampling
rate wasn't 32 kHz (as specified in the low-pass filter) times 800 (=25.6 MHz) (or 100,
assuming the 800 was a typo, so 100·32 kHz = 3.2 MHz), but probably a bandwidth that your
RTL dongle actually supports.)
Best regards,
Marcus