A method for removing noise from a detection circuit output signal in an alarm system using a software filter, the method comprising: converting the detection circuit output signal into a digital signal, wherein the digital signal includes a series of sampled values; entering a most recent of the sampled values into a circular index containing a number of previously sampled values; multiplying each of the values in the circular index by predetermined filter coefficients; and summing the multiplied values to output a filtered digital signal value, wherein the multiplying and the summing are performed in accordance with the equation: y n = ∑ i = 0 N b i x n − i where y[n] is the filtered digital signal value, x[n] is the most recent of the sampled values, bi are the predetermined filter coefficients, and N is a length of the software filter, wherein the predetermined filter coefficients are calculated according to the formula: b i = sin i − τ Ω c i − τ π , for i ≠ τ Ω c / π , for i = τ i = 0,1 , ... , 2 ⁢ M where b i are the predetermined filter coefficients, τ is a number of taps of the software filter, M is equal to τ if the filter coefficients are symmetric, and Ω c = (ω stop + ω pass )/ (2 x f s ), where ω stop is a stopband lower frequency of the software filter, ω pass is a passband upper frequency of the software filter, and f s is a sampling frequency of the sampled values. converting the detection circuit output signal into a digital signal, wherein the digital signal includes a series of sampled values; entering a most recent of the sampled values into a circular index containing a number of previously sampled values; multiplying each of the values in the circular index by predetermined filter coefficients; and summing the multiplied values to output a filtered digital signal value, wherein the multiplying and the summing are performed in accordance with the equation: y n = ∑ i = 0 N b i x n − i where y[n] is the filtered digital signal value, x[n] is the most recent of the sampled values, bi are the predetermined filter coefficients, and N is a length of the software filter, wherein the predetermined filter coefficients are calculated according to the formula: b i = sin i − τ Ω c i − τ π , for i ≠ τ Ω c / π , for i = τ i = 0,1 , ... , 2 ⁢ M where b i are the predetermined filter coefficients, τ is a number of taps of the software filter, M is equal to τ if the filter coefficients are symmetric, and Ω c = (ω stop + ω pass )/ (2 x f s ), where ω stop is a stopband lower frequency of the software filter, ω pass is a passband upper frequency of the software filter, and f s is a sampling frequency of the sampled values. summing the multiplied values to output a filtered digital signal value, wherein the multiplying and the summing are performed in accordance with the equation: y n = ∑ i = 0 N b i x n − i where y[n] is the filtered digital signal value, x[n] is the most recent of the sampled values, bi are the predetermined filter coefficients, and N is a length of the software filter, wherein the predetermined filter coefficients are calculated according to the formula: b i = sin i − τ Ω c i − τ π , for i ≠ τ Ω c / π , for i = τ i = 0,1 , ... , 2 ⁢ M where b i are the predetermined filter coefficients, τ is a number of taps of the software filter, M is equal to τ if the filter coefficients are symmetric, and Ω c = (ω stop + ω pass )/ (2 x f s ), where ω stop is a stopband lower frequency of the software filter, ω pass is a passband upper frequency of the software filter, and f s is a sampling frequency of the sampled values. <EOS>