ForHosting KIT · Matematica

Calcolatore di convoluzione

Faccia scorrere una sequenza sull'altra e sommi i prodotti in ogni posizione: [1; 2; 3] con [0,5; 0,5] dà [0,5; 1,5; 2,5; 1,5]. Tutte le sovrapposizioni parziali restano, quindi il risultato ha n + m − 1 valori. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Primo testo
1, 2, 3
Secondo testo
0,5, 0,5
Ottiene
Lunghezza di a
3
Lunghezza di b
2
Lunghezza
4
Sequenza
0,5, 1,5, 2,5, 1,5

La convoluzione discreta è l'operazione fondamentale dell'elaborazione dei segnali e della matematica applicata: fa scorrere una sequenza finita sull'altra e, a ogni sovrapposizione, moltiplica i valori allineati e somma i prodotti. Date due sequenze a di lunghezza n e b di lunghezza m, questo calcolatore restituisce la loro convoluzione lineare completa, una nuova sequenza di lunghezza n più m meno uno il cui valore k-esimo è la somma di a[i] per b[j] su ogni coppia di indici con i più j uguale a k. È lo stesso calcolo alla base del filtraggio FIR, delle medie mobili, della moltiplicazione di polinomi e delle distribuzioni di probabilità delle somme di dadi indipendenti. Entrambe le sequenze devono contenere almeno un valore e ogni valore deve essere un numero finito; le sequenze vuote e le voci non finite come NaN o Infinity vengono rifiutate con un errore di validazione chiaro.

Cosa significa la convoluzione discreta e come si calcola

La convoluzione risponde a una domanda semplice: se si ribalta una sequenza, la si fa scorrere sull'altra e, a ogni allineamento, si moltiplicano le coppie sovrapposte e si sommano i prodotti, quale numero si legge in ogni posizione? Formalmente, per sequenze a di lunghezza n e b di lunghezza m, la convoluzione c uguale ad a asterisco b è la sequenza di lunghezza n più m meno uno definita da c[k] uguale alla somma di a[i] per b[k meno i] su ogni i valido.

Un esempio concreto lo rende tangibile: convolvere [1, 2, 3] con [0.5, 0.5] dà [0.5, 1.5, 2.5, 1.5], perché ogni campione in uscita è la media di un campione in ingresso con il suo vicino, con pesi dimezzati ai bordi. Questa modalità «completa», quella restituita da questo strumento, conserva tutte le sovrapposizioni parziali, comprese le posizioni di contatto singolo alle due estremità.

L'algoritmo diretto qui impiegato esegue n per m passi di moltiplicazione e accumulo, il che è istantaneo per le sequenze usate nella didattica, nella progettazione di filtri e nell'analisi dei dati. Vale la pena sapere che la convoluzione è commutativa, quindi a asterisco b è uguale a b asterisco a, e associativa, per cui smussamenti concatenati possono essere riordinati senza cambiare il risultato. L'operazione inoltre si distribuisce sull'addizione, motivo per cui la teoria dei sistemi lineari si fonda così tanto su di essa.

Input, limiti e regole di validazione

Il calcolatore accetta due campi, a e b, ciascuno un array non vuoto di numeri. I valori possono essere interi, decimali o negativi, e le stringhe numeriche in notazione scientifica come 1.5e-3 vengono convertite in modo sicuro. Due regole rigide proteggono il contratto.

Prima: nessuna sequenza può essere vuota, perché un input di lunghezza zero non ha convoluzione e viene rifiutato invece di essere trattato silenziosamente come un impulso nullo. Seconda: ogni elemento deve essere un numero finito; NaN, Infinity e i valori che andrebbero in overflow verso risultati non finiti durante l'accumulo vengono rifiutati con un messaggio che nomina il campo e l'indice colpevoli. Ogni sequenza è limitata a 4096 elementi, il che mantiene il ciclo diretto O(n·m) comodamente entro il budget di calcolo coprendo tutti gli usi didattici e ingegneristici realistici.

Dove si usa la convoluzione nella pratica

