module Digiproc::Convolvable::ClassMethods
This module contains class methods for performing convolution based off a strategy. Digiproc::Convolvable
extends ClassMethods
, and therefore all methods can be called on the Convolable module. Note that arrays in this module must be of Numeric types
Public Instance Methods
acorr(data)
click to toggle source
Alias to auto_correlation
ie:
Digiproc::Convolvable.acorr([1,2,3]) # => [3, 8, 14, 8, 3]
# File lib/concerns/convolvable.rb, line 56 def acorr(data) cross_correlation(data, data) end
auto_correlation(data)
click to toggle source
auto_correlation(data [Array]) => returns Array[Numeric]
Uses the cross_correlation
method to perform cross correlation of data on itself.
Digiproc::Convolvable.auto_correlation([1,2,3]) # => [3, 8, 14, 8, 3]
# File lib/concerns/convolvable.rb, line 47 def auto_correlation(data) cross_correlation(data, data) end
conv(data1, data2, strategy = Digiproc::Strategies::BFConvolutionStrategy)
click to toggle source
Alias to convolve
# File lib/concerns/convolvable.rb, line 24 def conv(data1, data2, strategy = Digiproc::Strategies::BFConvolutionStrategy) strategy.conv(data1,data2) end
convolve(data1, data2, strategy = Digiproc::Strategies::BFConvolutionStrategy)
click to toggle source
convolve(data1 [Array], data2 [Array], strategy [ConvolutionStrategy]) => returns Array[Numeric]
This method performs convolution. `strategy` can be custom-written as long as it matches the ConvolutionStrategy interface: have a class method called `conv` which takes 2 arrays and convolves them. ie:
Digiproc::Convolvable.conv([1,2,3],[1,2,3]) #=> [1, 4, 10, 12, 9]
# File lib/concerns/convolvable.rb, line 18 def convolve(data1, data2, strategy = Digiproc::Strategies::BFConvolutionStrategy) strategy.conv(data1, data2, strategy) end
cross_correlation(data1, data2)
click to toggle source
cross_correlation(data1 [Array], data2 [Array]) => returns Array[Numeric]
Uses the conv
method to perform cross_correlation
by reversing the second data set order Does not accept a strategy as a third parameter
Digiproc::Convolvable.cross_correlation(arr1, arr2)
# File lib/concerns/convolvable.rb, line 33 def cross_correlation(data1, data2) conv(data1, data2.reverse) end
xcorr(data1, data2)
click to toggle source
Alias to cross_correlation
# File lib/concerns/convolvable.rb, line 39 def xcorr(data1, data2) cross_correlation(data1, data2) end