Slide 1

Slide 1 text

ٯFMԻݯ NAOMASA MATSUBAYASHI INVERTED FREQUENCY MODULATION SYNTHESIZER https://github.com/Fadis/ifm αϯϓϧίʔυ

Slide 2

Slide 2 text

Իָͷԋ૗͸೾ͷੜ੒ εϐʔΧʔͷ ΞΠίϯ ిѹͷ೾ ۭؾͷ೾ Ի֊ Իྔ υ ίϯϐϡʔλͰԻָΛ૗ͰΔʹ͸ Ի֊ʹରԠ͢Δप೾਺ͷ೾Λੜ੒͠ͳ͚Ε͹ͳΒͳ͍ ?

Slide 3

Slide 3 text

Իݯνοϓͷొ৔ εϐʔΧʔͷ ΞΠίϯ ిѹͷ೾ ۭؾͷ೾ Ի֊ Իྔ υ ͜ͷੜ੒Λߦ͏ϋʔυ΢ΣΞ͕ొ৔ͨ͠

Slide 4

Slide 4 text

υ Ϩ ϛ ϑΝ ι ԣ࣠: प೾਺ ॎ࣠: ࣌ؒ(ͦΕͧΕͷԻ֊ʹ͍ͭͯ໐Γ࢝Ί͔Β2ඵ෼)

Slide 5

Slide 5 text

65.406Hz 130.81Hz 196.22Hz 261.63Hz 327.03Hz 392.44Hz 457.84Hz 523.25Hz 588.66Hz υ Ϩ ϛ ϑΝ ι

Slide 6

Slide 6 text

65.406Hz 130.81Hz 196.22Hz 261.63Hz 327.03Hz 392.44Hz 457.84Hz 523.25Hz 588.66Hz υ Ϩ ϛ ϑΝ ι Ի֊Λָ࣋ͭثͷԻ͸ ͋Δप೾਺ͷ೾ͱ ͦͷ੔਺ഒͷप೾਺ͷ೾ͷॏͶ߹Θͤ ͜ͷ͏ͪ࠷΋௿͍प೾਺ͷ೾Λ جԻͱݺͿ Ի֊্͕͕Δͱ جԻͷप೾਺্͕͕͍ͬͯ͘

Slide 7

Slide 7 text

65.406Hz 130.81Hz 196.22Hz 261.63Hz 327.03Hz 392.44Hz 457.84Hz 52 υ Ϩ ϛ ϑΝ ι جԻͷ੔਺ഒͷ प೾਺Ͱग़Δ೾Λ ഒԻͱݺͿ جԻͷप೾਺্͕͕Δͱ ഒԻͷप೾਺΋্͕Δ

Slide 8

Slide 8 text

άϥϯυϐΞϊ ΞϧταοΫε ϏϒϥϑΥϯ όΠΦϦϯ ϚϦϯό

Slide 9

Slide 9 text

261.63Hz 523.25Hz 784.88Hz 1046.5Hz 1308.1Hz 1569.8Hz 1831.4Hz 2093.0Hz 2354.6Hz άϥϯυϐΞϊ ΞϧταοΫε ϏϒϥϑΥϯ όΠΦϦϯ ϚϦϯό

Slide 10

Slide 10 text

261.63Hz 523.25Hz 784.88Hz 1046.5Hz 1308.1Hz 1569.8Hz 1831.4Hz 2093.0Hz 2354.6Hz άϥϯυϐΞϊ ΞϧταοΫε ϏϒϥϑΥϯ όΠΦϦϯ ϚϦϯό Ի͕4ΦΫλʔϒ໨ͷυʹͳΔ৚͕݅ 261.63HzͷجԻΛ࣋ͭ͜ͱͳͷͰ Ͳͷָث΋جԻʹ͸ େ͖ͳҧ͍͸ݟΒΕͳ͍

Slide 11

Slide 11 text

1046.5Hz 1308.1Hz 1569.8Hz 1831.4Hz 2093.0Hz άϥϯυϐΞϊ ΞϧταοΫε ϏϒϥϑΥϯ όΠΦϦϯ ϚϦϯό 2616.3Hz 2877.8Hz 3139.5Hz 3401.1Hz ഒԻͷҧ͍͕ ָثͷԻ৭ͷҧ͍Λ ੜΈग़͢

Slide 12

Slide 12 text

άϥϯυϐΞϊ ΞϧταοΫε ϏϒϥϑΥϯ όΠΦϦϯ ϚϦϯό

Slide 13

Slide 13 text

άϥϯυϐΞϊ ԣ࣠: प೾਺ ॎ࣠: ࣌ؒ t ͋Δ࣌ࠁʹ͓͚Δશͯͷप೾਺ͷ੒෼ͷ૯࿨ΛऔΔͱ ͓͓Αͦͦͷ࣌ࠁͷԻͷৼ෯( Իྔ)͕ಘΒΕΔ ≃

Slide 14

Slide 14 text

Τϯϕϩʔϓ ָثͷԻͷৼ෯͸࣌ؒมԽ͢Δ ಛʹϐΞϊ΍ϚϦϯόͷΑ͏ͳ ࠷ॳʹՃ͑ͨྗ͚ͩͰ࠷ޙ·Ͱ໐Δָث͸ ៉ྷͳݮਰৼಈͷۂઢΛඳ͘

Slide 15

Slide 15 text

άϥϯυϐΞϊ ࠷ॳʹՃ͑ͨྗ͚ͩͰ࠷ޙ·Ͱ໐ΔָثͰ͸ प೾਺ͷߴ͍ഒԻ΄Ͳૣ͘ফ͑Δ܏޲ʹ͋Δ όΠΦϦϯ ܧଓతʹྗ͕Ճ͑ΒΕΔָثͰ͸ ໐Β͢ͷΛ΍ΊΔ·Ͱಉׂ͡߹ͷഒԻ͕ग़Δ܏޲ʹ͋Δ

