DSPRelated.com
Forums

fs/8 quadrature downconversion and upconversion

Started by chivak June 11, 2008
 Hi all,

  I'm a new member to this group.I have seen some posting on fs/4 
   downconversion.

 I'm interested to know if there's a  way of implementing an fs/8
translation without having to use look up tables or multipliers.

 This is basically for an NCO application.

 Any suggestion is appreciated.

 Thanx,
  Chivak 


On Jun 11, 10:54 pm, "chivak" <cd_pra...@hotmail.com> wrote:
> Hi all, > > I'm a new member to this group.I have seen some posting on fs/4 > downconversion. > > I'm interested to know if there's a way of implementing an fs/8 > translation without having to use look up tables or multipliers.
I'm prepared to be proven wrong, but my guess would be no. fs/4 is easy because all the phasor components are +/-1. Not so for fs/8, as sqrt(2) is required. However, I suppose you could downsample by 2, then downconvert by fs/ 4, and then upsample by 2... -- Oli
>On Jun 11, 10:54 pm, "chivak" <cd_pra...@hotmail.com> wrote: >> Hi all, >> >> I'm a new member to this group.I have seen some posting on fs/4 >> downconversion. >> >> I'm interested to know if there's a way of implementing an fs/8 >> translation without having to use look up tables or multipliers. > > >I'm prepared to be proven wrong, but my guess would be no. fs/4 is >easy because all the phasor components are +/-1. Not so for fs/8, as >sqrt(2) is required. > > >However, I suppose you could downsample by 2, then downconvert by fs/ >4, and then upsample by 2... > >-- >Oli >
Oli, I may have accidentally sent the message to your e-mail.Sorry. I am not sure if we need the upsample by 2 at the end as down sample by 2 is 1/2 and another fs/4 = fs/8. In my opinion, it may not be efficient to build this in HW as we would need an anti-aliasing filter when we down sample by 2. I was actually looking more in term of approximating 1/SQRT(2) value if possible.
chivak wrote:
>> On Jun 11, 10:54 pm, "chivak" <cd_pra...@hotmail.com> wrote: >>> Hi all, >>> >>> I'm a new member to this group.I have seen some posting on fs/4 >>> downconversion. >>> >>> I'm interested to know if there's a way of implementing an fs/8 >>> translation without having to use look up tables or multipliers. >> >> I'm prepared to be proven wrong, but my guess would be no. fs/4 is >> easy because all the phasor components are +/-1. Not so for fs/8, as >> sqrt(2) is required. >> >> >> However, I suppose you could downsample by 2, then downconvert by fs/ >> 4, and then upsample by 2... >> >> -- >> Oli >> > > Oli, > > I may have accidentally sent the message to your e-mail.Sorry. > > I am not sure if we need the upsample by 2 at the end as down sample by 2 > is 1/2 and another fs/4 = fs/8. > > In my opinion, it may not be efficient to build this in HW as we would > need an anti-aliasing filter when we down sample by 2. > > I was actually looking more in term of approximating 1/SQRT(2) value if > possible.
Why not give it to the compiler as a constant? the inefficiency comes from needing to multiply. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On Jun 12, 1:47 am, "chivak" <cd_pra...@hotmail.com> wrote:
> >On Jun 11, 10:54 pm, "chivak" <cd_pra...@hotmail.com> wrote: > >> Hi all, > > >> I'm a new member to this group.I have seen some posting on fs/4 > >> downconversion. > > >> I'm interested to know if there's a way of implementing an fs/8 > >> translation without having to use look up tables or multipliers. > > >I'm prepared to be proven wrong, but my guess would be no. fs/4 is > >easy because all the phasor components are +/-1. Not so for fs/8, as > >sqrt(2) is required. > > >However, I suppose you could downsample by 2, then downconvert by fs/ > >4, and then upsample by 2... > > > I am not sure if we need the upsample by 2 at the end as down sample by 2 > is 1/2 and another fs/4 = fs/8. > > In my opinion, it may not be efficient to build this in HW as we would > need an anti-aliasing filter when we down sample by 2.
I mentioned the sample-rate change method as a bit of a joke; sorry! For exactly the reasons you've mentioned, this probably wouldn't be of any use. -- Oli
>chivak wrote: >>> On Jun 11, 10:54 pm, "chivak" <cd_pra...@hotmail.com> wrote: >>>> Hi all, >>>> >>>> I'm a new member to this group.I have seen some posting on fs/4 >>>> downconversion. >>>> >>>> I'm interested to know if there's a way of implementing an fs/8 >>>> translation without having to use look up tables or multipliers. >>> >>> I'm prepared to be proven wrong, but my guess would be no. fs/4 is >>> easy because all the phasor components are +/-1. Not so for fs/8, as >>> sqrt(2) is required. >>> >>> >>> However, I suppose you could downsample by 2, then downconvert by fs/ >>> 4, and then upsample by 2... >>> >>> -- >>> Oli >>> >> >> Oli, >> >> I may have accidentally sent the message to your e-mail.Sorry. >> >> I am not sure if we need the upsample by 2 at the end as down sample
by 2
>> is 1/2 and another fs/4 = fs/8. >> >> In my opinion, it may not be efficient to build this in HW as we
would
>> need an anti-aliasing filter when we down sample by 2. >> >> I was actually looking more in term of approximating 1/SQRT(2) value
if
>> possible. > >Why not give it to the compiler as a constant? the inefficiency comes >from needing to multiply. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; >
I wanted to implement this in an FPGA.
"chivak" <cd_prasad@hotmail.com> writes:

