Re: [casper] FFT biplex_core block

2018-02-23 Thread Jack Hickish
So, I'm sure everyone has been eagerly awaiting the results of
simulations

Dave's answer is indeed correct.

For a 16-point biplex_core FFT, with pol1 and pol2 being independent
time-streams, presented in normal time order (i.e., with consecutive time
samples) and output channels defined such that:
chan 0 is DC
chan 7 is the max positive frequency
chan 8 is the negative frequency furthest from DC
chan 15 is the negative frequency closest to DC

The output channel order from the biplex_core is (immediately following the
sync):
out1 = FFT(pol1)[0, 4, 2, 6, 1, 5, 3, 7] followed by FFT(pol2) [0, 4, 2, 6,
1, 5, 3, 7]
out2 = FFT(pol1)[8, 12, 10, 14, 9, 13, 11, 15] followed by FFT(pol2)[8, 12,
10, 14, 9, 13, 11, 15].

These, when bit-reversed, result in:
bit_reverse(out1) = FFT(pol1)[0, 1, 2, 3, 4, 5, 6, 7] followed by FFT(pol2)
[0, 1, 2, 3, 4, 5, 6, 7]
bit_reverse(out2) = FFT(pol1)[8, 9, 10, 11, 12, 13, 14, 15] followed by
FFT(pol2)[8, 9, 10, 11, 12, 13, 14, 15]

How exciting!

Jack

On Wed, 21 Feb 2018 at 22:50 David MacMahon  wrote:

> Hi, Jack,
>
> I haven’t used the biplex_core block in a while, but I believe the inputs,
> pol1 and pol2, are two independent complex input signals. The outputs, out1
> and out2, first output the frequency channels for input pol1, with the low
> half of the band being output in bit reversed order on out1 and the high
> half of the band being output on out2 in bit reversed order. After
> outputting the channels for pol1, out1 and out2 output the channels for
> pol2 in a similar order.
>
> For a 16 channel fft, I think out1 will have channels: pol1[0 4 2 6 1 5 3
> 7] followed by pol2[0 4 2 6 1 5 3 7]. Out2 will have the same output order
> but 8 (ie N/2) channels higher.  I hope that makes sense, but if not I can
> make a better diagram for you tomorrow.
>
> Of course this should be verified with simulation, but I think it’s a good
> starting point. BTW, this assumes the inputs are presented in natural tone
> order at both inputs with the t=0 samples of pol1 and pol2 being presented
> at the respective inputs simultaneously.
>
> Dave
>
> On Feb 21, 2018, at 18:04, Jack Hickish  wrote:
>
> Howdy,
>
> Partly motivated by a search for RAM savings, and partly for fun, I'm
> looking through the innards of the fft_biplex_real_4x block. Can someone
> tell me, using short words and/or pictures, what the the relationship
> between the inputs (pol1, pol2) and the outputs (out1, out2) on the
> biplex_core block is.
>
> I'm in the midst of reverse engineering the block by simulation / staring
> at the unscrambler / reading about fft biplex implementations, but surely
> someone must(!) know what this block actually does (or claims to do)?
>
> Yours, optimistically,
>
> Jack
>
> --
>
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.


Re: [casper] FFT biplex_core block

2018-02-22 Thread David MacMahon
I think we need to takes bets on the even/odd vs high/low division of channels 
between out1 and out2... :)

> On Feb 21, 2018, at 23:33, Jack Hickish  wrote:
> 
> Well, if Dave, Glenn and Aaron all agree, then I'm sold.
> 
> Thanks.
> 
>> On Wed, Feb 21, 2018, 10:50 PM David MacMahon  wrote:
>> Hi, Jack,
>> 
>> I haven’t used the biplex_core block in a while, but I believe the inputs, 
>> pol1 and pol2, are two independent complex input signals. The outputs, out1 
>> and out2, first output the frequency channels for input pol1, with the low 
>> half of the band being output in bit reversed order on out1 and the high 
>> half of the band being output on out2 in bit reversed order. After 
>> outputting the channels for pol1, out1 and out2 output the channels for pol2 
>> in a similar order. 
>> 
>> For a 16 channel fft, I think out1 will have channels: pol1[0 4 2 6 1 5 3 7] 
>> followed by pol2[0 4 2 6 1 5 3 7]. Out2 will have the same output order but 
>> 8 (ie N/2) channels higher.  I hope that makes sense, but if not I can make 
>> a better diagram for you tomorrow. 
>> 
>> Of course this should be verified with simulation, but I think it’s a good 
>> starting point. BTW, this assumes the inputs are presented in natural tone 
>> order at both inputs with the t=0 samples of pol1 and pol2 being presented 
>> at the respective inputs simultaneously. 
>> 
>> Dave
>> 
>>> On Feb 21, 2018, at 18:04, Jack Hickish  wrote:
>>> 
>> 
>>> Howdy,
>>> 
>>> Partly motivated by a search for RAM savings, and partly for fun, I'm 
>>> looking through the innards of the fft_biplex_real_4x block. Can someone 
>>> tell me, using short words and/or pictures, what the the relationship 
>>> between the inputs (pol1, pol2) and the outputs (out1, out2) on the 
>>> biplex_core block is.
>>> 
>>> I'm in the midst of reverse engineering the block by simulation / staring 
>>> at the unscrambler / reading about fft biplex implementations, but surely 
>>> someone must(!) know what this block actually does (or claims to do)?
>>> 
>>> Yours, optimistically,
>>> 
>>> Jack
>> 
>>> -- 
>> 
>>> You received this message because you are subscribed to the Google Groups 
>>> "casper@lists.berkeley.edu" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to casper+unsubscr...@lists.berkeley.edu.
>>> To post to this group, send email to casper@lists.berkeley.edu.
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "casper@lists.berkeley.edu" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to casper+unsubscr...@lists.berkeley.edu.
>> To post to this group, send email to casper@lists.berkeley.edu.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.


