Sha256: b59c246a3099933325a98f76c8edc958f6f16104e166945bb13b1bbcf3d7691c

Contents?: true

Size: 771 Bytes

Versions: 7

Compression:

Stored size: 771 Bytes

Contents

## 
# kaiser Window
# Used to improve digital filters by using a non-retangular frequency domain window 
# NOT COMPLETE
# TODO: Finish this Window
class Digiproc::KaiserWindow < Digiproc::WindowStrategy
    
    
    def initialize(size: , stopband_db: nil, beta: nil)
        raise ArgumentError.new("Must have a stopband or a beta") if stopband_db.nil? && beta.nil?
        super(size: size)
        size = @size
        @equation = lambda { |n|  }
        calculate
        @values = @values.take(@size)
    end

    def beta_for_db(db)
        if db <= 21
            return 0
        elsif db < 50
            return 0.5842*((db - 21) ** 0.4) + 0.07886 * (db - 21)
        else
            return 0.1102*(db - 8.7)
        end
    end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
digiproc-0.2.5 lib/strategies/window/kaiser_window.rb
digiproc-0.2.4 lib/strategies/window/kaiser_window.rb
digiproc-0.2.3 lib/strategies/window/kaiser_window.rb
digiproc-0.2.2 lib/strategies/window/kaiser_window.rb
digiproc-0.2.1 lib/strategies/window/kaiser_window.rb
digiproc-0.2.0 lib/strategies/window/kaiser_window.rb
digiproc-0.1.0 lib/strategies/window/kaiser_window.rb