|
4 | 4 | # Frequency response of a digital filter |
5 | 5 | # |
6 | 6 |
|
7 | | -function freqz(filter::Filter, w::Number) |
| 7 | +function freqz(filter::FilterCoefficients, w::Number) |
8 | 8 | filter = convert(PolynomialRatio, filter) |
9 | 9 | ejw = exp(-im * w) |
10 | 10 | polyval(filter.b, ejw) ./ polyval(filter.a, ejw) |
11 | 11 | end |
12 | 12 |
|
13 | | -function freqz(filter::Filter, w = linspace(0, π, 250)) |
| 13 | +function freqz(filter::FilterCoefficients, w = linspace(0, π, 250)) |
14 | 14 | filter = convert(PolynomialRatio, filter) |
15 | 15 | [freqz(filter, i) for i = w] |
16 | 16 | end |
17 | 17 |
|
18 | | -function freqz(filter::Filter, hz::Union(Number, AbstractVector), fs::Number) |
| 18 | +function freqz(filter::FilterCoefficients, hz::Union(Number, AbstractVector), fs::Number) |
19 | 19 | filter = convert(PolynomialRatio, filter) |
20 | 20 | freqz(filter, hz_to_radians_per_second(hz, fs)) |
21 | 21 | end |
|
25 | 25 | # Phase response of a digital filter |
26 | 26 | # |
27 | 27 |
|
28 | | -function phasez(filter::Filter, w = linspace(0, π, 250)) |
| 28 | +function phasez(filter::FilterCoefficients, w = linspace(0, π, 250)) |
29 | 29 | h = freqz(filter, w) |
30 | 30 | unwrap(-atan2(imag(h), real(h))) |
31 | 31 | end |
|
35 | 35 | # Impulse response of a digital filter |
36 | 36 | # |
37 | 37 |
|
38 | | -function impz(filter::Filter, n=100) |
| 38 | +function impz(filter::FilterCoefficients, n=100) |
39 | 39 | i = [1; zeros(n-1)] |
40 | 40 | filt(filter, i) |
41 | 41 | end |
|
44 | 44 | # Step response of a digital filter |
45 | 45 | # |
46 | 46 |
|
47 | | -function stepz(filter::Filter, n=100) |
| 47 | +function stepz(filter::FilterCoefficients, n=100) |
48 | 48 | i = ones(n) |
49 | 49 | filt(filter, i) |
50 | 50 | end |
|
54 | 54 | # Frequency response of an analog filter |
55 | 55 | # |
56 | 56 |
|
57 | | -function freqs(filter::Filter, w::Number) |
| 57 | +function freqs(filter::FilterCoefficients, w::Number) |
58 | 58 | filter = convert(PolynomialRatio, filter) |
59 | 59 | s = im * w |
60 | 60 | polyval(filter.b, s) ./ polyval(filter.a, s) |
61 | 61 | end |
62 | 62 |
|
63 | | -function freqs(filter::Filter, w::AbstractVector) |
| 63 | +function freqs(filter::FilterCoefficients, w::AbstractVector) |
64 | 64 | filter = convert(PolynomialRatio, filter) |
65 | 65 | [freqs(filter, i) for i = w] |
66 | 66 | end |
67 | 67 |
|
68 | | -function freqs(filter::Filter, hz::Union(Number, AbstractVector), fs::Number) |
| 68 | +function freqs(filter::FilterCoefficients, hz::Union(Number, AbstractVector), fs::Number) |
69 | 69 | filter = convert(PolynomialRatio, filter) |
70 | 70 | freqs(filter, hz_to_radians_per_second(hz, fs)) |
71 | 71 | end |
|
0 commit comments