Sha256: a86f6da6ac6050e7d836f7bafb511a521688e0356c107230e46c5124b67e916d

Contents?: true

Size: 818 Bytes

Versions: 7

Compression:

Stored size: 818 Bytes

Contents

class Dsp::Systems::MatchedFilter < Dsp::Systems::System

    def new_from_analog_signal(signal)
        self.new(signal_data: signal.digitize)
    end

    def new_from_digital_signal(signal)
        self.new(signal_data: signal.data)
    end

    def initialize(signal_eqn: nil, sample_rate: nil, size: nil, signal_data: nil)
        raise ArgumentError.new("Must have signal_eqn, sample_rate, and size XOR signal_data") if (signal_eqn.nil? or sample_rate.nil? or size.nil?) and (signal_data.nil?)
        if signal_data.nil?
            data = Dsp::AnalogSignal.new(eqn: signal_eqn, sample_rate: sample_rate, size: size).digitize.map(:&conjugate).reverse
            super(data)
        else
            data = signal_data.map(&:conjugate).reverse
            super(data)
        end
    end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
digiproc-0.2.5 lib/systems/matched_filter.rb
digiproc-0.2.4 lib/systems/matched_filter.rb
digiproc-0.2.3 lib/systems/matched_filter.rb
digiproc-0.2.2 lib/systems/matched_filter.rb
digiproc-0.2.1 lib/systems/matched_filter.rb
digiproc-0.2.0 lib/systems/matched_filter.rb
digiproc-0.1.0 lib/systems/matched_filter.rb