La convoluzione compare in molti più luoghi di quanto il nome suggerisca. Nell'elaborazione digitale dei segnali è il modo in cui si applica un filtro a risposta finita all'impulso: il kernel b contiene i pesi dei coefficienti e l'uscita è il segnale filtrato, quindi una media mobile di ampiezza tre è semplicemente la convoluzione con [1/3, 1/3, 1/3].

In probabilità, la distribuzione della somma di due variabili casuali discrete indipendenti è la convoluzione delle loro funzioni di massa; convolvere la distribuzione uniforme di un dado con se stessa produce la nota distribuzione triangolare di due dadi. In algebra, moltiplicare due polinomi è esattamente convolvere le loro liste di coefficienti, il che rende questo strumento un verificatore rapido per i compiti simbolici. Nell'elaborazione delle immagini, i kernel bidimensionali separabili si applicano come due convoluzioni unidimensionali in sequenza.

Persino l'eco e il riverbero nell'audio sono convoluzioni con una risposta all'impulso registrata in una stanza reale. Ovunque l'uscita di un sistema sia una sovrapposizione traslata e scalata del suo ingresso, la convoluzione è l'operazione che la descrive.

Applicare un filtro FIR a un segnale campionato

Inserisca i suoi campioni come sequenza a e i pesi dei coefficienti del filtro come sequenza b per ottenere l'uscita filtrata. Un kernel di smussamento come [0.25, 0.5, 0.25] elimina il rumore ad alta frequenza senza alcuna libreria di elaborazione dei segnali.

Distribuzione della somma di dadi

Convolva la funzione di massa di probabilità di un dado equo con se stessa per ottenere le probabilità esatte della somma di due dadi, e convolva di nuovo per tre dadi. Ogni passo è una chiamata con numeri finiti e verificabili.

Moltiplicare polinomi con verifica manuale

Poiché la moltiplicazione di polinomi è la convoluzione delle liste di coefficienti, inserisca i coefficienti di entrambi i fattori e confronti la sequenza in uscita con il suo sviluppo simbolico per cogliere all'istante errori di segno e di allineamento.

Qual è la lunghezza della sequenza convoluta?

Se la sequenza a ha n valori e la sequenza b ne ha m, la convoluzione completa ne ha n + m - 1.

L'ordine delle due sequenze è importante?

Per convenzione, il segnale più lungo va in a e il kernel più corto in b.

Perché il mio input è stato rifiutato?

Le due regole rigide sono: nessuna sequenza può essere vuota e ogni elemento deve essere un numero finito. NaN, Infinity o i risultati che vanno in overflow durante l'accumulo vengono rifiutati con un errore che nomina il campo e l'indice del valore colpevole.

È una convoluzione circolare o lineare?

Questo strumento calcola la convoluzione lineare completa con riempimento di zeri alle due estremità, lo stesso risultato che otterrebbe con la somma diretta. Non ripiega le sequenze come fa la convoluzione circolare (ciclica).

C'è un limite di dimensione?

Ogni sequenza può contenere fino a 4096 numeri finiti.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/math/convolution

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/math/convolution \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"a":[1,2,3],"b":[0.5,0.5]}'
{
  "a": [
    1,
    2,
    3
  ],
  "b": [
    0.5,
    0.5
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.convolution",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

max_items4096
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Lo strumento gratuito del browser e l'API a pagamento eseguono la stessa funzione pura, quindi i risultati non divergono mai tra i canali.

Input, limiti e regole di validazione

L'oggetto in uscita riporta length_a, length_b, la lunghezza dell'output e la sequenza convoluta stessa sotto la chiave sequence, così gli script possono verificare le dimensioni senza ricalcolarle.

Dove si usa la convoluzione nella pratica

Il percorso API costa $0.002 per richiesta, mentre lo strumento del browser esegue la stessa matematica gratuitamente.

Quanto costa l'API?

Il calcolatore del browser è gratuito e illimitato. Chiamare la stessa capacità tramite l'API costa $0.002 per richiesta; entrambi i canali eseguono la stessa funzione deterministica.

Leggi la documentazione completa del KIT →