Skip to content

Commit 5187861

Browse files
committed
Rename Filter -> FilterCoefficients
1 parent 6f5fcc8 commit 5187861

File tree

4 files changed

+22
-22
lines changed

4 files changed

+22
-22
lines changed

src/Filters/design.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -347,14 +347,14 @@ function transform_prototype(ftype::Bandstop, proto::ZeroPoleGain)
347347
ZeroPoleGain(newz, newp, proto.k * real(num)/real(den))
348348
end
349349

350-
transform_prototype(ftype, proto::Filter) =
350+
transform_prototype(ftype, proto::FilterCoefficients) =
351351
transform_prototype(ftype, convert(ZeroPoleGain, proto))
352352

353-
analogfilter(ftype::FilterType, proto::Filter) =
353+
analogfilter(ftype::FilterType, proto::FilterCoefficients) =
354354
transform_prototype(ftype, proto)
355355

356356
# Bilinear transform
357-
bilinear(f::Filter, fs::Real) = bilinear(convert(ZeroPoleGain, f), fs)
357+
bilinear(f::FilterCoefficients, fs::Real) = bilinear(convert(ZeroPoleGain, f), fs)
358358
function bilinear{Z,P,K}(f::ZeroPoleGain{Z,P,K}, fs::Real)
359359
ztype = typeof(0 + zero(Z)/fs)
360360
z = fill(convert(ztype, -1), max(length(f.p), length(f.z)))
@@ -382,5 +382,5 @@ prewarp(ftype::Union(Lowpass, Highpass)) = (typeof(ftype))(4*tan(pi*ftype.w/2))
382382
prewarp(ftype::Union(Bandpass, Bandstop)) = (typeof(ftype))(4*tan(pi*ftype.w1/2), 4*tan(pi*ftype.w2/2))
383383

384384
# Digital filter design
385-
digitalfilter(ftype::FilterType, proto::Filter) =
385+
digitalfilter(ftype::FilterType, proto::FilterCoefficients) =
386386
bilinear(transform_prototype(prewarp(ftype), proto), 2)

src/Filters/filt.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ Base.filt{T,S<:Number}(f::Biquad{T}, x::AbstractArray{S}, si=_zerosi(f, x)) =
7777
filt!(Array(promote_type(T, S), size(x)), f, x, si)
7878

7979
## For arbitrary filters, convert to SecondOrderSections
80-
Base.filt(f::Filter, x) = filt(convert(SecondOrderSections, f), x)
81-
Base.filt!(out, f::Filter, x) = filt!(out, convert(SecondOrderSections, f), x)
80+
Base.filt(f::FilterCoefficients, x) = filt(convert(SecondOrderSections, f), x)
81+
Base.filt!(out, f::FilterCoefficients, x) = filt!(out, convert(SecondOrderSections, f), x)
8282

8383
#
8484
# filtfilt
@@ -211,7 +211,7 @@ function filtfilt{T,G,S}(f::SecondOrderSections{T,G}, x::AbstractArray{S})
211211
end
212212

213213
# Support for other filter types
214-
filtfilt(f::Filter, x) = filtfilt(convert(SecondOrderSections, f), x)
214+
filtfilt(f::FilterCoefficients, x) = filtfilt(convert(SecondOrderSections, f), x)
215215
filtfilt(f::PolynomialRatio, x) = filtfilt(coefb(f), coefa(f), x)
216216

217217
## Initial filter state

src/Filters/response.jl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@
44
# Frequency response of a digital filter
55
#
66

7-
function freqz(filter::Filter, w::Number)
7+
function freqz(filter::FilterCoefficients, w::Number)
88
filter = convert(PolynomialRatio, filter)
99
ejw = exp(-im * w)
1010
polyval(filter.b, ejw) ./ polyval(filter.a, ejw)
1111
end
1212

13-
function freqz(filter::Filter, w = linspace(0, π, 250))
13+
function freqz(filter::FilterCoefficients, w = linspace(0, π, 250))
1414
filter = convert(PolynomialRatio, filter)
1515
[freqz(filter, i) for i = w]
1616
end
1717

