Qual è la trasformata sparsa di Fourier?


46

Il MIT ha recentemente fatto un po 'di rumore su un nuovo algoritmo che viene pubblicizzato come una trasformata di Fourier più veloce che funziona su particolari tipi di segnali, ad esempio: " Trasformata di Fourier più veloce nominata una delle tecnologie emergenti più importanti del mondo ". La rivista MIT Technology Review dice :

Con il nuovo algoritmo, chiamato sparse trasformata di Fourier (SFT), i flussi di dati possono essere elaborati da 10 a 100 volte più velocemente di quanto fosse possibile con FFT. L'accelerazione può verificarsi perché le informazioni a cui teniamo di più hanno una grande struttura: la musica non è un rumore casuale. Questi segnali significativi in ​​genere hanno solo una frazione dei possibili valori che un segnale potrebbe assumere; il termine tecnico per questo è che l'informazione è "scarsa". Poiché l'algoritmo SFT non è progettato per funzionare con tutti i possibili flussi di dati, può prendere alcune scorciatoie non altrimenti disponibili. In teoria, un algoritmo in grado di gestire solo segnali sparsi è molto più limitato rispetto alla FFT. Ma "la scarsità è ovunque", sottolinea il coinventore Katabi, professore di ingegneria elettrica e informatica. "È in natura; è ' s nei segnali video; è nei segnali audio ".

Qualcuno potrebbe fornire una spiegazione più tecnica di ciò che l'algoritmo è effettivamente e dove potrebbe essere applicabile?

EDIT: alcuni link:

Risposte:


40

L'idea dell'algoritmo è questa: supponiamo di avere un segnale lunghezza che è scarso nel dominio della frequenza. Ciò significa che se si calcolasse la sua trasformata discreta di Fourier , ci sarebbe un piccolo numero di output che sono diversi da zero; l'altro è trascurabile. Un modo per accedere alle uscite che si desidera è utilizzare FFT sull'intera sequenza, quindi selezionare i valori zero.NkNNkkk

L'algoritmo di trasformata di Fourier sparso qui presentato è una tecnica per calcolare quei output con una complessità inferiore rispetto al metodo basato su FFT. Essenzialmente, poiché gli output di sono zero, è possibile risparmiare qualche sforzo prendendo scorciatoie all'interno dell'algoritmo per non generare nemmeno quei valori di risultato. Mentre la FFT ha una complessità di , l'algoritmo sparse ha una complessità potenzialmente inferiore di per il caso dello spettro sparse.kNkO(nlogn)O(klogn)

Per il caso più generale, in cui lo spettro è "tipo di rado" ma ci sono più di valori diversi da zero (ad esempio per un numero di toni incorporati nel rumore), presentano una variazione dell'algoritmo che stima le uscite più grandi, con una complessità temporale di , che potrebbe anche essere meno complessa della FFT.kkO(klognlognk)