Slide 16

Slide 16 text

ཁٻ͞ΕͨԻ֊ʹରԠ͢ΔجԻͷαΠϯ೾ͱ ָثʹԠͨ͡ഒԻͷαΠϯ೾Λੜ੒͢Δ ͦΕΒͷৼ෯͕࣮ࡍͷָثͱಉ͡Α͏ʹ࣌ؒมԽ͍ͯ͠Ε͹ ͦͷָثͰཁٻ͞ΕͨԻ֊ͷԻΛ໐Βͨ͠Α͏ʹฉ͑͜Δ ϐΞϊͷԻͰ υ ഒ཰ ৼ෯ ∑

Slide 17

Slide 17 text

ϐΞϊͷԻͰ υ ໰୊఺ αΠϯ೾ͷܭࢉ͸҆͘ͳ͍ ഒ཰ ৼ෯ ∑

Slide 18

Slide 18 text

प೾਺มௐ f (t) = sin (2πωc t + B sin (2πωm t))

Slide 19

Slide 19 text

ωc = ωm 2ωc = ωm 3ωc = ωm 4ωc = ωm f (t) = sin (2πωc t + B sin (2πωm t))

Slide 20

Slide 20 text

ഒԻ੒෼ͷݮਰ f (t) = Ec (t) sin (2πωc t + Em (t) B sin (2πωm t)) ৼ෯ͷ࣌ؒมԽΛ ίϯτϩʔϧ͢Δ ഒԻ੒෼ͷྔͷ࣌ؒมԽΛ ίϯτϩʔϧ͢Δ άϥϯυϐΞϊ

Slide 21

Slide 21 text

'.Իݯ͸ ΞίʔεςΟοΫͳָثͷ ಛ௃Λগͳ͍ύϥϝʔλͰදݱग़དྷΔ ѱ͘ͳ͍ϞσϧͰ͋Δ

Slide 22

Slide 22 text

OΦϖϨʔλͷ'.Իݯͷܭࢉࣜ OΦϖϨʔλ਺ &JΤϯϕϩʔϓ TJجԻͷप೾਺ʹର͢Δഒ཰ ЋJKΦϖϨʔλK͕ΦϖϨʔλJΛมௐ͢Δڧ͞ ЌJग़ྗʹؚ·ΕΔΦϖϨʔλJͷ৴߸ͷׂ߹ ୈ12ճΧʔωϧ/VM୳ݕୂ Ҩ఻తFMԻݯ(2015೥)ΑΓ '.Իݯͷ໰୊఺

Slide 23

Slide 23 text

Ͳ͜Λ͍ͬͨ͡Β ཉָ͍͠ثͷԻ৭ʹۙ෇͘ͷ͔ ͬ͞ͺΓΘ͔ΒΜ OΦϖϨʔλͷ'.Իݯͷܭࢉࣜ ୈ12ճΧʔωϧ/VM୳ݕୂ Ҩ఻తFMԻݯ(2015೥)ΑΓ '.Իݯͷ໰୊఺ ૂͬͨԻ৭Λ ࡞Δͷ͕ ͱͯ΋೉͍͠

Slide 24

Slide 24 text

ୈੈ୅ ୈੈ୅ ୈੈ୅ Ҩ఻తΞϧΰϦζϜ ͜ͷૢ࡞Λ܁Γฦ͢͜ͱʹΑͬͯ ༩͑ΒΕͨ৚݅ʹΑ͘ద߹͢ΔݸମΛ ݟ͚ͭग़͢͜ͱ͕Ͱ͖Δ ୈ12ճΧʔωϧ/VM୳ݕୂ Ҩ఻తFMԻݯ(2015೥)ΑΓ ͦ͜Ͱ Ҩ఻తΞϧΰϦζϜͰ '.Իݯύϥϝʔλͷ ୳ࡧΛࢼΈͨ

Slide 25

Slide 25 text

Ҩ఻తFMԻݯ ར఺ &OEUP&OEͰԻ͔Β'.Իݯύϥϝʔλ͕ಘΒΕΔ ࣮༻ʹ଱͑Δ඼࣭ͷग़ྗ͕ಘΒΕΔ ܽ఺ ηοτͷύϥϝʔλΛݟ͚ͭΔͷʹ(16Ͱ͔͔࣌ؒۙ͘Δ ෳ਺ͷ୳ࡧ݁Ռ͕ઢܗิؒͰ͖Δอূ͕ͳ͍

Slide 26

Slide 26 text

ୈ8ճΧʔωϧ/VM୳ݕୂ@ؔ੢ χϡʔϥϧFMԻݯ(2017೥)ΑΓ χϡʔϥϧωοτϫʔΫͰ '.Իݯύϥϝʔλͷ ୳ࡧΛࢼΈͨ Caffe Φʔϓϯιʔεͳ σΟʔϓϥʔχϯάϑϨʔϜϫʔΫͷ1ͭ http://caffe.berkeleyvision.org/

Slide 27

Slide 27 text

χϡʔϥϧFMԻݯ ར఺ &OEUP&OEͰԻ͔Β'.Իݯύϥϝʔλ͕ಘΒΕΔ ֶशࡁΈͷωοτϫʔΫ͕͋Ε͹਺ඵͰύϥϝʔλΛಘΒΕΔ ܽ఺ ग़ྗͷ඼࣭͕࣮༻ʹ଱͑ͳ͍ ෳ਺ͷ୳ࡧ݁Ռ͕ઢܗิؒͰ͖Δอূ͕ͳ͍

Slide 28

Slide 28 text

ωc = ωm 2ωc = ωm 3ωc = ωm 4ωc = ωm 5ωc = ωm f (t) = A cos (2πωc t + B sin (2πωm t))

Slide 29

Slide 29 text

