77
88public protocol Filter {
99 func filteredSignal( _ input: inout [ Float ] )
10- func filteredSignal( _ input: inout [ ComplexSignal ] )
10+ func filteredSignal( _ input: inout [ ComplexSample ] )
1111}
1212
1313public enum FilterType {
@@ -48,7 +48,7 @@ public class IIRFilter: Filter {
4848 biquad!. apply ( input: input, output: & input)
4949 }
5050
51- public func filteredSignal( _ input: inout [ ComplexSignal ] ) {
51+ public func filteredSignal( _ input: inout [ ComplexSample ] ) {
5252 if biquad == nil {
5353 initBiquad ( )
5454 }
@@ -90,7 +90,7 @@ public class FIRFilter: Filter {
9090 var taps : [ Float ]
9191 var tapsLength : Int
9292 var stateBuffer : UnsafeMutableBufferPointer < Float > // Last 'tapsLength - 1' values from previous buffer, need for convolution
93- var complexStateBuffer : UnsafeMutableBufferPointer < ComplexSignal >
93+ var complexStateBuffer : UnsafeMutableBufferPointer < ComplexSample >
9494
9595 public init ( type: FilterType , cutoffFrequency: Double , sampleRate: Int , tapsLength: Int , windowFunc: vDSP . WindowSequence = . hamming) throws {
9696 var generatedFilter : [ Float ]
@@ -104,7 +104,7 @@ public class FIRFilter: Filter {
104104 stateBuffer = . allocate( capacity: tapsLength - 1 )
105105 stateBuffer. initialize ( repeating: 0.0 )
106106 complexStateBuffer = . allocate( capacity: tapsLength - 1 )
107- complexStateBuffer. initialize ( repeating: ComplexSignal ( real: 0 , imag: 0 ) )
107+ complexStateBuffer. initialize ( repeating: ComplexSample ( real: 0 , imag: 0 ) )
108108 }
109109
110110 public init ( taps: [ Float ] ) {
@@ -113,7 +113,7 @@ public class FIRFilter: Filter {
113113 stateBuffer = . allocate( capacity: tapsLength - 1 )
114114 stateBuffer. initialize ( repeating: 0.0 )
115115 complexStateBuffer = . allocate( capacity: tapsLength - 1 )
116- complexStateBuffer. initialize ( repeating: ComplexSignal ( real: 0 , imag: 0 ) )
116+ complexStateBuffer. initialize ( repeating: ComplexSample ( real: 0 , imag: 0 ) )
117117 }
118118
119119 deinit {
@@ -137,8 +137,8 @@ public class FIRFilter: Filter {
137137 input = tempOutputBuffer
138138 }
139139
140- public func filteredSignal( _ input: inout [ ComplexSignal ] ) {
141- let workingBuffer = UnsafeMutableBufferPointer< ComplexSignal > . allocate( capacity: input. count + tapsLength - 1 )
140+ public func filteredSignal( _ input: inout [ ComplexSample ] ) {
141+ let workingBuffer = UnsafeMutableBufferPointer< ComplexSample > . allocate( capacity: input. count + tapsLength - 1 )
142142 defer {
143143 workingBuffer. deallocate ( )
144144 }
@@ -166,9 +166,9 @@ public class FIRFilter: Filter {
166166 vDSP. convert ( splitComplexVector: splitComplexOutputBuffer, toInterleavedComplexVector: & input)
167167 }
168168
169- public func filtfilt( _ input: inout [ ComplexSignal ] ) {
169+ public func filtfilt( _ input: inout [ ComplexSample ] ) {
170170 self . filteredSignal ( & input)
171- var reversedFilteredSignal : [ ComplexSignal ] = input. reversed ( )
171+ var reversedFilteredSignal : [ ComplexSample ] = input. reversed ( )
172172 let freshFilter = FIRFilter ( taps: self . taps)
173173 freshFilter. filteredSignal ( & reversedFilteredSignal)
174174 input = reversedFilteredSignal. reversed ( )
@@ -191,7 +191,7 @@ public class FIRFilter: Filter {
191191 _ = stateBuffer. update ( fromContentsOf: input. dropFirst ( input. count - tapsLength + 1 ) )
192192 }
193193
194- private func copyToComplexStateBuffer( _ input: inout [ ComplexSignal ] ) {
194+ private func copyToComplexStateBuffer( _ input: inout [ ComplexSample ] ) {
195195 _ = complexStateBuffer. update ( fromContentsOf: input. dropFirst ( input. count - tapsLength + 1 ) )
196196 }
197197
0 commit comments