design_fir_filter Subroutine

public pure subroutine design_fir_filter(n, fc, fs, b, a, fc2, ftype, win)

Designs a windowed, linear-phase FIR filter.

The returned coefficients use the same convention as filter: b contains the numerator coefficients in increasing delay order and a is [1.0].

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: n

The requested number of taps. Even values are increased by one.

real(kind=real64), intent(in) :: fc

The first cutoff frequency, in Hz.

real(kind=real64), intent(in) :: fs

The sampling frequency, in Hz.

real(kind=real64), intent(out), allocatable :: b(:)

The numerator coefficients of the designed filter.

real(kind=real64), intent(out), allocatable :: a(:)

The denominator coefficients. This is always [1.0].

real(kind=real64), intent(in), optional :: fc2

The second cutoff frequency for band-pass and band-stop filters.

integer(kind=int32), intent(in), optional :: ftype

The filter type. The default is LOW_PASS_FILTER.

class(window), intent(inout), optional, target :: win

The window function. The default is a Hamming window.