Bagaimana untuk Mencari Puncak Penting dalam Python Menggunakan Fungsi find_peaks SciPy?

DDD
Lepaskan: 2024-10-22 20:33:13
asal
267 orang telah melayarinya

How to Find Significant Peaks in Python Using SciPy's find_peaks Function?

Mencari Puncak dalam Python/SciPy

Mencari puncak dalam data ialah tugas biasa dalam pelbagai bidang, termasuk pemprosesan isyarat, analisis imej dan analisis data. Python menyediakan beberapa pakej dan fungsi untuk pengesanan puncak, termasuk fungsi scipy.signal.find_peaks SciPy.

Algoritma Pencarian Puncak SciPy

Fungsi find_peaks mengambil tatasusunan 1D sebagai input dan mengembalikan indeks puncak. Ia menggunakan algoritma pencarian puncak yang mengesan puncak berdasarkan beberapa parameter:

  • lebar: Pemisahan minimum antara puncak dalam sampel.
  • ambang: Ambang amplitud minimum untuk pengesanan puncak.
  • jarak: Jarak minimum antara puncak berturut-turut.
  • penonjolan: Penonjolan topografi, yang mengukur ketinggian relatif puncak berbanding dengan persekitarannya.

Penonjolan untuk Penolakan Bunyi

Parameter penonjolan amat berguna untuk membezakan puncak yang ketara daripada puncak yang disebabkan oleh hingar . Penonjolan ditakrifkan sebagai penurunan ketinggian minimum untuk pergi dari puncak ke mana-mana rupa bumi yang lebih tinggi. Dengan menetapkan ambang penonjolan yang tinggi, algoritma boleh menapis dengan berkesan puncak kecil yang disebabkan oleh hingar.

Contoh Penggunaan

Kod berikut menunjukkan pencarian puncak dalam frekuensi yang bising -mempelbagaikan sinusoid menggunakan fungsi find_peaks:

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import find_peaks

x = np.sin(2*np.pi*(2**np.linspace(2,10,1000))*np.arange(1000)/48000) + np.random.normal(0, 1, 1000) * 0.15
peaks_prominence, _ = find_peaks(x, prominence=1)

plt.plot(x)
plt.plot(peaks_prominence, x[peaks_prominence], "ob")
plt.legend(['Signal', 'Peaks (prominence)'])
plt.show()</code>
Salin selepas log masuk

Seperti yang ditunjukkan dalam plot, fungsi find_peaks menemui puncak dengan amplitud tinggi dan penonjolan, dengan berkesan menapis puncak yang disebabkan oleh hingar.

Pilihan Pencarian Puncak Lain

Selain find_peaks, SciPy juga menyediakan fungsi mencari puncak lain, seperti peak_widths dan argrelmax. Fungsi ini mungkin lebih sesuai untuk aplikasi atau pelarasan tertentu.

Kesimpulan

Fungsi scipy.signal.find_peaks SciPy menyediakan penyelesaian yang mantap dan serba boleh untuk pencarian puncak dalam Python . Parameter boleh larasnya, termasuk penonjolan, membolehkan penyesuaian untuk mengesan puncak yang ketara dalam pelbagai jenis data.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Puncak Penting dalam Python Menggunakan Fungsi find_peaks SciPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!