ഒԻ੒෼ͷग़ํʹ͸نଇੑ͕͋ΔΑ͏ʹݟ͑Δ ωc = ωm 2ωc = ωm 3ωc = ωm 4ωc = ωm 5ωc = ωm f (t) = A cos (2πωc t + B sin (2πωm t))

Slide 30

Slide 30 text

Ͳ͜Λ͍ͬͨ͡Β ཉָ͍͠ثͷԻ৭ʹۙ෇͘ͷ͔ ͬ͞ͺΓΘ͔ΒΜ OΦϖϨʔλͷ'.Իݯͷܭࢉࣜ ຊ౰ʹ? ୈ12ճΧʔωϧ/VM୳ݕୂ Ҩ఻తFMԻݯ(2015೥)ΑΓ

Slide 31

Slide 31 text

sin (x) 2πωm t + sin (x) × B × A ग़ྗ 2πωc × × 2ΦϖϨʔλ௚ྻͷ৔߹ Τϯϕϩʔϓ͸ ඍখͳ࣌ؒͷൣғͰ͸ఆ਺ͱݟ၏ͤΔͨΊ ͱ ʹؚ·ΕΔ A B ͋Δ࣌ࠁ෇ۙͰͷFMԻݯͷग़ྗΛߟ͑Δ

Slide 32

Slide 32 text

ΩϟϦΞΛ ʹஔ͖׵͑Δ cos cos (x) 2πωm t + sin (x) × B × A ग़ྗ 2πωc × × f (t) = A cos (2πωc t + B sin (2πωm t)) Ґ૬͕ ͣΕΔ͕ৼ෯ʹ͸Өڹ͕ͳ͍ π 2

Slide 33

Slide 33 text

f (t) = A cos (2πωc t + B sin (2πωm t)) ࡾ֯ؔ਺ͷՃ๏ఆཧ f (t) = A cos (2πωc t) cos (B sin (2πωm t)) −A sin (2πωc t) sin (B sin (2πωm t)) cos (a + b) = cos a cos b − sin a sin b

Slide 34

Slide 34 text

f (t) = A cos (2πωc t) cos (B sin (2πωm t)) −A sin (2πωc t) sin (B sin (2πωm t)) cos (z sin θ) = J0 (z) + 2 ∞ ∑ k=1 J2k (z) cos (2kθ) sin (z sin θ) = 2 ∞ ∑ k=0 J2k+1 (z) sin ((2k + 1) θ) Olver, Frank W. NIST handbook of mathematical functions. Cambridge New York: Cambridge University Press NIST, 2010. p.226

Slide 35

Slide 35 text

cos (z sin θ) = J0 (z) + 2 ∞ ∑ k=1 J2k (z) cos (2kθ) sin (z sin θ) = 2 ∞ ∑ k=0 J2k+1 (z) sin ((2k + 1) θ) Olver, Frank W. NIST handbook of mathematical functions. Cambridge New York: Cambridge University Press NIST, 2010. p.226 f (t) = A cos (2πωc t) ( J0 (B) + 2 ∞ ∑ k=1 J2k (B) cos (2k (2πωm t))) −A sin (2πωc t) ( 2 ∞ ∑ k=0 J2k+1 (B) sin ((2k + 1) (2πωm t)))

Slide 36

Slide 36 text

f (t) = AJ0 (B) cos (2πωc t) +2A ∞ ∑ k=1 J2k (B) cos (2k (2πωm t)) cos (2πωc t) −2A ∞ ∑ J2k+1 (B) sin ((2k + 1) (2πωm t)) sin (2πωc t) ࣜมܗͯ͠ f (t) = A cos (2πωc t) ( J0 (B) + 2 ∞ ∑ k=1 J2k (B) cos (2k (2πωm t))) −A sin (2πωc t) ( 2 ∞ ∑ k=0 J2k+1 (B) sin ((2k + 1) (2πωm t)))

Slide 37

Slide 37 text

cos a cos b = 1 2 (cos (a − b) + cos (a + b)) sin a sin b = 1 2 (cos (a + b) − cos (a − b)) ࡾ֯ؔ਺ͷੵ࿨ެࣜ f (t) = AJ0 (B) cos (2πωc t) +2A ∞ ∑ k=1 J2k (B) cos (2k (2πωm t)) cos (2πωc t) −2A ∞ ∑ k=0 J2k+1 (B) sin ((2k + 1) (2πωm t)) sin (2πωc t)

Slide 38

Slide 38 text

ࡾ֯ؔ਺ͷੵ࿨ެࣜ f (t) = AJ0 (B) cos (2πωc t) +A ∞ ∑ k=1 J2k (B) cos ((2k (2πωm) − 2πωc) t) +A ∞ ∑ k=1 J2k (B) cos ((2k (2πωm) + 2πωc) t) −A ∞ ∑ k=0 J2k+1 (B) cos (((2k + 1) (2πωm) + 2πωc) t) +A ∞ ∑ k=0 J2k+1 (B) cos (((2k + 1) (2πωm) − 2πωc) t) 2 ( ( ) ( ))

Slide 39

Slide 39 text

+A∑ k=1 J2k (B) cos ((2k (2πωm) − 2πωc) t) +A ∞ ∑ k=1 J2k (B) cos ((2k (2πωm) + 2πωc) t) −A ∞ ∑ k=0 J2k+1 (B) cos (((2k + 1) (2πωm) + 2πωc) t) +A ∞ ∑ k=0 J2k+1 (B) cos (((2k + 1) (2πωm) − 2πωc) t) ࣜΛ੔ཧ͢Δͱ f (t) = A ∞ ∑ n=−∞ Jn (B) cos (2πt (nωm + ωc))

Slide 40

Slide 40 text

f (t) = A ∞ ∑ n=−∞ Jn (B) cos (2πt (nωm + ωc)) ͜ͷৼ෯Ͱ ͜ͷप೾਺ͷ೾Λ શͯ଍͠߹ΘͤΔͱ FMԻݯ͕ग़ྗ͢Δ೾ͱ౳Ձ प೾਺มௐͷల։

