Scipy Finn topper

Scipy Finn topper

Python-programmeringsspråk er et programmeringsspråk på høyt nivå som tilbyr et bredt spekter av nyttige funksjoner for alle slags matematiske, statistiske og vitenskapelige beregninger. Vi kan utføre enhver enkel så vel som kompleks funksjon ved å bruke funksjonene og metodene til Python -biblioteker. Denne guiden tar for seg Scipy Find_peaks () -funksjonen for signalbehandlingsanalyse. Mer spesifikt fokuserer denne guiden på hvordan du beregner og identifiserer toppene som er innlemmet i et signal.

Hva er scipy finn topper?

Scipy -biblioteket tilbyr en Find_peaks () -funksjon som skal brukes til å finne maksima, minima eller topp av et signal. Find_peaks () -funksjonen brukes med signalene for å analysere dem. Det brukes til å finne signalets topp, minima eller maksima for en matematisk funksjon. Den finner toppene i de gitte signalene basert på toppegenskaper. Ved å sammenligne verdiene til de nærliggende verdiene, analyserer denne scipy-funksjonen dataene i form av en endimensjonal matrise for å identifisere alle lokale maksima. La oss forstå syntaks for Find_peaks () -funksjonen og gå videre til eksemplet for å lære hvordan Find_peaks () -funksjonen fungerer i et Python -program.

Syntaks av scipy Finn toppfunksjon

Vi er i ferd med å utnytte Find_peaks () -funksjonen levert av Scipy -biblioteket og signalpakken. Som vi tidligere har diskutert, brukes Find_peaks () -funksjonen til å behandle et spesifikt signal for å trekke ut intensiteten eller plasseringen av flere signaltopper. Se syntaks for følgende funksjon:


"Peak" -parameteren brukes til å definere signalet med topper. "Høyde" -parameteren brukes til å definere høyden på toppene. "Terskel" -parameteren er en ndarray eller bare et tall som definerer terskelen til toppene. "Avstand" -parameteren brukes til å definere den minste horisontale avstanden mellom nabopeksene. "Prominens" -parameteren brukes til å definere toppen av topper. "Bredde" -parameteren definerer bredden på toppene. "WLEN" -parameteren brukes til å beregne toppen av toppen. Parameteren "Rel_Height" brukes til å beregne toppens bredde. Til slutt brukes parameteren "Plateau_Size" for å definere den flate toppen av toppene. Find_peaks () -funksjonen returnerer en ndarray som inneholder alle toppindeksene som tilfredsstiller de gitte forholdene sammen med deres egenskaper. La oss nå utforske noen nyttige programmeringseksempler for å lære å implementere Find_peaks -funksjonen.

Eksempel 1:

Fra økonomi til datavitenskap til elektronikk, arbeid med signalets topper har grunnleggende betydning på alle fremtredende felt. Som tidligere diskutert, handler ikke toppfunn bare om å finne toppen av et elektronisk signal, men minima eller maksima for en matematisk funksjon. Siden vi vet viktigheten av å ha en pålitelig og rask funksjon som hjelper oss. Tenk på prøveprogrammet i følgende kodebit:

Importer numpy som NP
Importer matplotlib.Pyplot som Plt
Fra scipy.Signalimport find_peaks
#****** Dataerklæring ******
x = np.Linspace (0, 100, 200)
y = x*np.tilfeldig.Randn (200) ** 2
#****** Peak Finding ******
topper = find_peaks (y, høyde = 2, terskel = 2, avstand = 2)
H = topper [1] ['Peak_Heights']
pp = x [topper [0]]
#****** Minima Finding ******
y2 = y*-2
minima = find_peaks (y2)
min_pos = x [minima [0]]
min_height = y2 [minima [0]]
#****** Dataplotting ******
plt.plot (x, y)
plt.spredning (pp, h, color = 'r', label = 'maxima')
plt.spredning (min_pos, min_height*-1, label = 'minima')
plt.legende()
plt.Nett()
plt.forestilling()

