And the resampler did the trick.  Carriers are now nicely aligned.  Thanks 
again!

On Nov 29, 2017, 4:48 PM, at 4:48 PM, John Ackermann N8UR <j...@febo.com> wrote:
>Hi Marcus --
>
>First, thanks for catching the typo in the channel map.  There was no
>plan to skip any channels; the goal is to get each channel in frequency
>
>order (out0 = 540 kHz; out116 = 1700 kHz).
>
>I did an experiment using a signal generator feeding the Red Pitaya
>receiver and testing various channels.  I started at the center
>channel,
>1120 kHz, and found there was zero offset from nominal.  I then went 1,
>
>2, and 3 channels both lower and higher and came up with this map:
>
>1090   +2.05 kHz
>1100   +1.37 kHz
>1110   +0.68 kHz
>1120    0.00 kHz
>1130   -0.68 kHz
>1140   -1.37 kHz
>1150   -2.05 kHz
>
>Now, the sample rate coming out of the channelizer (hardware sample
>rate
>of 1.25 msps divided by 117) is ~10.683 ksps.  Gee, that 683 is pretty
>close to the per-channel offset.
>
>I didn't test further, but I strongly suspect this offset of ~680
>Hz/channel continues in both directions, so that the signal has moved
>far from the expected point as you get further away.
>
>So, I think this tells me that the sample rate going into the PFB,
>divided by the number of channels, needs to match the channel spacing.
>That means a rational resampler going into the PFB to change 1.25 msps
>to 1.17 msps.
>
>I don't think I've ever read anything before that the sample_in rate
>has
>to equal (channel_num x channel_spacing).  It makes perfect sense when
>you think about it, though.  Your reference to the "channel raster" was
>
>enough to make the light bulb turn on for me, and thanks very much for
>that!
>
>Now to test with the resampler...  Thanks much for helping me work
>through this!
>
>John
>----
>On 11/29/2017 01:20 PM, Müller, Marcus (CEL) wrote:
>> Hi John,
>>
>> given the fact that the frequency shifting of the individual sub-
>> filters is actually done via a DFT implemented by an FFT, and that
>> should have negligible phase accumulation error for benign FFT length
>> (i.e. channel numbers, let's say <1e6), hm.
>>
>> First gut feeling, and easiest to check:
>>
>>>   The output channels seem to have an offset in the range > of 400
>to
>> 700 Hz versus the unchannelized input.
>>
>> Make double sure that (sampling rate going into the channelizer) /
>117
>> is actually exactly the raster you want.
>>
>> If I interpret your file correctly, there's 1.25 MHz going into the
>> channelizer, so channel raster is 1250 / 117 kHz = 10.684 kHz. Hope
>> that's right!
>>
>> What I could imagine are artifacts due to the non-perfect filter
>phase
>> linearity; but that would actually be a pretty intense speculation;
>> unless we're leaving the areas where our floating point numbers are
>> accurate enough, there shouldn't be non-linear (i.e. frequency-
>> shifting) behaviour.
>>
>> I just threw together this:
>>
>> from gnuradio.filter import firdes
>>
>> file_sample_rate = 2.5e6
>> decimation = 2
>>
>> pfb_taps = firdes.low_pass(2.0,
>file_sample_rate/decimation,10000,5000,
>> firdes.WIN_HAMMING, 6.76)
>>
>> (pretty much lifted straight from your GRC)
>>
>> Inspecting pfb_taps yielded a length of 603 taps, which we'll "evenly
>> as possible" have to distribute across the channels (117 of which
>> exist, as your channelizer map has length 116, but is missing the
>56).
>>
>> You could build a simple "unit test": Use a Vector source that pushes
>>
>> [1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 4 … 0 0 0 0 0 0 0
>117
>> 0 0 0 0 0 0 0 ]
>>
>> through a length=117*8 IFFT, and push the result (after a vector-to-
>> stream) through your channelizer. You should see single tones in all
>> your channels. (The different amplitudes might help telling them
>> apart). Do they end up in the center of your bins?
>>
>> Best regards,
>> Marcus
>>
>> On Wed, 2017-11-29 at 10:34 -0500, John Ackermann N8UR wrote:
>>> I'm building a ridiculous flowgraph that breaks the AM broadcast
>band
>>> (540 - 1700 kHz in the U.S.) into 117 10 kHz wide channels and
>measures
>>> the energy in each.  The thing is working but I see a frequency
>offset
>>> in the output channels that is not present in the data before
>>> channelizing.  The output channels seem to have an offset in the
>range
>>> of 400 to 700 Hz versus the unchannelized input.
>>>
>>> The signal chain is:
>>>
>>> 2.5 msps recording centered at 1.4e6 Hz -> xlating filter,
>decimation 2,
>>> output centered at 1.12e6 -> PFB channelizer with 117 channels,
>yielding
>>> a channel rate of 10,683.760683...... samples per second.
>>>
>>> Looking at the spectrum at the output of the xlating filter, the
>carrier
>>> frequencies are correct.  Looking at the output of a channel, the
>>> carriers are offset by several hundred Hertz, always high.  (Given
>the
>>> absolute frequency is in the 1 MHz range, these offsets are parts in
>>> 1e3, a pretty large amount.)
>>>
>>> I wonder if the large number of PFB channels is causing a rounding
>error
>>> that results in these frequency offsets.  Or is there something else
>>> going on?
>>>
>>> I can probably fudge the xlating filter frequency a bit to move the
>>> carriers closer to nominal, but would like to understand what's
>happening.
>>>
>>> I'm attaching the (absurdly huge) .grc file.  The canvas is 4192
>pixels
>>> tall, so the flowgraph is smaller than the screenshot. :-)
>>> _______________________________________________
>>> Discuss-gnuradio mailing list
>>> Discuss-gnuradio@gnu.org
>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>_______________________________________________
>Discuss-gnuradio mailing list
>Discuss-gnuradio@gnu.org
>https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to