Slide 41

Slide 41 text

ͱ͜ΖͰ

Slide 42

Slide 42 text

f (t) = A ∞ ∑ n=−∞ Jn (B) cos (2πt (nωm + ωc)) ͬͯԿ? J

Slide 43

Slide 43 text

ୈҰछϕοηϧؔ਺ Jn (x) = 2 π ∫ π 2 0 sin (x sin ω) sin nωdω (n = 2k + 1|k ∈ ℕ) Jn (x) = 2 π ∫ π 2 0 cos (x sin ω) cos nωdω (n = 2k|k ∈ ℕ) ͕ح਺ͷ࣌ n ͕ۮ਺ͷ࣌ n ஫ҙ: ͜͜Ͱࣗવ਺ ͸ ΛؚΉ ℕ 0

Slide 44

Slide 44 text

ϙΠϯτ ࣍਺͕ߴ͍΄Ͳ ্ཱ͕ͪΓ͕؇΍͔ʹͳΔ ϙΠϯτ ͕େ͖͘ͳΔͱ पظؔ਺ͱݟ၏ͤΔ x

Slide 45

Slide 45 text

͕ෛͷ৔߹ n

Slide 46

Slide 46 text

f (t) = A ∞ ∑ n=−∞ Jn (B) cos (2πt (nωm + ωc)) ͕͜͜ෛͷ࣌ प೾਺ ͷ೾͸Ґ૬͕ ͣΕͯग़ͯ͘Δ 2πt (nωm + ωc) π ͔͠͠ਓؒͷௌ֮͸Իͷप೾਺ຖͷৼ෯͚ͩΛௌ͍͍ͯͯ Ґ૬ͷҧ͍Λ஌֮͢Δ͜ͱ͸Ͱ͖ͳ͍

Slide 47

Slide 47 text

࣮ࡍʹ஌֮͞ΕΔԻͷৼ෯͸ ϕοηϧؔ਺ͷઈର஋ʹͳΔ ∴

Slide 48

Slide 48 text

f (t) = A ∞ ∑ n=−∞ Jn (B) cos (2πt (nωm + ωc)) ͷ৔߹ ෛͷप೾਺ͷ೾Λ࣋ͭ͜ͱʹͳΔ nωm + ωc < 0 ͳͷͰ ͋Δෛͷप೾਺ ͷ೾ؚ͕·Ε͍ͯΔ࣌ ͦΕ͸प೾਺ ͷ೾ͱͯ͠؍ଌ͞ΕΔ cos (x) = cos (−x) ω |ω| ෛͷप೾਺੒෼

Slide 49

Slide 49 text

2ωc = ωm 3ωc = ωm 0 1 2 3 4 5 6 7 8 9 −1 −2 −3 −4 −5 −6 −7 −8 −9 −10 0 1 2 3 4 5 6 −1 −2 −3 −4 −5 −6 ͭ·ΓFMԻݯͷεϖΫτϧͷҙຯ͸͜͏ 2ωc 2ωc 3ωc 3ωc

Slide 50

Slide 50 text

ྔࢠԽͯ͠ ઢܗิؒͯ͠ ૭ؔ਺Λ͔͚ͯ FFTׂ͖ͯͨ͠ʹ͸ Α͘Ұக͍ͯ͠Δ ͷ৔߹ͷ ల։݁ՌͱFFTͷൺֱ 3ωc = ωm

Slide 51

Slide 51 text

༩͑ΒΕͨεϖΫτϧʹ͍ۙ݁Ռ͕ಘΒΕΔ ͱ ͱ ͱ ΛٻΊ͍ͨ A B ωc ωm f (t) = A ∞ ∑ n=−∞ Jn (B) cos (2πt (nωm + ωc))

Slide 52

Slide 52 text

͸ ͷ஋͔͠ฦ͞ͳ͍ҝ ͢΂ͯͷ ͷ૯࿨Ͱׂ͓͚ͬͯ͹ ͸ܭଌͨ͠ৼ෯ͦͷ΋ͷʹͳΔ cos −1 ≤ x ≤ 1 J A f (t) = A 1 ∑∞ n=−∞ |Jn (B)| ∞ ∑ n=−∞ Jn (B) cos (2πt (nωm + ωc)) A (0.5) = 0.1

Slide 53

Slide 53 text

ָثͷԻͷৼ෯͸جԻ෇ۙͰ࠷΋େ͖͘ ԕ͍ഒԻ΄Ͳখ͘͞ͳΔ܏޲͕͋Δ جԻͷৼ෯Λ ʹͯ͠ ԕ͍ഒԻ΄Ͳ࣍਺ͷߴ͍ Λ࢖͏Α͏ʹ͢Δͷ͕ಘࡦ J0 J

Slide 54

Slide 54 text

ָثͷԻͷৼ෯͸جԻ෇ۙͰ࠷΋େ͖͘ ԕ͍ഒԻ΄Ͳখ͘͞ͳΔ܏޲͕͋Δ جԻͷৼ෯Λ ʹͯ͠ ԕ͍ഒԻ΄Ͳ࣍਺ͷߴ͍ Λ࢖͏Α͏ʹ͢Δͷ͕ಘࡦ J0 J ͭ·Γ ͸جԻͷप೾਺ ͸ ͷ੔਺ഒͷ஋ʹͳΔ ωc ωm ωc

Slide 55

Slide 55 text