>>> I was actually looking more in term of approximating 1/SQRT(2) value > if >>> possible.
and
> I wanted to implement this in an FPGA.
How much precision do you need from your 1/sqrt(2) representation? You can get 13 bits with 5 adders, 16 bits with 6 adders. Cheers, Martin -- martin.j.thompson@trw.com TRW Conekt - Consultancy in Engineering, Knowledge and Technology http://www.conekt.net/electronics.html
>"chivak" <cd_prasad@hotmail.com> writes: > >>>> I was actually looking more in term of approximating 1/SQRT(2)
value
>> if >>>> possible. >and >> I wanted to implement this in an FPGA. > >How much precision do you need from your 1/sqrt(2) representation? >You can get 13 bits with 5 adders, 16 bits with 6 adders. > >Cheers, >Martin > >-- >martin.j.thompson@trw.com >TRW Conekt - Consultancy in Engineering, Knowledge and Technology >http://www.conekt.net/electronics.html >
Since i want to use this as an NCO used for upconversion, I'll probably do a trial simulation to see how much the precision affects the upconversion Center frequency. Thanx for the info. -Chivak
"chivak" <cd_prasad@hotmail.com> writes:

>>"chivak" <cd_prasad@hotmail.com> writes: >> >>>>> I was actually looking more in term of approximating 1/SQRT(2) > value >>> if >>>>> possible. >>and >>> I wanted to implement this in an FPGA. >> >>How much precision do you need from your 1/sqrt(2) representation? >>You can get 13 bits with 5 adders, 16 bits with 6 adders. >> >>Cheers, >>Martin >> >>-- >>martin.j.thompson@trw.com >>TRW Conekt - Consultancy in Engineering, Knowledge and Technology >>http://www.conekt.net/electronics.html >> > > Since i want to use this as an NCO used for upconversion, I'll probably do > a trial simulation to see how much the precision affects the upconversion > Center frequency. > > Thanx for the info. >
You're welcome! I should point out that I now realise I was off-by one. There's only 4 adders needed for 13 bits and 5 for 16 bits - I was counting the inputs, not the adders required! Cheers, Martin -- martin.j.thompson@trw.com TRW Conekt - Consultancy in Engineering, Knowledge and Technology http://www.conekt.net/electronics.html
On Fri, 13 Jun 2008 15:33:53 +0100, Martin Thompson
<martin.j.thompson@trw.com> wrote:

   (snipped by Lyons)
> >You're welcome! I should point out that I now realise I was off-by >one. There's only 4 adders needed for 13 bits and 5 for 16 bits - I >was counting the inputs, not the adders required! > >Cheers, >Martin
Hello Martin, Forgive me for being such a blockhead, but will you expand a little on your "4-adder method"? Are you adding 'right-shifted' versions of a binary number to approximate a multiplication? Is one of your operations a subtraction? How did you arrive at your 13-bit accuracy value? etc. Thanks, [-Rick-]