zoukankan      html  css  js  c++  java
  • Description of FIR Filters

    Description of FIR Filters

    FIR filters are often used because they are simple and easy to understand [6]. Diagrams of the operation of an FIR filter are shown in Figure S1. An FIR filter works by multiplying an array of the most recent n data samples by an array of constants (called the tap coefficients), and summing the elements of the resulting array. (This operation is commonly called a dot product.) The filter then inputs another sample of data (which causes the oldest piece of data to be thrown away) and repeats the process.

    [Figure showing filter operation a) in the time domain and b) in the frequency domain]
    Sidebar Fig - (a) FIR Filter operation in the time domain. Given the h[k]'s, we are implementing an FIR filter as shown in the diagram. (b) FIR Filter operation in the frequency domain. This diagram shows the frequency response of the filter in part a. Notice that the tap coefficients (h[k]'s) are simply the Fourier series coefficients of the frequency response.

    The interesting part of designing FIR filters is translating the desired frequency response into filter tap coefficients. As can be seen from Figure S1a, the equation for the output of an FIR filter in the time domain is:

    y(t)=\sum_{k=0}^n h[k] x(t - k/fs) (Eq. S1)

    where fs is the sampling frequency and k is the filter tap number. Since a delay of 1/fs in time corresponds to a multiplication by a complex exponential, the corresponding equation in the frequency domain (from Figure S1b) is:

    Y(f)=H(f)X(f) (Eq. S2a)

    where

    H(f)=\sum_{k=0}^n h[k] e^(-j2\pi f k/fs) (Eq. S2b)

    is the frequency response of the FIR filter. It can be seen that h[k], the filter tap coefficients, are precisely the Fourier series coefficients of H(f) which is periodic with period fs. Therefore the tap coefficients may be calculated from the following equation:

    h[k]=1/fs \int_0^fs H(f) e^(j2\pi k f/fs) df (Eq. S3)

    An additional option for improving the performance of the filters, is to apply a window function to the filter tap coefficients [2]. Coefficients affecting the higher frequencies are scaled down to reduce the ripple in the stop band. This can be done as follows:

    hw[k]=h[k]w[k] (Eq. S4)

    where w[k] are the window scale factors, h[k] are the original tap coefficients, and hw[k] are the windowed tap coefficients. The resulting coefficients may now be used in place of the original ones. An unwanted side effect of windowing, however, is the sacrifice of a sharp roll-off at the cutoff frequency.

    So, the design process is to pick the desired frequency response, H(f), and then calculate the tap coefficients (Eq. S3). The actual frequency response will only approximate the desired response because the number of filter taps is finite. Optionally, a window function may then be applied to the filter tap coefficients. The final step is to plot the actual frequency response, H(f), using Eq. S2b to make sure the resulting response is acceptable. Lousy responses can be tweaked using different windowing schemes.

     

  • 相关阅读:
    性能分析之– JAVA Thread Dump 分析
    定位性能问题的18个linux命令
    jstat命令查看jvm的GC情况
    jstat命令查看tomcat进程提示进程没找到(PID not found
    Linux使用jstat命令查看jvm的GC情况
    jmeter -xml日志格式中网络时间与服务器时间的区分
    性能测试之----瓶颈分析方法
    jmeter dubbo接口测试
    java的 IO流之缓冲流(转载)
    java 中流的使用
  • 原文地址:https://www.cnblogs.com/nickchan/p/3104433.html
Copyright © 2011-2022 走看看