This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

design digital filter

i am working arm mcp2300 with lpc2368 processor. i want to design a digital filter like a lowpass,high pass,notch filter.so give me some idea about digital filter design using lpc2368 and also give some example of filter

Parents
  • There are many types of digital filters. There are many programs to help you with your specific design.

    For example, this is something I modified for my own use to help me with my designs. You can do the same:

    Rectangular Window Designed FIR Filter
    
    Filter Type: LP
    Passband: 0 to 1000 Hz
    Order(Width): 40 Tap(s)
    Transition Band: 184 Hz
    Stopband Attenuation: 21 dB
    
    A[0] = -0.01461642
    A[1] = -0.008595516
    A[2] = 0.00436906
    A[3] = 0.01565962
    A[4] = 0.01685484
    A[5] = 0.005775972
    A[6] = -0.01116543
    A[7] = -0.0223975
    A[8] = -0.01872126
    A[9] = -0.0002524579
    A[10] = 0.02210215
    A[11] = 0.03244082
    A[12] = 0.02012452
    A[13] = -0.01161655
    A[14] = -0.04456532
    A[15] = -0.05370933
    A[16] = -0.02099536
    A[17] = 0.0528877
    A[18] = 0.1457902
    A[19] = 0.2228482
    A[20] = 0.2527095
    A[21] = 0.2228482
    A[22] = 0.1457902
    A[23] = 0.0528877
    A[24] = -0.02099536
    A[25] = -0.05370933
    A[26] = -0.04456532
    A[27] = -0.01161655
    A[28] = 0.02012452
    A[29] = 0.03244082
    A[30] = 0.02210215
    A[31] = -0.0002524579
    A[32] = -0.01872126
    A[33] = -0.0223975
    A[34] = -0.01116543
    A[35] = 0.005775972
    A[36] = 0.01685484
    A[37] = 0.01565962
    A[38] = 0.00436906
    A[39] = -0.008595516
    A[40] = -0.01578999
    
    float FIR(input_sample)
    {
       /* Shift filter_buffer samples */
       for (j = NUM_COEFFS; j > 0; j--)
       {
          filter_buffer[j] = filter_buffer[j - 1];
       }
       filter_buffer[0] = input_sample;
    
       /* Convolve filter_buffer with filter_coeffs */
       output = 0;
       for (j = 0; j < NUM_COEFFS; j++)
       {
          output += filter_buffer[j] * filter_coeff[j];
       }
    
       return(output)
    }
    
    

Reply
  • There are many types of digital filters. There are many programs to help you with your specific design.

    For example, this is something I modified for my own use to help me with my designs. You can do the same:

    Rectangular Window Designed FIR Filter
    
    Filter Type: LP
    Passband: 0 to 1000 Hz
    Order(Width): 40 Tap(s)
    Transition Band: 184 Hz
    Stopband Attenuation: 21 dB
    
    A[0] = -0.01461642
    A[1] = -0.008595516
    A[2] = 0.00436906
    A[3] = 0.01565962
    A[4] = 0.01685484
    A[5] = 0.005775972
    A[6] = -0.01116543
    A[7] = -0.0223975
    A[8] = -0.01872126
    A[9] = -0.0002524579
    A[10] = 0.02210215
    A[11] = 0.03244082
    A[12] = 0.02012452
    A[13] = -0.01161655
    A[14] = -0.04456532
    A[15] = -0.05370933
    A[16] = -0.02099536
    A[17] = 0.0528877
    A[18] = 0.1457902
    A[19] = 0.2228482
    A[20] = 0.2527095
    A[21] = 0.2228482
    A[22] = 0.1457902
    A[23] = 0.0528877
    A[24] = -0.02099536
    A[25] = -0.05370933
    A[26] = -0.04456532
    A[27] = -0.01161655
    A[28] = 0.02012452
    A[29] = 0.03244082
    A[30] = 0.02210215
    A[31] = -0.0002524579
    A[32] = -0.01872126
    A[33] = -0.0223975
    A[34] = -0.01116543
    A[35] = 0.005775972
    A[36] = 0.01685484
    A[37] = 0.01565962
    A[38] = 0.00436906
    A[39] = -0.008595516
    A[40] = -0.01578999
    
    float FIR(input_sample)
    {
       /* Shift filter_buffer samples */
       for (j = NUM_COEFFS; j > 0; j--)
       {
          filter_buffer[j] = filter_buffer[j - 1];
       }
       filter_buffer[0] = input_sample;
    
       /* Convolve filter_buffer with filter_coeffs */
       output = 0;
       for (j = 0; j < NUM_COEFFS; j++)
       {
          output += filter_buffer[j] * filter_coeff[j];
       }
    
       return(output)
    }
    
    

Children