Chirp Z-transform - Chirp Z-transform
Il Chirp Z-trasformata ( CZT ) è una generalizzazione della trasformata di Fourier discreta . Mentre i campioni DFT del piano Z in punti uniformemente distanziati lungo la circonferenza unitaria, il chirp Z-trasformata campioni lungo archi di spirale nel piano z, corrispondenti alle linee rette nel piano S . La DFT, vero DFT, e lo zoom DFT può essere calcolato come casi speciali della CZT.
Specificamente, il chirp trasformata Z calcola la trasformata Z in un numero finito di punti z k lungo una spirale logaritmica contorno, definita come:
dove A è il punto di partenza complesso, W è il complesso rapporto tra i punti, ed M è il numero di punti da calcolare.
L'algoritmo di Bluestein
L'algoritmo di Bluestein esprime la CZT come convoluzione e implementa efficiente utilizzando FFT / IFFT.
Poiché la DFT è un caso speciale della CZT, questo permette il calcolo efficiente della trasformata di Fourier discreta (DFT) di dimensioni arbitrarie, tra primi dimensioni. (L'altro algoritmo per FFT di dimensioni principali, l'algoritmo di Rader , funziona anche riscrivendo il DFT come convoluzione.) E 'stato ideato nel 1968 da Leo Bluestein . Algoritmo di Bluestein può essere utilizzato per calcolare le trasformazioni più generali rispetto alla DFT, sulla base del (unilaterale) z-trasformare (Rabiner et al. , 1969).
Ricordiamo che la DFT è definito dalla formula
Se sostituiamo il prodotto nk nel l'esponente dall'identità
abbiamo quindi ottiene:
Questa somma è appunto una convoluzione delle due sequenze di n e b n definita da:
con l'uscita della circonvoluzione moltiplicata per N fattori di fase b k * . Questo è:
Questo convoluzione, a sua volta, può essere eseguita con una coppia di FFT (più la FFT pre-calcolato di complesso chirp b n ) tramite il teorema di convoluzione . Il punto chiave è che queste FFT non sono della stessa lunghezza N : tale convoluzione può essere calcolata esattamente da FFT solo da zero imbottitura per una lunghezza maggiore o uguale a 2 N -1. In particolare, una lattina pad ad una potenza di due o qualche altro estremamente composita dimensioni, per i quali la FFT può essere eseguita in modo efficiente ad esempio per gli algoritmo Cooley-Tukey a O ( N log N ) tempo. Pertanto, l'algoritmo di Bluestein fornisce un O ( N log N ) modo per calcolare DFTS prime-size, seppur diverse volte più lento rispetto all'algoritmo Cooley-Tukey per taglie compositi.
L'uso dello zero-padding per la convoluzione in algoritmo di Bluestein merita qualche commento aggiuntivo. Supponiamo di zero pad per una lunghezza M ≥ 2 N -1. Ciò significa che un n è estesa a una matrice A n di lunghezza M , dove A n = un n per 0 ≤ n < N e A n = 0 altrimenti la solita significato di "zero-padding". Tuttavia, a causa della b k - n termine nella convoluzione, sia positivi che negativi valori di n sono necessari per b n (notare che b - n = b n ). I confini periodiche implicite nel DFT della matrice zeri significano che - n è equivalente a M - n . Così, b n è estesa a una matrice B n di lunghezza M , dove B 0 = b 0 , B n = B M - n = b n per 0 < n < N , e B n = 0 altrimenti. A e B sono poi FFTed, moltiplicati puntuale, e inversa FFTed avere la convoluzione di un e b , secondo l'usuale teorema di convoluzione.
Cerchiamo anche di essere più preciso su quale tipo di convoluzione è richiesta in algoritmo di Bluestein per la DFT. Se la sequenza b n erano periodica n con periodo N , allora sarebbe una convoluzione ciclico di lunghezza N , e lo zero-padding sarebbe solo per convenienza computazionale. Tuttavia, questo non è generalmente il caso:
Pertanto, per N anche la convoluzione è ciclica, ma in questo caso N è composito e uno normalmente usare un algoritmo FFT più efficiente come Cooley-Tukey. Per N dispari, tuttavia, allora b n è antiperiodic e tecnicamente una convoluzione negacyclic di lunghezza N . Queste distinzioni scompaiono quando uno zero pads un n ad una lunghezza di almeno 2 N -1 come sopra descritto, tuttavia. Forse è più semplice, quindi, pensare ad esso come un sottoinsieme delle uscite di un semplice convoluzione lineare (cioè non "estensioni" concettuali dei dati, periodici o altro).
z-trasforma
L'algoritmo di Bluestein può essere utilizzato anche per calcolare una più generale di trasformare in base alla (unilaterale) Z-transform (Rabiner et al. , 1969). In particolare, si può calcolare qualsiasi trasformazione della forma:
un arbitrario numero complesso z e per diversi numeri N e M di ingressi e uscite. Dato algoritmo di Bluestein, come una trasformata può essere utilizzato, ad esempio, per ottenere un'interpolazione più distanziata finemente di una parte dello spettro (anche se la risoluzione di frequenza è ancora limitata dal tempo di campionamento totale, simile ad uno Zoom FFT), permettono di migliorare arbitraria poli in transfer-funzione analisi, ecc
L'algoritmo è stato doppiato il chirp z-trasformata algoritmo perché, per il caso della trasformata di Fourier (| z | = 1), la sequenza b n dall'alto è un complesso sinusoide di linearmente crescente frequenza, che viene chiamata (lineare) cinguettare in radar sistemi.
Riferimenti
Generale
- Leo I. Bluestein, "Un approccio di filtraggio lineare per il calcolo della trasformata discreta di Fourier," Nord-Est Elettronica Research and Engineering Meeting Record 10 , 218-219 (1968).
- Lawrence R. Rabiner, Ronald W. Schafer, e Charles M. Rader, " il frinire z trasformano algoritmo e la sua applicazione ," Campana Syst. Tech. J. 48 , 1249-1292 (1969). Pubblicato anche in: Rabiner, Shafer, e Rader, " il frinire z-transform algoritmo ", IEEE Trans. Audio Elettroacustica 17 (2), 86-92 (1969).
- DH Bailey e PN Swarztrauber, "The Fourier frazionaria trasformano e applicazioni", SIAM Review 33 , 389-404 (1991). (Si noti che questa terminologia per la trasformata z è non standard: un Fourier frazionaria trasformata convenzionalmente si riferisce ad un completamente diverso, continuo trasformare.)
- Lawrence Rabiner, "il frinire z-trasformare algoritmo-una lezione di serendipità," IEEE Signal Processing Magazine 21 , 118-119 (marzo 2004). (Commento storico.)
link esterno
- Un algoritmo DSP per analisi in frequenza - il Chirp-Z Transform (CZT)