Ruby에서 가우시안 분포의 푸리에 변환
5423 단어 ruby
GR.rb
require 'numo/narray'
require 'numo/pocketfft'
require 'gr/plot'
N = 4096
s = N / 256
pi = Math::PI
y = Array.new(N) do |i|
x = i - N / 2
Math.exp(-x**2 / (2.0 * s**2)) / (Math.sqrt(2 * pi) * s)
end
freq = Numo::DFloat.linspace(0,1,N+1)
freq[N/2..-1].inplace - 1.0
freq = freq[0..-2]
theory = freq.map { |k| Math.exp(-(2 * pi * k)**2 * s**2 / 2.0) }
x = freq
y = Numo::Pocketfft.fft(Numo::NArray.cast(y)).abs
GR.plot([x, y, 'bx'], [x, theory, 'r'], xlim: [-0.05, 0.05])
GR.savefig('gaussian.png')
Reference
이 문제에 관하여(Ruby에서 가우시안 분포의 푸리에 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kojix2/fourier-transform-of-gaussian-distribution-in-ruby-9hi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)