Tre biblioteker importeres til programmet - Numpy, Scipy og Matplotlib. Numpy -biblioteket brukes til å erklære Numpy -matriser. Scipy -biblioteket brukes til å kalle Find_peaks () -funksjonen. Og matplotlib -biblioteket brukes til å plotte grafen.

Som du ser, grupperte vi kodelinjene i henhold til funksjonen de utfører. Først har vi delen "Data Declaration" der vi definerer dataene for Find_peaks () -funksjonen. Den andre delen er "Peak Finding" der vi bruker Find_peaks () -funksjonen ved å passere de nylig erklærte dataene.

Den tredje delen av programmet er "Minima Finding" der vi beregner minima og maksima for de gitte dataene. Den siste delen er "Data Plotting" der vi plotter dataene ved å bruke PLT.plot () og PLT.show () funksjoner. For å se grafen generert av det gitte programmet, se følgende genererte utgang:

Eksempel 2:

Å jobbe med signaler er ikke bare viktig for datavitenskap eller elektronikkfelt, men det kan også brukes i det medisinske feltet. Elektronisk signalbehandling er mest brukt og har høyere betydning i det medisinske feltet enn i noe annet felt. I dette eksemplet vil vi utnytte elektrokardiogramfunksjonen for å tolke et elektronisk signal. Se prøvekoden i følgende kodebit:

Importer matplotlib.Pyplot som Plt
Fra scipy.Signalimport find_peaks
Fra scipy.MISC IMPORT ELECTROCARDIOGRAM
#****** Peak Finding ******
x = elektrokardiogram () [1000: 3000]
topper, _ = find_peaks (x, høyde = 1)
#****** Dataplotting ******
plt.plot (x)
plt.Plot (Peaks, X [Peaks], "X")
plt.Plott (NP.Zeros_ligike (x), "-", color = "grå")
plt.forestilling()


Matplotlib -biblioteket er inkludert i programmet for å plotte grafen. Scipy -biblioteket brukes til å ringe signalet og MISC -pakken slik at Find_peaks og Electrrocardiogram -funksjonene kan kalles fra den respektive pakken. Nå, akkurat som i forrige eksempel, segmenterer vi programmet i seksjoner. Den første delen er delen "Peak Finding" der vi bruker Find_peaks () og elektrokardiogrammet () for å finne toppene til det genererte elektrokardiogrammet. Den siste delen er delen "Data Plotting" der vi plotter grafen. La oss nå se den plottede grafen i følgende utgang:

Eksempel 3:

La oss løpe gjennom et annet eksempel slik at du tydelig kan se hvordan FindPeaks () -funksjonen fungerer. Tenk på følgekoden:

Importer numpy som NP
fra scipy importsignal
Importer matplotlib.Pyplot som Plt
#****** Dataerklæring ******
data = np.Linspace (0, 4 * NP.pi, 100)
sig = np.sin (data) + 0.4 * np.Synd (1.8 * data)
#****** Peak Finding ******
sp, _ = signal.find_peaks (sig)
promin = signal.Peak_Prominences (Sig, SP) [0]
h = sig [sp] - promin
#****** Dataplotting ******
plt.plot (sig)
plt.plot (sp, sig [sp], "*")
plt.VLINES (X = SP, YMIN = H, YMAX = Sig [SP])
plt.forestilling()


Igjen er programmet segmentert i forskjellige seksjoner, siden hver seksjon utfører en annen funksjon. Dataene er deklarert i delen "Data Declaration". Peak Finding -funksjonen utføres i delen "Peak Finding". Til slutt er grafen plottet i delen "Dataplotting". La oss nå sjekke den plottede grafen i følgende utgang:

Konklusjon

Denne guiden tar for seg behandlingen og analysen av signalene ved hjelp av Find_peaks () -funksjonen. Find_peaks () er en signalbehandlingsfunksjon definert i Scipy Library of Python. Det brukes til å finne toppene til signalet, maksima og minima av enhver matematisk funksjon. Vi utforsket noen enkle og komplekse eksempler for å forstå hvordan Find_peaks () -funksjonen kan implementeres i et Python -program. Vi fokuserte spesielt på å beregne og finne toppene som er inneholdt i de gitte dataene og ikke på å finne maksima eller minima for de gitte dataene.