Zero-domain zero padding - perawatan khusus X [N / 2]


18

Misalkan kita ingin menginterpolasi sinyal periodik dengan jumlah sampel yang genap (misalnya N = 8) dengan nol-padding dalam domain frekuensi.

Biarkan DFT X=[A,B,C,D,E,F,G,H]
Sekarang mari kita padukan ke 16 sampel untuk diberikan Y. Setiap contoh buku teks dan tutorial online saya telah melihat sisipan nol saat memberi . (Lalu adalah sinyal interpolasi.)[Y4...Y11]
Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]
y = idft(Y)

Kenapa tidak digunakan Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]?

Sejauh yang saya tahu (pengetahuan matematika saya terbatas):

  • Ini meminimalkan daya total
  • Ini memastikan bahwa jika xbernilai nyata maka begitu jugay
  • ymasih berpotongan xdi semua titik sampel, seperti yang diperlukan (saya pikir ini berlaku untuk di pmana saja Y=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H])

Jadi mengapa tidak pernah dilakukan dengan cara ini?


Sunting : xbelum tentu bernilai nyata atau terbatas band.


Anda menulis "Setiap contoh buku teks dan tutorial online yang saya lihat sisipkan nol di ...", dapatkah Anda memperbarui posting Anda dengan beberapa referensi? Hanya ingin tahu karena Anda juga menulis bahwa x belum tentu bernilai nyata dan konstruksi pertama yang Anda sebutkan tidak (secara umum) menghasilkan hasil nyata dengan DFT terbalik.
niaren

@niaren inilah salah satu contoh: dspguru.com/dsp/howtos/…
finnw

1
Perlu dicatat bahwa agar bernilai nyata, maka Anda harus membiarkan Y = [ 2 A , 2 B , 2 C , 2 D , E , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , E , 2 F , 2 G , 2 H ]yY=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H](yaitu ketika Anda menduplikasi E untuk setengah "frekuensi negatif" dari vektor domain frekuensi, Anda perlu mengkonjugasikannya. Sinyal yang nyata dalam domain waktu memiliki DFT konjugat-simetris.
Jason R

1
@Jason R, jika sinyal input bernilai nyata maka begitu juga E jadi [2A, 2B, 2C, 2D, E, 0,0,0,0,0,0,0, E, 2F, 2G, 2H] memenuhi kondisi ini. Jika input tidak bernilai nyata maka tidak perlu memaksa output menjadi bernilai nyata.
finnw

Anda benar. Itulah yang saya dapatkan karena menulis komentar terlalu malam.
Jason R

Jawaban:


7

Mari kita lihat frekuensi nampan di 8-point DFT Anda:

Jadi ketika Anda melakukan interpolasi dengan faktor 2 , titikfrekuensiEmenjadi-πatau+π.

ωA=0,ωB=π/4,ωC=π/2,ωD=3π/4,ωE=π=π (mod 2π),ωF=5π/4=3π/4 (mod 2π),ωG=3π/2=π/2 (mod 2π),ωH=7π/4=π/4 (mod 2π)
Eπ+π

Pada pandangan pertama, saya tidak bisa melihat apa masalahnya dengan pendekatan Anda karena tidak jelas apakah harus dimasukkan ke dalam bin yang terkait dengan π atau - π .Eππ

Pada halaman Julius O. Smith III , dia menyatakan suatu kondisi:

Lebih jauh lagi, kita membutuhkan ketika N adalah genap, sementara ganjil tidak memerlukan batasan seperti itu.x(N/2)=x(N/2)=0N

Dan contohnya ada untuk aneh , yang menghindari masalah.N


Tidak yakin itu wajib, tapi inilah referensi lengkap untuk karya Julius:

Smith, JO Matematika Discrete Fourier Transform (DFT) dengan Aplikasi Audio, Edisi Kedua, http://ccrma.stanford.edu/~jos/mdft/ , 2007, buku online, diakses pada 28 September 2011.


2

Ada banyak cara untuk menginterpolasi data. Interpolasi dalam pikiran saya berarti Anda 'menggambar' garis di antara beberapa titik data. Ini bisa dilakukan dengan banyak cara. Salah satu jenis interpolasi yang berguna dalam DSP (terutama di multirate DSP) adalah 'Interpolasi terbatas'. Jika Anda google itu Anda akan mendapatkan banyak hits menarik dan bermanfaat. Apa yang Anda usulkan bukanlah interpolasi terbatas. Dalam 'upampled' x Anda, Anda memiliki komponen frekuensi yang tidak ada dalam x asli.

Edit (terlalu panjang untuk dimasukkan ke dalam komentar):

X=[A,B,C,D,E,F,G,H]

Mempertimbangkan input nyata

X=[A,B,C,D,E,D,C,B]

x0,0,x1,0,...0π/2π/2π

X2=[A,B,C,D,E,D,C,B,A,B,C,D,E,D,C,B]

π/2

yn=k=x2ksinc(0.5nk)

Dalam prakteknya meskipun akan ada beberapa distorsi karena filter dinding bata tidak realistis. Filter praktis dapat menekan / menghilangkan frekuensi dalam input atau dapat meninggalkan beberapa komponen frekuensi dalam gambar dalam sinyal yang di-upampled. Atau filter bisa membuat kompromi di antara keduanya. Saya pikir konstruksi domain frekuensi Anda juga mencerminkan kompromi ini. Dua contoh ini, mewakili dua pilihan berbeda:

Y=[A,B,C,D,E,0,0,0,0,0,0,0,E,D,C,B]

Y=[A,B,C,D,0,0,0,0,0,0,0,0,0,D,C,B]

Jika input terbatas pada frekuensi nyquist seperti pada referensi Anda, masalah ini akan hilang.

ρ

Y=[A,B,C,D,ρ,0,0,0,0,0,0,0,ρ,D,C,B]


1
x

@leftaroundabout X asli adalah bandlimited (dalam contoh ini ke frekuensi Nyquist). OP ingin mengganti x dengan faktor 2 (interpretasi saya). Salah satu cara untuk mengesampingkan x adalah dengan memasukkan nol dalam respons frekuensi seperti yang ditunjukkan oleh OP (contoh tanpa E, yang ditunjukkan dalam buku teks DSP) dan melakukan FFT terbalik. Saya percaya hal yang sama dapat dicapai dengan memasukkan nol (disisipkan) dalam x dan (low-pass) filter oleh sinc. Dengan memasukkan E seperti yang ditunjukkan oleh OP, x yang diupampled tidak terbatas pada frekuensi Nyquist asli. Ini biasanya tidak diinginkan (ini adalah distorsi). Apa kamu setuju?
niaren

1
Eπ2π2

Saya mengasumsikan frekuensi ± N / 2 hadir dalam x. Jika tidak (karena bandlimiting atau lainnya) maka E akan menjadi 0 tetap sehingga tidak akan ada perbedaan antara padding dengan E (atau 2E) dan padding dengan 0.
finnw

1
Sinyal bandlimited masih dapat memiliki konten dalam bin N / 2 karena "kebocoran spektral" dari konten spektral aperture non-periodik-dalam-DFT, terutama di dekat (tetapi tidak pada) Fs / 2.
hotpaw2
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.