Re: [casper] FFT biplex_core block

2018-02-21 Thread Jack Hickish
Well, if Dave, Glenn and Aaron all agree, then I'm sold.

Thanks.

On Wed, Feb 21, 2018, 10:50 PM David MacMahon  wrote:

> Hi, Jack,
>
> I haven’t used the biplex_core block in a while, but I believe the inputs,
> pol1 and pol2, are two independent complex input signals. The outputs, out1
> and out2, first output the frequency channels for input pol1, with the low
> half of the band being output in bit reversed order on out1 and the high
> half of the band being output on out2 in bit reversed order. After
> outputting the channels for pol1, out1 and out2 output the channels for
> pol2 in a similar order.
>
> For a 16 channel fft, I think out1 will have channels: pol1[0 4 2 6 1 5 3
> 7] followed by pol2[0 4 2 6 1 5 3 7]. Out2 will have the same output order
> but 8 (ie N/2) channels higher.  I hope that makes sense, but if not I can
> make a better diagram for you tomorrow.
>
> Of course this should be verified with simulation, but I think it’s a good
> starting point. BTW, this assumes the inputs are presented in natural tone
> order at both inputs with the t=0 samples of pol1 and pol2 being presented
> at the respective inputs simultaneously.
>
> Dave
>
> On Feb 21, 2018, at 18:04, Jack Hickish  wrote:
>
> Howdy,
>
> Partly motivated by a search for RAM savings, and partly for fun, I'm
> looking through the innards of the fft_biplex_real_4x block. Can someone
> tell me, using short words and/or pictures, what the the relationship
> between the inputs (pol1, pol2) and the outputs (out1, out2) on the
> biplex_core block is.
>
> I'm in the midst of reverse engineering the block by simulation / staring
> at the unscrambler / reading about fft biplex implementations, but surely
> someone must(!) know what this block actually does (or claims to do)?
>
> Yours, optimistically,
>
> Jack
>
> --
>
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.


Re: [casper] FFT biplex_core block

2018-02-21 Thread David MacMahon
Hi, Jack,

I haven’t used the biplex_core block in a while, but I believe the inputs, pol1 
and pol2, are two independent complex input signals. The outputs, out1 and 
out2, first output the frequency channels for input pol1, with the low half of 
the band being output in bit reversed order on out1 and the high half of the 
band being output on out2 in bit reversed order. After outputting the channels 
for pol1, out1 and out2 output the channels for pol2 in a similar order. 

For a 16 channel fft, I think out1 will have channels: pol1[0 4 2 6 1 5 3 7] 
followed by pol2[0 4 2 6 1 5 3 7]. Out2 will have the same output order but 8 
(ie N/2) channels higher.  I hope that makes sense, but if not I can make a 
better diagram for you tomorrow. 

Of course this should be verified with simulation, but I think it’s a good 
starting point. BTW, this assumes the inputs are presented in natural tone 
order at both inputs with the t=0 samples of pol1 and pol2 being presented at 
the respective inputs simultaneously. 

Dave

> On Feb 21, 2018, at 18:04, Jack Hickish  wrote:
> 
> Howdy,
> 
> Partly motivated by a search for RAM savings, and partly for fun, I'm looking 
> through the innards of the fft_biplex_real_4x block. Can someone tell me, 
> using short words and/or pictures, what the the relationship between the 
> inputs (pol1, pol2) and the outputs (out1, out2) on the biplex_core block is.
> 
> I'm in the midst of reverse engineering the block by simulation / staring at 
> the unscrambler / reading about fft biplex implementations, but surely 
> someone must(!) know what this block actually does (or claims to do)?
> 
> Yours, optimistically,
> 
> Jack
> -- 
> You received this message because you are subscribed to the Google Groups 
> "casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.


Re: [casper] FFT biplex_core block

2018-02-21 Thread Jack Hickish
Thanks Glenn,

Now I get to mess with weird CASPER grey blocks *and* buy things from
Amazon. It's such a joy when my two favorite pastimes come together :)

J

On Wed, Feb 21, 2018, 9:32 PM G Jones  wrote:

