+ Post New Thread
Results 1 to 5 of 5
  1. #1
    Junior Member level 1
    Points: 854, Level: 6

    Join Date
    Dec 2009
    Posts
    17
    Helped
    0 / 0
    Points
    854
    Level
    6

    DSP: cascaded integrated comb filters

    I'm trying to work out the output states for each stage of a CIC, and I'm a bit confused.

    If an integrator looks like this:



    And it's output is described as

    Code:
     S1[n] = S1[n-1] + X1[n]
    If you cascaded two of them, the output of the second stage:

    Code:
     S2[n] = S2[n-1] + X2[n]
    substituting

    Code:
     S2[n] = S2[n-1] + S1[n-1] + X1[n]
    Therefore, the addition is combinatorial, and the X1 input should ripple between stages.

    The implementation I am analyzing does not do that, and has a register for each accumulator stage, therefore the input does not propagate. Is this correct? What am I missing?

    •   AltAdvertisment

        
       

  2. #2
    Super Moderator
    Points: 254,886, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    44,416
    Helped
    13522 / 13522
    Points
    254,886
    Level
    100

    DSP: cascaded integrated comb filters

    Usually, you'll want to utilize the delay register to achieve pipeline action and connect the next stage at it's output rather than at the adder directly.

    A separate pipeline register may be used, if the CIC integrator clock is as divided system clock.



    •   AltAdvertisment

        
       

  3. #3
    Member level 3
    Points: 1,232, Level: 7

    Join Date
    Feb 2009
    Posts
    65
    Helped
    10 / 10
    Points
    1,232
    Level
    7

    Re: DSP: cascaded integrated comb filters

    Quote Originally Posted by casey480
    I'm trying to work out the output states for each stage of a CIC, and I'm a bit confused.

    If an integrator looks like this:



    And it's output is described as

    Code:
     S1[n] = S1[n-1] + X1[n]
    If you cascaded two of them, the output of the second stage:

    Code:
     S2[n] = S2[n-1] + X2[n]
    substituting

    Code:
     S2[n] = S2[n-1] + S1[n-1] + X1[n]
    Therefore, the addition is combinatorial, and the X1 input should ripple between stages.

    The implementation I am analyzing does not do that, and has a register for each accumulator stage, therefore the input does not propagate. Is this correct? What am I missing?
    the final equation is wrong!
    Code:
    S1[n] = S1[n-1] + X1[n]
    S1[n-1] = S1[n-2] + X1[n-1]
    S1[n] = S1[n-1] + X1[n] = S1[n-2] + X1[n-1] + X[n]



    •   AltAdvertisment

        
       

  4. #4
    Super Moderator
    Points: 254,886, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    44,416
    Helped
    13522 / 13522
    Points
    254,886
    Level
    100

    Re: DSP: cascaded integrated comb filters

    the final equation is wrong
    Yes, you can't simply "substitute" a recursive expression. I also don't understand your calculation however.



  5. #5
    Member level 3
    Points: 1,232, Level: 7

    Join Date
    Feb 2009
    Posts
    65
    Helped
    10 / 10
    Points
    1,232
    Level
    7

    Re: DSP: cascaded integrated comb filters

    Quote Originally Posted by FvM
    the final equation is wrong
    Yes, you can't simply "substitute" a recursive expression. I also don't understand your calculation however.
    en, I correct my expression, the equation is not wrong, but makes more confuse of this. so, I suggest to use transfer function to solve it.

    Code:
    S1[n] = S1[n-1] + X1[n] = S1[n] * (z ^ -1) + X1[n];
    
    S1[n](1 - (z ^ -1)) = X1[n]
    
    H(z) = S1[n]/X1[n] = 1/(1 - (z ^ -1));
    two cascade

    Code:
    F(z) = H(z) * H(z) = 1/(1 - 2 * (z ^ -1) + (z ^ -2)) = S2[n]/X1[n]
    finally we can get

    Code:
    X1[n] = S2[n] * (1 - 2 * (z ^ -1) + (z ^ -2)) = S2[n] - 2 * S2[n-1] + S2[n-2];
    then

    Code:
    S2[n] =  2 * S2[n-1] - S2[n-2] + X1[n];



--[[ ]]--