Signal Processing - September 2017 - 185
1
t = 25
1
t = 26
Real
Imag
0
0
-1
0
5
10
15
Sample
(a)
20
x [n]
+
25
-1
0
30
20
40
60
80
100
Sample
(b)
Imag
1
ω
0
-1
×
-1
0
Real
(c)
x [n]
x n (ω)
e -1/τe j ω
1
+
z
z -1
-N
-
X n [k]
+
e j 2πk /N z -1
×
X n -1(ω)
(d)
X n -1[k]
(e)
FIGURE 1. (a) The signal windowing for the SWIFT algorithm. The data samples and window used for the first computation (blue) and second computation
(green). (b) The impulse response and (c) the pole/zero map for a single bin SWIFT with x = 50 samples and ~ = r/10 radians/sample. (d) The singlebin SWIFT filter structure and (e) the single-bin SDFT filter structure.
calculating the DTFT with an exponential
window on all previous data. However,
because the window is infinite in length,
the output will never truly become valid
but will instead asymptote to the true
value with a time constant of x. In practice, however, if x is short enough, this
is not an issue.
Transfer function and impulse
response
The z-domain transfer function of the
SWIFT filter with normalized angular
frequency ~ is given by
H SWIFT (z) =
1
.
1 - e -1/x e j~ z -1
(6)
The SWIFT IIR filter has one zero
at the origin and a single pole lying
inside the unit circle at e -1/x e j~. The
SWIFT's impulse response and pole/
zero map are shown in Figure 1(b) and
(c), with x = 50 samples and ~ = r/10
radians/sample.
IIR filter implementation
Like the SDFT algorithm, the SWIFT
algorithm can be implemented as an
IIR filter with a complex resonator, as
shown in Figure 1(d). The major difference between the SWIFT filter and
an SDFT filter [Figure 1(e)] is that the
SWIFT filter does not require a comb
filter. Any arbitrary number of frequency bins can be calculated by add-
ing more complex resonators at the
desired frequencies.
SWIFT versus SDFT
The SWIFT has several advantages over
the SDFT, as discussed in the following.
Computational efficiency
The SWIFT is more efficient than the
SDFT. To objectively compare the algorithms, we will consider only the costs
of computing a single bin for each.
Both the SWIFT and SDFT share the
property that the number of computations required to calculate X n (~) from
X n - 1 (~) (or X n [k] from X n - 1 [k]) is
fixed and independent of the window
length. However, the SWIFT requires one
complex multiply and one real add to compute the next output, whereas the SDFT
requires one complex multiply and two
real adds. In addition to increased computational efficiency, the SWIFT has drastically reduced memory requirements.
To facilitate comparison, we have
converted complex operations into real
operations, assuming that one complex multiply requires two real adds
and four real multiplies (although it
is possible to compute with three real
multiplies and five additions [4]). Both
the SWIFT and SDFT require storing
one previous complex output and one
complex constant (four floating points).
However, the SDFT must store N previous input samples, while the SWIFT
does not require storage of any previous input samples. The storage and re trieval of N previous samples may be
a significant limitation for small sensors
and embedded devices. Table 1 compares the computational efficiency and
memory requirements of the SDFT and
SWIFT algorithms.
Frequency-domain sampling
As a type of DFT, the SDFT's output is limited to normalized frequencies of 2rk/N, k ! Z. To achieve finer
frequency-domain sampling, the SDFT
requires a larger N, reducing temporal
resolution and thus producing a tradeoff
Table 1. A single-bin comparison of the computational cost and memory requirements
of computing the next Xn[k]/Xn(~ ) using the DFT, SDFT, and SWIFT.
Method
Real multiplies
Real adds
Memory (floats)
DFT
Two N
Two N
N
SDFT
Four
Four
N + Four
SWIFT
Four
Three
Four
IEEE SIGNAL PROCESSING MAGAZINE
|
September 2017
|
185
Table of Contents for the Digital Edition of Signal Processing - September 2017
Signal Processing - September 2017 - Cover1
Signal Processing - September 2017 - Cover2
Signal Processing - September 2017 - 1
Signal Processing - September 2017 - 2
Signal Processing - September 2017 - 3
Signal Processing - September 2017 - 4
Signal Processing - September 2017 - 5
Signal Processing - September 2017 - 6
Signal Processing - September 2017 - 7
Signal Processing - September 2017 - 8
Signal Processing - September 2017 - 9
Signal Processing - September 2017 - 10
Signal Processing - September 2017 - 11
Signal Processing - September 2017 - 12
Signal Processing - September 2017 - 13
Signal Processing - September 2017 - 14
Signal Processing - September 2017 - 15
Signal Processing - September 2017 - 16
Signal Processing - September 2017 - 17
Signal Processing - September 2017 - 18
Signal Processing - September 2017 - 19
Signal Processing - September 2017 - 20
Signal Processing - September 2017 - 21
Signal Processing - September 2017 - 22
Signal Processing - September 2017 - 23
Signal Processing - September 2017 - 24
Signal Processing - September 2017 - 25
Signal Processing - September 2017 - 26
Signal Processing - September 2017 - 27
Signal Processing - September 2017 - 28
Signal Processing - September 2017 - 29
Signal Processing - September 2017 - 30
Signal Processing - September 2017 - 31
Signal Processing - September 2017 - 32
Signal Processing - September 2017 - 33
Signal Processing - September 2017 - 34
Signal Processing - September 2017 - 35
Signal Processing - September 2017 - 36
Signal Processing - September 2017 - 37
Signal Processing - September 2017 - 38
Signal Processing - September 2017 - 39
Signal Processing - September 2017 - 40
Signal Processing - September 2017 - 41
Signal Processing - September 2017 - 42
Signal Processing - September 2017 - 43
Signal Processing - September 2017 - 44
Signal Processing - September 2017 - 45
Signal Processing - September 2017 - 46
Signal Processing - September 2017 - 47
Signal Processing - September 2017 - 48
Signal Processing - September 2017 - 49
Signal Processing - September 2017 - 50
Signal Processing - September 2017 - 51
Signal Processing - September 2017 - 52
Signal Processing - September 2017 - 53
Signal Processing - September 2017 - 54
Signal Processing - September 2017 - 55
Signal Processing - September 2017 - 56
Signal Processing - September 2017 - 57
Signal Processing - September 2017 - 58
Signal Processing - September 2017 - 59
Signal Processing - September 2017 - 60
Signal Processing - September 2017 - 61
Signal Processing - September 2017 - 62
Signal Processing - September 2017 - 63
Signal Processing - September 2017 - 64
Signal Processing - September 2017 - 65
Signal Processing - September 2017 - 66
Signal Processing - September 2017 - 67
Signal Processing - September 2017 - 68
Signal Processing - September 2017 - 69
Signal Processing - September 2017 - 70
Signal Processing - September 2017 - 71
Signal Processing - September 2017 - 72
Signal Processing - September 2017 - 73
Signal Processing - September 2017 - 74
Signal Processing - September 2017 - 75
Signal Processing - September 2017 - 76
Signal Processing - September 2017 - 77
Signal Processing - September 2017 - 78
Signal Processing - September 2017 - 79
Signal Processing - September 2017 - 80
Signal Processing - September 2017 - 81
Signal Processing - September 2017 - 82
Signal Processing - September 2017 - 83
Signal Processing - September 2017 - 84
Signal Processing - September 2017 - 85
Signal Processing - September 2017 - 86
Signal Processing - September 2017 - 87
Signal Processing - September 2017 - 88
Signal Processing - September 2017 - 89
Signal Processing - September 2017 - 90
Signal Processing - September 2017 - 91
Signal Processing - September 2017 - 92
Signal Processing - September 2017 - 93
Signal Processing - September 2017 - 94
Signal Processing - September 2017 - 95
Signal Processing - September 2017 - 96
Signal Processing - September 2017 - 97
Signal Processing - September 2017 - 98
Signal Processing - September 2017 - 99
Signal Processing - September 2017 - 100
Signal Processing - September 2017 - 101
Signal Processing - September 2017 - 102
Signal Processing - September 2017 - 103
Signal Processing - September 2017 - 104
Signal Processing - September 2017 - 105
Signal Processing - September 2017 - 106
Signal Processing - September 2017 - 107
Signal Processing - September 2017 - 108
Signal Processing - September 2017 - 109
Signal Processing - September 2017 - 110
Signal Processing - September 2017 - 111
Signal Processing - September 2017 - 112
Signal Processing - September 2017 - 113
Signal Processing - September 2017 - 114
Signal Processing - September 2017 - 115
Signal Processing - September 2017 - 116
Signal Processing - September 2017 - 117
Signal Processing - September 2017 - 118
Signal Processing - September 2017 - 119
Signal Processing - September 2017 - 120
Signal Processing - September 2017 - 121
Signal Processing - September 2017 - 122
Signal Processing - September 2017 - 123
Signal Processing - September 2017 - 124
Signal Processing - September 2017 - 125
Signal Processing - September 2017 - 126
Signal Processing - September 2017 - 127
Signal Processing - September 2017 - 128
Signal Processing - September 2017 - 129
Signal Processing - September 2017 - 130
Signal Processing - September 2017 - 131
Signal Processing - September 2017 - 132
Signal Processing - September 2017 - 133
Signal Processing - September 2017 - 134
Signal Processing - September 2017 - 135
Signal Processing - September 2017 - 136
Signal Processing - September 2017 - 137
Signal Processing - September 2017 - 138
Signal Processing - September 2017 - 139
Signal Processing - September 2017 - 140
Signal Processing - September 2017 - 141
Signal Processing - September 2017 - 142
Signal Processing - September 2017 - 143
Signal Processing - September 2017 - 144
Signal Processing - September 2017 - 145
Signal Processing - September 2017 - 146
Signal Processing - September 2017 - 147
Signal Processing - September 2017 - 148
Signal Processing - September 2017 - 149
Signal Processing - September 2017 - 150
Signal Processing - September 2017 - 151
Signal Processing - September 2017 - 152
Signal Processing - September 2017 - 153
Signal Processing - September 2017 - 154
Signal Processing - September 2017 - 155
Signal Processing - September 2017 - 156
Signal Processing - September 2017 - 157
Signal Processing - September 2017 - 158
Signal Processing - September 2017 - 159
Signal Processing - September 2017 - 160
Signal Processing - September 2017 - 161
Signal Processing - September 2017 - 162
Signal Processing - September 2017 - 163
Signal Processing - September 2017 - 164
Signal Processing - September 2017 - 165
Signal Processing - September 2017 - 166
Signal Processing - September 2017 - 167
Signal Processing - September 2017 - 168
Signal Processing - September 2017 - 169
Signal Processing - September 2017 - 170
Signal Processing - September 2017 - 171
Signal Processing - September 2017 - 172
Signal Processing - September 2017 - 173
Signal Processing - September 2017 - 174
Signal Processing - September 2017 - 175
Signal Processing - September 2017 - 176
Signal Processing - September 2017 - 177
Signal Processing - September 2017 - 178
Signal Processing - September 2017 - 179
Signal Processing - September 2017 - 180
Signal Processing - September 2017 - 181
Signal Processing - September 2017 - 182
Signal Processing - September 2017 - 183
Signal Processing - September 2017 - 184
Signal Processing - September 2017 - 185
Signal Processing - September 2017 - 186
Signal Processing - September 2017 - 187
Signal Processing - September 2017 - 188
Signal Processing - September 2017 - 189
Signal Processing - September 2017 - 190
Signal Processing - September 2017 - 191
Signal Processing - September 2017 - 192
Signal Processing - September 2017 - 193
Signal Processing - September 2017 - 194
Signal Processing - September 2017 - 195
Signal Processing - September 2017 - 196
Signal Processing - September 2017 - Cover3
Signal Processing - September 2017 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201809
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201807
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201805
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201803
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201801
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0917
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0717
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0517
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0317
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0916
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0716
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0516
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0316
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0915
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0715
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0515
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0315
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0914
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0714
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0514
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0314
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0913
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0713
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0513
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0313
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0912
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0712
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0512
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0312
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0911
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0711
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0511
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0311
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0910
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0710
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0510
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0310
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0909
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0709
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0509
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0309
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1108
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0908
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0708
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0508
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0308
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0108
https://www.nxtbookmedia.com