Λେ͖͗͘͢͠Δͱप೾਺ͷߴ͍ഒԻ͕ՄௌҬΛ௒͑Δ αϯϓϦϯάप೾਺ʹରͯ͠ߴ͗͢ΔഒԻ ͸جԻͷ੔਺ഒͰͳ͍ͱ͜ΖʹϐʔΫΛ࡞Δ ωm 261.63Hz 20kHz 20ωc = ωm 10ωc = ωm 30ωc = ωm ਓؒͷௌ֮Ͱ ฉ͖औΕΔݶք ͜͏ͳΔͱԻ֊Λָ࣋ͭثͱͯ͠੒ཱ͠ͳ͍ҝ ͱ ͷൺ͸ҎԼͰे෼ ωm ωc

Slide 56

Slide 56 text

ͱ ͸ఆ·ͬͨ ͸ߴʑ௨ΓͳͷͰ ֤ Ͱ༩͑ΒΕͨεϖΫτϧʹ࠷΋ۙ͘ͳΔ ΛٻΊΕ͹ྑ͍ A ωc ωm ωm B χϡʔϥϧωοτϫʔΫͱಉ͡ඇઢܗ࠷దԽ໰୊ͳͷͰ ޯ഑๏Ͱ߈ΊΔ

Slide 57

Slide 57 text

جԻͷ੔਺ഒͷ೾ͷৼ෯ͷΈʹண໨͢Δ 3ωc = ωm άϥϯυϐΞϊ J0 (B) J1 (B) J1 (B) J2 (B) J2 (B) J3 (B) J3 (B) J4 (B) J4 (B) J5 (B) J5 (B) J6 (B) D10 = J3 (B)2 − E2 10 L10 = D10 D3 = 0 L3 = E3 ੜ੒෺ ظ଴͢Δग़ྗ Λޡࠩٯ఻೻͢Δ͜ͱͰ ͷमਖ਼ͷྔΛܾఆ͢Δ Dn B

Slide 58

Slide 58 text

جԻͷ੔਺ഒͷ೾ͷৼ෯ͷΈʹண໨͢Δ 3ωc = ωm άϥϯυϐΞϊ J0 (B) J1 (B) J1 (B) J2 (B) J2 (B) J3 (B) J3 (B) J4 (B) J4 (B) J5 (B) J5 (B) J6 (B) D10 = J3 (B)2 − E2 10 L10 = D10 D3 = 0 L3 = E3 ΋ޙͰ࢖͏ͷͰٻΊ͓ͯ͘ 50 ∑ n=1 Ln ʹΑΒͣੜ͡Δޡࠩ B

Slide 59

Slide 59 text

Adam α = 0.001 β1 = 0.9 β2 = 0.999 ϵ = 10−8 mt = β1 mt−1 + (1 − β1) gt vt = β2 vt−1 + (1 − β2) g2 t ̂ mt = mt 1 − βt 1 ̂ vt = vt 1 − βt 2 θt = θt−1 − α ̂ mt ̂ vt + ϵ χϡʔϥϧωοτϫʔΫͷֶशͰ Α͘༻͍ΒΕΔ࠷దԽΞϧΰϦζϜ ࣮૷͕؆୯ͳׂʹͦͦ͜͜ੑೳ͕ྑ͍ ʹ͍ͭͯޡࠩͷޯ഑ ʹରͯ͠ Λ ͚ͩมԽͤ͞Δ θ g θ −α ̂ mt ̂ vt + ϵ

Slide 60

Slide 60 text

Jn (x) = 2 π ∫ π 2 0 sin (x sin ω) sin nωdω (n = 2k + 1|k ∈ ℕ) Jn (x) = 2 π ∫ π 2 0 cos (x sin ω) cos nωdω (n = 2k|k ∈ ℕ) ޡࠩٯ఻೻Λޮ཰Α͘ߦ͏ʹ͸ର৅ͷؔ਺Λඍ෼͢Δඞཁ͕͋Δ ͍ͭ͜͸ඍ෼Ͱ͖Δͷ͔

Slide 61

Slide 61 text

dJn (x) dx = 1 2 (Jn−1 (x) − Jn+1 (x)) Good News! ୈछϕοηϧؔ਺ʹ͸ղੳతʹඍ෼Ͱ͖Δࣄ͕஌ΒΕ͍ͯΔ

Slide 62

Slide 62 text

dJn (x) dx = 1 2 (Jn−1 (x) − Jn+1 (x)) Bad News! ୈछϕοηϧؔ਺ͷඍ෼ʹ͸ୈछϕοηϧؔ਺ؚ͕·Ε͍ͯΔ

Slide 63

Slide 63 text

Jn (x) = 2 π ∫ π 2 0 sin (x sin ω) sin nωdω (n = 2k + 1|k ∈ ℕ) Jn (x) = 2 π ∫ π 2 0 cos (x sin ω) cos nωdω (n = 2k|k ∈ ℕ) ͜ͷ෦෼ʹ໘౗ͳੵ෼ؚ͕·Ε͍ͯΔ ୆ܗެࣜΛ࢖ͬͯ਺஋తʹղ͘͜ͱ͸Ͱ͖Δ͕ ΛճٻΊΔͷʹେྔͷܭࢉ͕ඞཁʹͳΔҝ ద੾ͳ Λ୳͢൓෮ܭࢉͷதͰ΍Γͨ͘ͳ͍ Jn (x) B ͳͥ໰୊͔

Slide 64

Slide 64 text

ϕοηϧؔ਺ͷۙࣅ Tumakov, D.N. Lobachevskii J Math (2019) 40: 1725. https://doi.org/10.1134/S1995080219100287 The Faster Methods for Computing Bessel Functions of the First Kind of an Integer Order with Application to Graphic Processors p0 (x) = 8 x q0 (x) = p (x)2 t0 (x) = x − 0.78539816 J0 (x) = 0.079577472p0 (x) ((0.99999692 − 0.0010731477q0 (x)) cos (t0 (x)) + (0.015624982 + (−0.00014270786 + 0.0000059374342q0) q0 (x)) p0 (x) sin (t0 (x))) p1 (x) = 0.63661977 x q1 (x) = p (x)2 J1 (x) = p (1 − (0.46263771 − 1.1771851q1 (x)) q1 (x)) cos (x − 2.3561945 (0.46263771 − 1.1771851q1 (x)) p1 (x)) Jn (x) = 2 (n − 1) x Jn−1 (x) − Jn−2 (x)

