FM放送とマルチパスを適応フィルタで極めてみた / Solving multipath distortion of FM broadcast by adaptive filters

FM放送とマルチパスを適応フィルタで極めてみた / Solving multipath distortion of FM broadcast by adaptive filters

さくらの夕べ 研究所ナイト 2020年1月16日 発表原稿

Fc3b290038a97f5df6fec7660c357ef4?s=128

Kenji Rikitake

January 16, 2020
Tweet

Transcript

  1. FM์ૹͱϚϧνύεΛ దԠϑΟϧλͰۃΊͯΈͨ Kenji Rikitake / Sakura Lab Night 16-JAN-2020 1

  2. Kenji Rikitake Γ͖͚ͨ ͚Μ͡ ྗ෢ ݈࣍ 16-JAN-2020 ͘͞Βͷ༦΂ ݚڀॴφΠτ Sakura

    Internet Fukuoka Office Fukuoka City, Fukuoka, Japan @jj1bdx Kenji Rikitake / Sakura Lab Night 16-JAN-2020 2
  3. ٕज़࢜ʢ৘ใ޻ֶ෦໳ʣ ྗ෢݈ٕ࣍ज़࢜ࣄ຿ॴ ॴ௕ ϖύϘݚڀॴ ٬һݚڀһ ΞϚνϡΞແઢྺ 44೥ Kenji Rikitake /

    Sakura Lab Night 16-JAN-2020 3
  4. FM์ૹ͸ϚϧνύεׯবͰԻ͕Ԛ͘ͳΔ • ෳ਺ܦ࿏ͷ൓ࣹ೾͕߹੒͞Εͯ೾ܗ͕ཚΕΔ • ৼ෯Ұఆͷ͸͕ͣৼ෯͕มԽ͢Δ • ৼ෯ͷมԽ͸ଈࠁҐ૬ͷ࿪Έ • Ґ૬͕࿪Ήͱͱͯ΋ෆշͳԻ͕͢Δ Kenji

    Rikitake / Sakura Lab Night 16-JAN-2020 4
  5. Kenji Rikitake / Sakura Lab Night 16-JAN-2020 5

  6. ΍ͬͯ͸͍͚ͳ͍͜ͱ ৼ෯Ұఆʹڧ੍ͯ͠΋࿪Έ͸ফ͑ͳ͍! Ϧϛολ͸ແҙຯ Kenji Rikitake / Sakura Lab Night 16-JAN-2020

    6
  7. ݪཧʹ஧࣮ʹߟ͑Δ ෳ਺ͷ஗Ԇ৴߸͕ׯব͍ͯ͠ΔͷͰ͋Ε͹ɺ ͦͷׯবͷٯԋࢉΛߦͬͯऔΓআ͘ Kenji Rikitake / Sakura Lab Night 16-JAN-2020

    7
  8. Kenji Rikitake / Sakura Lab Night 16-JAN-2020 8

  9. Kenji Rikitake / Sakura Lab Night 16-JAN-2020 9

  10. ϚϧνύεׯবҎલͷঢ়ଶʹ໭͢ʹ͸ • ஗ԆͱՃࢉ͸FIRϑΟϧλͰ࣮ݱͰ͖Δ • ൓ࣹ೾ͷٯԋࢉΛ΍Ε͹Α͍ • LMS๏ͰదԠϑΟϧλ܎਺Λܾఆ • ܎਺ͷܾఆ৚݅: ৼ෯Ұఆʹ໭͢

    Kenji Rikitake / Sakura Lab Night 16-JAN-2020 10
  11. దԠϑΟϧλͷ࣮૷ྫ 1980೥୅ʹ࿦จൃද 1 ྛً඙ࢯʹΑΔFMDDC-3 ྗ෢ʹΑΔairspy-fmradion 1 ๬݄ ޹ࢤ, Ӌௗ ޫढ़,

    దԠσΟδλϧϑΟϧλʹΑΔFMϚϧνύεͻͣΈࣗಈআڈͷҰํࣜ, ςϨϏδϣϯֶձࢽ, 1985, 39 ר, 3 ߸, p. 228-234, ެ։೔ 2011/03/14, Online ISSN 1884-9652, Print ISSN 0386-6831, h>ps:/ /doi.org/ 10.3169/itej1978.39.228, h>ps:/ /www.jstage.jst.go.jp/arHcle/itej1978/39/3/39_3_228/_arHcle/-char/ja Kenji Rikitake / Sakura Lab Night 16-JAN-2020 11
  12. దԠϑΟϧλΛVOLKͰ࠷దԽ • ίϯύΠϥʹ೚ͤΔͱݶք͕͋Δ • VOLK: SIMD໋ྩద༻ϥΠϒϥϦ h-p:/ /libvolk.org/ • ϧʔϓͰॲཧͰ͖Δ΋ͷΛSIMDʹ͢Δ

    • ੵ࿨ԋࢉ͸6ഒͷߴ଎Խ2 2 Kaby Lake, volk_32fc_x2_dot_prod_32fc(), generic -> u_avx_fma Kenji Rikitake / Sakura Lab Night 16-JAN-2020 12
  13. #if !VOLK for (unsigned int i = 0; i <

    m_filter_order; i++) { output += m_state[i] * m_coeff[i]; } #else // VOLK volk_32fc_x2_dot_prod_32fc(&output, m_state.data(), m_coeff.data(), m_filter_order); #endif // VOLK Kenji Rikitake / Sakura Lab Night 16-JAN-2020 13
  14. ྗ෢ͷ࣮૷: airspy-fmradion Airspy HF+΍RTL-SDRͱMac΍Raspberry Piͷ૊Έ߹ΘͤͰಈ࡞ ߴڃFMνϡʔφʹඖఢ FMԕڑ཭ड৴ʹ΋ޮՌ ઈࢍ։ൃத h"ps:/ /github.com/jj1bdx/airspy-fmradion

    Kenji Rikitake / Sakura Lab Night 16-JAN-2020 14
  15. Thank you Graphics credits: • Audacity simula.on: Kenji Rikitake •

    Mul.path impulse response: I, Cantalamessa, h>ps:/ / commons.wikimedia.org/wiki/ File:Mul.path_impulse_response.png from Wikimedia Commons, licensed CC BY 2.5 Kenji Rikitake / Sakura Lab Night 16-JAN-2020 15