18-
function freqz(filter::Filter, hz::Union(Number, AbstractVector), fs::Number)
18+
function freqz(filter::FilterCoefficients, hz::Union(Number, AbstractVector), fs::Number)
1919
filter = convert(PolynomialRatio, filter)
2020
freqz(filter, hz_to_radians_per_second(hz, fs))
2121
end
@@ -25,7 +25,7 @@ end
2525
# Phase response of a digital filter
2626
#
2727

28-
function phasez(filter::Filter, w = linspace(0, π, 250))
28+
function phasez(filter::FilterCoefficients, w = linspace(0, π, 250))
2929
h = freqz(filter, w)
3030
unwrap(-atan2(imag(h), real(h)))
3131
end
@@ -35,7 +35,7 @@ end
3535
# Impulse response of a digital filter
3636
#
3737

38-
function impz(filter::Filter, n=100)
38+
function impz(filter::FilterCoefficients, n=100)
3939
i = [1; zeros(n-1)]
4040
filt(filter, i)
4141
end
@@ -44,7 +44,7 @@ end
4444
# Step response of a digital filter
4545
#
4646

47-
function stepz(filter::Filter, n=100)
47+
function stepz(filter::FilterCoefficients, n=100)
4848
i = ones(n)
4949
filt(filter, i)
5050
end
@@ -54,18 +54,18 @@ end
5454
# Frequency response of an analog filter
5555
#
5656

57-
function freqs(filter::Filter, w::Number)
57+
function freqs(filter::FilterCoefficients, w::Number)
5858
filter = convert(PolynomialRatio, filter)
5959
s = im * w
6060
polyval(filter.b, s) ./ polyval(filter.a, s)
6161
end
6262

63-
function freqs(filter::Filter, w::AbstractVector)
63+
function freqs(filter::FilterCoefficients, w::AbstractVector)
6464
filter = convert(PolynomialRatio, filter)
6565
[freqs(filter, i) for i = w]
6666
end
6767

68-
function freqs(filter::Filter, hz::Union(Number, AbstractVector), fs::Number)
68+
function freqs(filter::FilterCoefficients, hz::Union(Number, AbstractVector), fs::Number)
6969
filter = convert(PolynomialRatio, filter)
7070
freqs(filter, hz_to_radians_per_second(hz, fs))
7171
end

src/Filters/types.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Filter types and conversions
22

3-
abstract Filter
3+
abstract FilterCoefficients
44

55
#
66
# Zero-pole gain form
77
#
88

9-
immutable ZeroPoleGain{Z<:Number,P<:Number,K<:Number} <: Filter
9+
immutable ZeroPoleGain{Z<:Number,P<:Number,K<:Number} <: FilterCoefficients
1010
z::Vector{Z}
1111
p::Vector{P}
1212
k::K
@@ -16,7 +16,7 @@ end
1616
# Transfer function form
1717
#
1818

19-
immutable PolynomialRatio{T<:Number} <: Filter
19+
immutable PolynomialRatio{T<:Number} <: FilterCoefficients
2020
b::Poly{T}
2121
a::Poly{T}
2222

@@ -56,7 +56,7 @@ coefa(f::PolynomialRatio) = reverse(f.a.a)
5656
# A separate immutable to improve efficiency of filtering using SecondOrderSectionss
5757
#
5858

59-
immutable Biquad{T} <: Filter
59+
immutable Biquad{T} <: FilterCoefficients
6060
b0::T
6161
b1::T
6262
b2::T
@@ -110,7 +110,7 @@ end
110110
# Second-order sections (array of biquads)
111111
#
112112

113-
immutable SecondOrderSections{T,G} <: Filter
113+
immutable SecondOrderSections{T,G} <: FilterCoefficients
114114
biquads::Vector{Biquad{T}}
115115
g::G
116116
end
@@ -244,4 +244,4 @@ function Base.convert{Z,P}(::Type{SecondOrderSections}, f::ZeroPoleGain{Z,P})
244244
SecondOrderSections(biquads, f.k)
245245
end
246246

247-
Base.convert(::Type{SecondOrderSections}, f::Filter) = convert(SecondOrderSections, convert(ZeroPoleGain, f))
247+
Base.convert(::Type{SecondOrderSections}, f::FilterCoefficients) = convert(SecondOrderSections, convert(ZeroPoleGain, f))

0 commit comments

Comments
 (0)