Slide 65

Slide 65 text

ϕοηϧؔ਺ͷۙࣅ Tumakov, D.N. Lobachevskii J Math (2019) 40: 1725. https://doi.org/10.1134/S1995080219100287 The Faster Methods for Computing Bessel Functions of the First Kind of an Integer Order with Application to Graphic Processors Jn (x) = 2 (n − 1) x Jn−1 (x) − Jn−2 (x) ͜ͷۙࣅͷDPPMͳͱ͜Ζ ͭԼͷ࣍਺ ͱ ͭԼͷ࣍਺ ͕ط஌ͷ৔߹ ΋ͷ͘͢͝؆୯ͳܭࢉͰ ͕ٻ·Δ Jn−1 (x) Jn−2 (x) Jn (x) Լͷ࣍਺͔Βܭࢉ͢Δͱര଎Ͱϕοηϧؔ਺ͷ஋͕ٻ·Δ ∴

Slide 66

Slide 66 text

J0 (x)

Slide 67

Slide 67 text

J1 (x)

Slide 68

Slide 68 text

J2 (x)

Slide 69

Slide 69 text

J6 (x)

Slide 70

Slide 70 text

J10 (x) ۙ๣ͰਧͬඈͿ x = 0

Slide 71

Slide 71 text

p0 (x) = 8 x q0 (x) = p (x)2 t0 (x) = x − 0.78539816 J0 (x) = 0.079577472p0 (x) ((0.99999692 − 0.0010731477q0 (x)) cos (t0 (x)) + (0.015624982 + (−0.00014270786 + 0.0000059374342q0) q0 (x)) p0 (x) sin (t0 (x))) p1 (x) = 0.63661977 x q1 (x) = p (x)2 J1 (x) = p (1 − (0.46263771 − 1.1771851q1 (x)) q1 (x)) cos (x − 2.3561945 (0.46263771 − 1.1771851q1 (x)) p1 (x)) Jn (x) = 2 (n − 1) x Jn−1 (x) − Jn−2 (x) ͜͜ ͜͜ ͜͜ ֻ͕͔͍ͬͯΔҝ ۙ๣ͰਧͬඈͿఆΊʹ͋Δ 1 x x = 0

Slide 72

Slide 72 text

Jn (x) = 2(n − 1) x Jn−1 (x) − Jn−2 (x) (x ≥ 2 (n − 1)) Jn (x) = Jn−1 (x) (x < 2 (n − 1)) ݩͷ࿦จͰఏҊ͞Ε͍ͯΔճආํ๏ ͩͬͨΒ1ͭԼͷ࣍਺ͷϕοηϧؔ਺Λͦͷ··࢖͏ x < 2 (n − 1)

Slide 73

Slide 73 text

J0 (x)

Slide 74

Slide 74 text

J1 (x)

Slide 75

Slide 75 text

J2 (x)

Slide 76

Slide 76 text

J6 (x)

Slide 77

Slide 77 text

J10 (x) ਧͬඈͼʹ͘͘͸ͳΔ Ͱ΋ਧͬඈͿ Ͱͷ஋͕߹Θͳ͍ x < 2 (n − 1)

Slide 78

Slide 78 text

ద੾ͳ ͷ୳ࡧ͸ ͜ͷลΓ͔ΒղΛ୳͢ҝ ͜ͷ··Ͱ͸͜ͷۙࣅ͸࢖͑ͳ͍ B

Slide 79

Slide 79 text

ϕοηϧؔ਺ͷۙࣅ ͔Β ·Ͱͷ஋Λଟ߲ࣜͰิؒ͢Δ x = 0 x = n Jn (x) = 2(n − 1) x Jn−1 (x) − Jn−2 (x) (x ≥ n) Jn (x) = an x4 + bn x3 (x < n) an = − Jn (n) n5 + 1 n4 dJn dx (n) bn = Jn (n) 2n3 − 1 n2 dJn dx (n) ͨͩ͠

Slide 80

Slide 80 text

ଟ߲ࣜͷ܎਺Λܾఆ͢ΔͨΊʹ ͱ ͕ཁΔ Jn (n) dJn dx (n) ͜ͷͭͷ஋Λ ͋ͨΓ·Ͱ ࣄલʹٻΊ͓ͯ͘ n = 60 an = − Jn (n) n5 + 1 n4 dJn dx (n) bn = Jn (n) 2n3 − 1 n2 dJn dx (n) n 0 1.000000 0.000000 1 0.440051 0.383960 2 0.351942 0.175971 3 0.308550 0.073205 4 0.279146 0.032248 5 0.255199 0.011946 6 0.245656 0.002787 7 0.233618 -0.004337 8 0.221478 -0.008807 9 0.214564 -0.010998 10 0.207680 -0.012935 Jn (n) dJn dx (n)

Slide 81

Slide 81 text

J0 (x) = 1 − x2 4 + x4 64 − x6 2304 (x < 1) J1 (x) = x 2 − x3 16 + x5 384 − x7 18432 + x9 1474560 (x < 4) ͱ Ͱ ͕খ͍͞৔߹ ୯७ͳςʔϥʔల։ʹ੾Γସ͑Δ J0 J1 x ͜ΕΒΛ࢖ͬͯϕοηϧؔ਺ͷۙࣅ͕ ਧͬඈͿ෦෼ʹ֖Λ͢Δ

Slide 82

Slide 82 text

J0 (x)

Slide 83

Slide 83 text

J1 (x)

Slide 84

Slide 84 text

J2 (x)

Slide 85

Slide 85 text

J6 (x)

Slide 86

Slide 86 text

࣮༻ʹ଱͑Δۙࣅ J10 (x)