> If I recall correctly, this book gives a very nice description of the
> biplex fft algorithm:
> https://www.amazon.com/Multirate-Digital-Signal-Processing-Crochiere/dp/0136051626
>
> I agree with Aaron's memory of the output ordering.
>
> Glenn
>
> On Feb 21, 2018 18:04, "Jack Hickish"  wrote:
>
>> Howdy,
>>
>> Partly motivated by a search for RAM savings, and partly for fun, I'm
>> looking through the innards of the fft_biplex_real_4x block. Can someone
>> tell me, using short words and/or pictures, what the the relationship
>> between the inputs (pol1, pol2) and the outputs (out1, out2) on the
>> biplex_core block is.
>>
>> I'm in the midst of reverse engineering the block by simulation / staring
>> at the unscrambler / reading about fft biplex implementations, but surely
>> someone must(!) know what this block actually does (or claims to do)?
>>
>> Yours, optimistically,
>>
>> Jack
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "casper@lists.berkeley.edu" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to casper+unsubscr...@lists.berkeley.edu.
>> To post to this group, send email to casper@lists.berkeley.edu.
>>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.


Re: [casper] FFT biplex_core block

2018-02-21 Thread Jack Hickish
Thanks Aaron,

That seems pretty plausible based on what the downstream logic appears to
be trying to do. Maybe.
If I can verify this, maybe I'll add a docstring...

Cheers
Jack



On Wed, Feb 21, 2018, 9:27 PM Aaron Parsons  wrote:

> My recollection is that Pol1 outputs come for the first N/2 clocks out
> both output ports, even channels on top (in bit reversed order) and odd on
> bottom (also bit reversed order).  Pol2 outputs follow for the next N/2
> clocks, same order.
>
> On Wed, Feb 21, 2018 at 6:04 PM Jack Hickish 
> wrote:
>
>> Howdy,
>>
>> Partly motivated by a search for RAM savings, and partly for fun, I'm
>> looking through the innards of the fft_biplex_real_4x block. Can someone
>> tell me, using short words and/or pictures, what the the relationship
>> between the inputs (pol1, pol2) and the outputs (out1, out2) on the
>> biplex_core block is.
>>
>> I'm in the midst of reverse engineering the block by simulation / staring
>> at the unscrambler / reading about fft biplex implementations, but surely
>> someone must(!) know what this block actually does (or claims to do)?
>>
>> Yours, optimistically,
>>
>> Jack
>>
>> --
>>
> You received this message because you are subscribed to the Google Groups "
>> casper@lists.berkeley.edu" group.
>>
> To unsubscribe from this group and stop receiving emails from it, send an
>> email to casper+unsubscr...@lists.berkeley.edu.
>> To post to this group, send email to casper@lists.berkeley.edu.
>>
> --
> Aaron Parsons
>
> 510-406-4322 (cell)
> Campbell Hall 425, UCB
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.


Re: [casper] FFT biplex_core block

2018-02-21 Thread G Jones
If I recall correctly, this book gives a very nice description of the
biplex fft algorithm:
https://www.amazon.com/Multirate-Digital-Signal-Processing-Crochiere/dp/0136051626

I agree with Aaron's memory of the output ordering.

Glenn

On Feb 21, 2018 18:04, "Jack Hickish"  wrote:

> Howdy,
>
> Partly motivated by a search for RAM savings, and partly for fun, I'm
> looking through the innards of the fft_biplex_real_4x block. Can someone
> tell me, using short words and/or pictures, what the the relationship
> between the inputs (pol1, pol2) and the outputs (out1, out2) on the
> biplex_core block is.
>
> I'm in the midst of reverse engineering the block by simulation / staring
> at the unscrambler / reading about fft biplex implementations, but surely
> someone must(!) know what this block actually does (or claims to do)?
>
> Yours, optimistically,
>
> Jack
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.


Re: [casper] FFT biplex_core block

2018-02-21 Thread Aaron Parsons
My recollection is that Pol1 outputs come for the first N/2 clocks out both
output ports, even channels on top (in bit reversed order) and odd on
bottom (also bit reversed order).  Pol2 outputs follow for the next N/2
clocks, same order.

On Wed, Feb 21, 2018 at 6:04 PM Jack Hickish  wrote:

> Howdy,
>
> Partly motivated by a search for RAM savings, and partly for fun, I'm
> looking through the innards of the fft_biplex_real_4x block. Can someone
> tell me, using short words and/or pictures, what the the relationship
> between the inputs (pol1, pol2) and the outputs (out1, out2) on the
> biplex_core block is.
>
> I'm in the midst of reverse engineering the block by simulation / staring
> at the unscrambler / reading about fft biplex implementations, but surely
> someone must(!) know what this block actually does (or claims to do)?
>
> Yours, optimistically,
>
> Jack
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To post to this group, send email to casper@lists.berkeley.edu.
>
-- 
Aaron Parsons

510-406-4322 (cell)
Campbell Hall 425, UCB

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To post to this group, send email to casper@lists.berkeley.edu.