module Dct

Constants

VERSION

Public Class Methods

dct_type2(vec) click to toggle source
# File lib/dct.rb, line 6
def self.dct_type2(vec)
  (0..vec.length - 1).map do |k|
    sum = 0
    (0..vec.length - 1).each do |n|
      idx = (2 * n + 1) * k
      cos = Math.cos(Math::PI / (2 * vec.length) * idx)
      sum += vec[n] * cos
    end
    sum
  end
end
dct_type3(vec) click to toggle source
# File lib/dct.rb, line 18
def self.dct_type3(vec)
  (0..vec.length - 1).map do |k|
    sum = 0.5 * vec[0]
    (1..vec.length - 1).each do |n|
      idx = n * (2 * k + 1)
      cos = Math.cos(Math::PI / (2 * vec.length) * idx)
      sum += vec[n] * cos
    end
    sum
  end
end