Slide 87

Slide 87 text

const auto t0 = std::chrono::steady_clock::now(); for( unsigned int b_ = 0.f; b_ != 400; ++b_ ) { float b = b * 0.1f; for( unsigned int n = 0; n != 60; ++n ) { ifm::bessel_kind1( b, n ); } } const auto t1 = std::chrono::steady_clock::now(); for( unsigned int b_ = 0.f; b_ != 400; ++b_ ) { float b = b * 0.1f; float l1 = 0; float l2 = 0; for( unsigned int n = 0; n != 60; ++n ) { float y = ifm::bessel_kind1_approx_2019( b, n, l1, l2, pre ); l2 = l1; l1 = y; } } const auto t2 = std::chrono::steady_clock::now(); float e0 = float( std::chrono::duration_cast< std::chrono::microseconds >( t1 - t0 ).count() ); float e1 = float( std::chrono::duration_cast< std::chrono::microseconds >( t2 - t1 ).count() ); $ ./bessel_benchmark -b bessel2.mp ୆ܗެࣜ: 0.0484659Mbps(24000 samples in 495194microseconds) ۙࣅࣜ: 269.663Mbps(24000 samples in 89microseconds) 1570෼ׂͷ ୆ܗެࣜʹΑΔܭࢉͱൺֱͯ͠ 5500ഒߴ଎ Mega Bessel Per Second Intel(R) Core(TM) i5-6600 3.3GHz Linux 5.3.7 + gcc 8.3.0 -O2 -march=nativeͰ1ίΞͷΈ࢖༻

Slide 88

Slide 88 text

ϐΞϊͷ৔߹

Slide 89

Slide 89 text

ϐΞϊͷ৔߹ น

Slide 90

Slide 90 text

ϚϦϯόͷ৔߹

Slide 91

Slide 91 text

ϚϦϯόͷ৔߹ น

Slide 92

Slide 92 text

ϚϦϯόͷ৔߹

Slide 93

Slide 93 text

࣌ؒมԽ Τϯϕϩʔϓ͸؇΍͔ʹมԽ͢Δҝ ࣌ࠁ ʹ͍ͭͯٻΊͨ ͸ ࣌ࠁ ͷ ΛٻΊΔࡍͷॳظ஋ͱͯ͠࢖͑Δ t B t + 1 B t t − 1 t − 2 t − 3 t + 1 t + 2 t + 3 Bt Bt Bt+1 Bt+2 Bt−1 Bt−2

Slide 94

Slide 94 text

࣌ؒมԽ Τϯϕϩʔϓ͸؇΍͔ʹมԽ͢Δҝ ࣌ࠁ ʹ͍ͭͯٻΊͨ ͸ ࣌ࠁ ͷ ΛٻΊΔࡍͷॳظ஋ͱͯ͠࢖͑Δ t B t + 1 B t t − 1 t − 2 t − 3 t + 1 t + 2 t + 3 Bt Bt Bt+1 Bt+2 Bt−1 Bt−2 ҰൠతͳFMԻݯ͸ Λ࣌ؒͰมԽͤ͞ΒΕͳ͍ͷͰ ࣌ࠁ Ͱ࠷΋௿͍ Λग़ͨ͠ Λͦͷ··Ҿ͖ܧ͙ ωm t L ωm ωm ωm ωm ωm ωm ωm

Slide 95

Slide 95 text

No content

Slide 96

Slide 96 text

ΞίʔεςΟοΫͳָثͷৼ෯ͷมԽ͸ छྨʹ෼ྨͰ͖Δ ܧଓతʹྗ͕Ճ͑ΒΕΔ ඇݮਰৼಈ ࠷ॳ͚ͩྗ͕Ճ͑ΒΕΔ ݮਰৼಈ

Slide 97

Slide 97 text

Τϯϕϩʔϓਪఆ f (t) = (1 − β) e−αt + β ݮਰৼಈ߲ ඇݮਰৼಈ߲ ೖྗ೾ܗ͔ΒٻΊͨΤϯϕϩʔϓ ͱ ͱ ͜ͷؔ਺ͷग़ྗͷ͕ࠩ࠷খʹͳΔΑ͏ʹ ͱ ΛٻΊΔ A (t) B (t) α β

Slide 98

Slide 98 text

f (t) = (1 − β) e−αt + β ferror (t) = (fexpected (t) − f (t)) 2 dferror (t) dα = 2(1 − β)te−αt ((1 − β)(−e−αt) − β + fexpected (t)) dferror (t) dβ = 2 (e−αt − 1) ((1 − β)(−e−αt) − β + fexpected (t)) ͜Ε΋൓෮ͯ͠ ͱ Λमਖ਼͍͚ͯ͠͹ղ͚Δ α β

Slide 99

Slide 99 text

ղ͚ͨ FFT͔ΒಘͨΤϯϕϩʔϓ͸ ࣌ʑ૯࿨͕1Λ௒͑ΔͷͰ࠷େ஋͕1ʹͳΔΑ͏ʹ εέʔϧ͓ͯ͘͠

Slide 100

Slide 100 text

Τϯϕϩʔϓਪఆ σΟέΠதؒϨϕϧ αεςΠϯϨϕϧ ΞλοΫதؒϨϕϧ ΞλοΫ1 ΞλοΫ2 σΟέΠ1 σΟέΠ2 αεςΠϯ ϦϦʔε Α͋͘Δ'.ԻݯͷΤϯϕϩʔϓ͸ Λஈ֊ͷઢܗͳؔ਺Ͱۙࣅ͢Δ e−αt

Slide 101

Slide 101 text

FYQͱEFDBZʹғ·Εͨ໘ੵͱ FYQͱEFBZʹғ·Εͨ໘ੵͱ FYQͱTVTUBJOʹғ·Εͨ໘ੵͷ ࿨͕࠷খͱͳΔ఺ ͱ ΛٻΊΔ n m n m