Secondo un grafico dei loro risultati (riprodotto nell'immagine seguente), il punto di crossover per prestazioni migliori rispetto a FFTW (una libreria FFT ottimizzata, realizzata da alcuni altri ragazzi del MIT) è intorno al punto in cui solo -th to -th dei coefficienti di trasformazione di output sono diversi da zero. Inoltre, in questa presentazione indicano che l'algoritmo sparse fornisce prestazioni migliori quando .12111210Nk[2000,106]

inserisci qui la descrizione dell'immagine

Queste condizioni limitano l'applicabilità dell'algoritmo ai casi in cui si sa che è probabile che vi siano pochi picchi significativamente grandi nello spettro di un segnale. Un esempio che citano sul loro sito Web è che, in media, blocchi di pixel 8 per 8 spesso usati nella compressione di immagini e video sono quasi del 90% sparsi nel dominio della frequenza e quindi potrebbero trarre vantaggio da un algoritmo che ha sfruttato quella proprietà. Quel livello di sparsità non sembra quadrare con lo spazio dell'applicazione per questo particolare algoritmo, quindi potrebbe essere solo un esempio illustrativo.

Ho bisogno di leggere un po 'di più la letteratura per avere un'idea migliore di come una tale tecnica sia utile per problemi del mondo reale, ma per alcune classi di applicazioni, potrebbe adattarsi.


2
Quindi è fondamentalmente un FFT con perdita di dati? Come un codificatore MP3?
endolith

3
@endolith: Non sono sicuro che la metterei così. Forse più analogo a un algoritmo FFT eliminato che calcola solo un sottoinsieme delle uscite. L'affermazione è che se il segnale di ingresso è -sparse, le uscite vengono calcolate esattamente. kk
Jason R,

Mi chiedo come vada contro l'algoritmo goertzel (o una loro famiglia). Sembra che l'unica differenza sia che in goertzel sai cosa stai cercando per iniziare.
Spacey,

5
@endolith: la compressione MP3 è in perdita perché i coefficienti sono quantizzati; non perché vengono mantenuti solo i coefficienti k superiori. Sparse FFT = "qual è la rappresentazione dei coefficienti k che minimizza la differenza con il segnale di ingresso". Coding of a mp3 frame = "quali sono i coefficienti e i livelli di quantizzazione quantizzati che minimizzano l'errore (percettivo) dato un budget di N bit per la memorizzazione dei coefficienti e dei fattori di scala".
Pichenettes,

1
Quando vengono gettati via, questo è un effetto collaterale della quantizzazione (il valore viene arrotondato a 0)
pichenettes,

7

Non ho letto il documento su sFFT, ma la mia sensazione è che l'idea di fissare la FFT dietro sta sfruttando il precedente di k-sparsity. Quindi, non è necessario calcolare tutte le voci dei coefficienti FFT, invece, calcolandone solo k. Ecco perché per il segnale k-sparse, la complessità è O (klog n) invece di O (nlog n) per FFT convenzionale.

In ogni caso, per quanto riguarda i commenti di @rcmpton, dicendo "L'idea alla base del rilevamento compresso è che è possibile recuperare dati sparsi da campioni casuali sparsi prelevati da un dominio diverso (ad es. Recuperare immagini sparse da dati a frequenza sparsa casuale (ad esempio MRI)) ". La domanda è: "campioni casuali sparsi"? Penso che potrebbero essere campioni raccolti proiettando casualmente i dati sparsi su un sottospazio inferiore (di misurazione).

E come ho capito, il quadro teorico del rilevamento compressivo è principalmente composto da 3 problemi, scarsità, misurazione e recupero. Per scarsità, si tratta di cercare rappresentazioni sparse per una certa classe di segnali, che è il compito dell'apprendimento del dizionario. Per misurazione, si tratta di cercare un modo efficiente (efficienza computazionale e recuperabile) per misurare i dati (o proiettare i dati su uno spazio di misurazione inferiore), che è il compito della progettazione della matrice di misurazione, come la matrice gaussiana casuale, la matrice casuale strutturata,. ... E per recupero, sono i problemi di inversione lineare sparsa regolarizzata, l0, l1, l1-l2, lp, l-group, blabla ..., e gli algoritmi risultanti sono vari, ricerca di corrispondenza, soglia minima, soglia minima, ricerca della base, bayesiana, ....

È vero che "cs è la minimizzazione della norma L1", e la norma L1 è un principio di base per cs, ma cs non è solo la minimizzazione della norma L1. Oltre alle 3 parti precedenti, ci sono anche alcune estensioni, come il rilevamento compressivo strutturato (di gruppo o modello), in cui viene sfruttata anche la scarsità strutturata e si è dimostrato che migliora notevolmente la capacità di recupero.

In conclusione, cs è un grande passo nella teoria del campionamento, fornendo un modo efficiente per campionare i segnali, a condizione che questi segnali siano abbastanza radi . Quindi, cs è una teoria campionaria , chiunque la userà come una tecnica per la classificazione o il riconoscimento sta fuorviando il principio. E di tanto in tanto, trovo un documento intitolato "rilevamento basato sulla compressione .....", e penso che il principio di tale documento stia sfruttando la minimizzazione l1 anziché cs ed è meglio usare "minimizzazione l1 basata ... ".

Se sbaglio, correggimi per favore.


Benvenuti in DSP.SE Questo è un grande contributo.
Phonon,

6

Ho esaminato il documento e penso di aver avuto l'idea generale del metodo. Il "souse segreto" del metodo è come ottenere una rappresentazione sparsa del segnale di ingresso nel dominio della frequenza. Gli algoritmi precedenti utilizzavano il tipo di forza bruta per localizzare il coefficiente rado dominante. Questo metodo usa invece la tecnica che ha chiamato l' articolo wiki "recupero dello spazio" o "rilevamento compresso". Il metodo esatto di recupero sparso usato qui sembra simile al "limite duro", uno dei metodi di recupero sparsi dominante.

La tecnica PS di recupero sparso / rilevamento compresso e collegata ad esso La minimizzazione L1 ha usato molto nella moderna elaborazione del segnale e specialmente in connessione con la trasformata di Fourier. In realtà è un must da sapere per la moderna elaborazione del segnale. Ma prima che la trasformata di Fourier fosse utilizzata come uno dei metodi per la soluzione del problema di recupero sparse. Qui vediamo il contrario: recupero sparso per la trasformata di Fourier.

Buon sito per il rilevamento compresso di panoramica: nuit-blanche.blogspot.com/

PPS risponde al commento precedente - se il segnale di input non è esattamente scarso, è in perdita.

Sentiti libero di correggermi se ho sbagliato il metodo.


La carta FFT non è compressa. L'idea alla base del rilevamento compresso è che è possibile recuperare dati sparsi da campioni casuali sparsi prelevati da un dominio diverso (ad es. Recuperare immagini sparse da dati casuali sulla frequenza sparsa (ad esempio MRI)). Sebbene ciò possa ridurre i tempi di acquisizione, aumenta i costi di calcolo. Il documento FFT è diverso in quanto hai tutti i tuoi dati in entrambi i domini e l'obiettivo è far sì che un calcolo avvenga rapidamente.
dranxo,

Ti sbagli sul rilevamento compresso.
mirror2image

1
Puoi elaborare?
dranxo,

Il rilevamento compresso è un'area enorme con bordi sfocati, che includono / sono collegati non solo al recupero in sé ma a aree simili regolarizzazione, inseguimenti di minima complessità ecc. Inizialmente si tratta di un problema limitato dalla scarsità , x in , R ^ n \ | x \ | _0 <k $, ma in seguito diventa molto più brad. Inizia con la lettura di wikiLpAx=yRmyin,m>>nwithconstraint
mirror2image il

No. Il rilevamento compresso significa che stai risolvendo soggetto ad . Esistono molte applicazioni di vasta portata, ma se non invochi il teorema di Candes-Romberg-Tao ad un certo punto stai confondendo le persone se etichetti il ​​tuo lavoro con il "rilevamento compresso". Ecco un riferimento: www-stat.stanford.edu/~candes/papers/spm-robustcs-v05.pdfmin|x|1Ax=y
dranxo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.