The present invention provides a filter circuit which can eliminate single noise effectively and is relatively simple in circuit configuration. First and second absolute values of differences between one-clock-preceding output data and both of one-clock-preceding input data and two-clock-preceding input data are respectively calculated by subtracters. When the first absolute value<the second absolute value, a selector selects one-clock-preceding input data as the present output data. When the first absolute value≧the second absolute value, the selector selects two-clock-preceding input data as the present output data.
1. A filter circuit which inputs first data therein, filters the first data and outputs the so-processed first data as second data, comprising:
a first delayer which operates at a timing of a predetermined clock and delays the first data inputted to the filter circuit by one clock;
a first subtracter to which the second data is fed back and which calculates a first difference value as an absolute value of a difference between the second data and the first data inputted to the filter circuit;
a second subtracter to which the second data is fed back and which calculates a second difference value as an absolute value of a difference between the second data and the first data delayed by the first delayer;
a comparator which compares the first difference value and the second difference value;
a selector which selects and outputs the first data inputted to the filter circuit, based on the result of comparison by the comparator when the first difference value is smaller than the second difference value, and selects and outputs the first data delayed by the first delayer when the first difference value is greater than or equal to the second difference value; and
a second delayer which operates at the timing of the predetermined clock and outputs the second data as data obtained by delaying the output data of the selector by one clock.
2. The filter circuit according to claim 1 , further comprising an intermediate data arithmetic unit to which the second data is fed back and which calculates intermediate data between the second data and the first data inputted to the filter circuit,
wherein the selector selects and outputs the intermediate data when the first difference value is smaller than the second difference value.
3. The filter circuit according to claim 2 , wherein the intermediate data is data corresponding to an average of the fed-back second data and the first data inputted to the filter circuit.