Slide 102

Slide 102 text

Τϯϕϩʔϓਪఆ flinear (t, n, m) = (f (m) − f (n)) m − n t + nf (m) − mf (n) n − m fconst (t, n, m) = nf (m) − mf (n) n − m ferror (n, m, l) = ∫ n 0 flinear (t,0,n) − f (t) dt + ∫ m n flinear (t, n, m) − f (t) dt + ∫ l m fconst (t, m, l) − f (t) dt ͱ ʹ͍ͭͯͷޯ഑ΛٻΊ ஋Λमਖ਼͍͚ͯ͠͹ྑ͍ n m ݮਰৼಈ͢Δָثͷ৔߹ Λ ʹ Λαϯϓϧ௕ݻఆ͢Δ fconst 0 l

Slide 103

Slide 103 text

ୈ12ճΧʔωϧ/VM୳ݕୂ Ҩ఻తFMԻݯ(2015೥)ΑΓ ຊ෺ͷϐΞϊͷԻ '.ԻݯͷϐΞϊͷԻ ܭࢉ࣌ؒ 2࣌ؒ43෼42ඵ/keyframe ܭࢉ؀ڥ
 Intel Core i5-6600(Skylake) 3.3GHz 4ίΞ nvidia GeForceGTX1070 1.68GHz 1920CUDAίΞ FMԻݯͷ࢓༷ 4ΦϖϨʔλϑΟʔυόοΫ෇͖ ιϑτ΢ΣΞFMԻݯ

Slide 104

Slide 104 text

࣮ࡍͷϐΞϊͷԻ χϡʔϥϧFMԻݯ Ҩ఻తFMԻݯ ϐΞϊͬΆ͘ฉ͑͜Δ෦෼΋͋Δ͕ Ҩ఻తFMԻݯͱൺ΂Δͱ͠ΐͬͺ͍ ϐΞϊ ݁Ռ ୈ8ճΧʔωϧ/VM୳ݕୂ@ؔ੢ χϡʔϥϧFMԻݯ(2017೥)ΑΓ ܭࢉ࣌ؒ 3ඵ/keyframe ܭࢉ؀ڥ
 Intel Core i5-6600(Skylake) 3.3GHz 4ίΞ nvidia GeForceGTX1070 1.68GHz 1920CUDAίΞ FMԻݯͷ࢓༷ 8ΦϖϨʔλϑΟʔυόοΫ෇͖ ιϑτ΢ΣΞFMԻݯ

Slide 105

Slide 105 text

ຊ෺ͷϐΞϊ 2ΦϖϨʔλFMԻݯϐΞϊ ܭࢉ࣌ؒ 4෼1ඵ/keyframe ܭࢉ؀ڥ
 Intel Core i5-6600(Skylake) 3.3GHz 4ίΞ CPUͷΈ࢖༻ FMԻݯͷ࢓༷ 2ΦϖϨʔλϑΟʔυόοΫͳ͠ ιϑτ΢ΣΞFMԻݯ

Slide 106

Slide 106 text

ຊ෺ͷϚϦϯό 2ΦϖϨʔλFMԻݯϚϦϯό

Slide 107

Slide 107 text

ຊ෺ͷόΠΦϦϯ 2ΦϖϨʔλFMԻݯόΠΦϦϯ

Slide 108

Slide 108 text

3ΦϖϨʔλͷ৔߹ sin (x) cos (x) 2πω1 t + × E1 × E0 ग़ྗ 2πω0 × × 2πω2 E2 × sin (x) × + f (t) = E0 cos (2πω0 t + E1 sin (2πω1 t) + E2 sin (2πω2 t)) f (t) = E0 ∞ ∑ n1 =−∞ ∞ ∑ n2 =−∞ Jn1 (E1) Jn2 (E2) cos (2πt (n1 ω1 + n2 ω2 + ω0)) ҰԠղ͚Δ ΋ͬͱෳࡶͳFMԻݯʹ͍ͭͯղ͚ͳ͍ͷ?

Slide 109

Slide 109 text

f (t) = E0 ∞ ∑ n1 =−∞ ∞ ∑ n2 =−∞ Jn1 (E1) Jn2 (E2) cos (2πt (n1 ω1 + n2 ω2 + ω0)) ͜Εͱ ͜Εͱ ͜Εͱ ͜ΕΛ ݟ͚ͭΔඞཁ͕͋Δ

Slide 110

Slide 110 text

͜ͷํ๏ͩͱඞཁͳࢼߦճ਺͕(op਺-1)৐Ͱ૿͑Δ

Slide 111

Slide 111 text

͜ͷ͋ͨΓ͕ͬͦ͝Γফ͍͑ͯΔͷ͸ԿͰ

Slide 112

Slide 112 text

ഒԻ͕ظ଴͢Δप೾਺͔Β͔ᷮʹͣΕͯग़͍ͯΔ ޡࠩ͸ظ଴͢Δप೾਺ͷৼ෯͚ͩΛ࢖ͬͯٻΊ͍ͯΔͨΊ ͣΕͯग़͍ͯΔഒԻ͸ग़͍ͯͳ͍ͷͱಉ͡ѻ͍ʹͳΔ ΞίʔεςΟοΫͳָثͳΒ ͲΜͳʹ͖ͪΜͱௐ཯ͯ͋ͬͯ͠΋ ߴप೾ͷഒԻͰ͸͍͘Β͔ͣΕΔ

Slide 113

Slide 113 text

·ͱΊ FMԻݯ͸ղ͚Δ ඇઢܗ࠷దԽ໰୊ͳͷͰ χϡʔϥϧωοτϫʔΫͷֶशͱಉ͡ख๏͕ޮ͘ ͔͠͠3ΦϖϨʔλҎ্ʹରԠ͢Δʹ͸ ΋͏গ͠޻෉͕ඞཁ