Mengapa saya meninggalkan sinyal terlalu banyak?

21

Saya tidak bisa memikirkan cara yang lebih baik untuk mengajukan pertanyaan ini jadi saya akan mulai dengan sebuah contoh. Misalkan saya memiliki sinyal input dengan frekuensi maks 50Hz (sampel pada 100Hz). Sekarang sinyal yang menarik terletak pada kisaran 0-5Hz, jadi saya dapat menambahkan filter low-pass dengan cut-off 5Hz, dan menggunakan sinyal yang dihasilkan untuk diproses lebih lanjut. Pemahaman saya adalah bahwa sekarang saya dapat mengurangi sampel sinyal yang difilter dengan faktor 10 dan karenanya mengurangi beban pemrosesan. Apakah saya benar? Jika ya, mengapa downsampling tidak SELALU dilakukan setelah pemfilteran karena menurut saya cara yang jelas untuk dilakukan? Dan jika saya salah dalam anggapan saya, di mana saya salah?

anasimtiaz
sumber
4
oversampling dan kemudian men-decimating suatu sinyal seringkali merupakan cara untuk mengatasi rolloff noise yang lambat dari penyaringan analog yang akan alias sinyal Anda. Kemudian decimating (dengan lowpass yang diperlukan yang mendahuluinya) dapat memberikan kualitas sinyal yang lebih tinggi. Filter dinding bata lebih mudah direalisasikan dalam domain Digital.
Kortuk

Jawaban:

17

Anda benar bahwa jika sinyal Anda dibatasi hingga <5 Hz, maka Anda dapat dengan sempurna mewakilinya dengan laju sampling 10Hz. Ini adalah teorema sampling yang terkenal

Tapi ... mungkin ada pertimbangan praktis mengapa seseorang tidak dapat dan / atau cenderung menggunakan data sampel kritis.

Salah satu alasannya adalah sulitnya membuat sinyal sampel secara kritis. Operasi apa pun yang Anda lakukan untuk mengubah laju sinyal akan memiliki beberapa filter dengan bandwidth transisi yang tidak nol. Dalam contoh Anda, ini membatasi konten frekuensi yang tidak diubah menjadi 5-ftrans. Bandwidth transisi ini dapat dibuat sangat sempit dengan filter respons impuls panjang tetapi ini memiliki biaya baik dalam hal pemrosesan dan transien (dering) pada awal dan akhir sinyal.

Alasan lain adalah kemanjuran algoritma yang bekerja pada sinyal yang dihasilkan. Jika Anda perlu bekerja dengan komponen blackbox yang hanya bisa memilih sampel terdekat, maka Anda akan lebih baik memberi makan itu data yang terlalu banyak.

Sebagian besar (semua?) Operasi non-linier akan berperilaku berbeda dengan data sampel kritis vs berlebih. Salah satu contoh adalah mengkuadratkan sinyal, metode pemulihan pembawa BPSK yang terkenal. Tanpa kondisi 2x oversampled, penggandaan sinyal domain waktu dengan dirinya sendiri menyebabkan sampah sampingan alias ketika domain frekuensi berbelit-belit dengan dirinya sendiri.

Mark Borgerding
sumber
1
Saya tidak mengerti bagian di mana Anda berbicara tentang sinyal yang disampel secara kritis. Jika sinyal saya berada di kisaran 0-5Hz dan bukannya downsampling 10, saya downsample dengan faktor 8 (misalnya), apakah saya masih memiliki masalah ini?
anasimtiaz
1
Itu akan memungkinkan Anda untuk memiliki beberapa bandwidth Nyquist tambahan (yaitu dikodekan melalui laju sampling Anda) yang tidak digunakan oleh sinyal yang Anda minati. Pita ini memungkinkan Anda memiliki filter yang dapat direalisasikan yang tidak mengganggu sinyal yang Anda minati.
Mark Borgerding
8

Dua alasan lagi untuk sampel berlebihan:

  1. Latensi rendah: misalnya loop kontrol memerlukan latensi yang sangat rendah. Oversampling membuat data masuk dan keluar lebih cepat, sehingga mengurangi latensi. Juga setiap penyaringan lowpass memperkenalkan penundaan grup. Semakin tajam filter lowpass, semakin tinggi penundaan grup. Jika Anda berlebihan, Anda memerlukan filter anti-aliasing yang kurang curam dan berakhir dengan sedikit penundaan grup dan karenanya latensi.

  2. Kepraktisan: Jika input dan output Anda berjalan pada tingkat yang sama (tinggi), Anda berpotensi menurunkan sampel, tetapi Anda harus melakukan upample lagi sebelum Anda dapat menampilkan hasilnya. Contoh: dalam sistem home theatre, Anda dapat melakukan downsample pada jalur pemrosesan Bass tetapi Anda harus melakukan upample lagi karena output berjalan pada tingkat tinggi. Dalam banyak kasus, penghematan dalam MIPS tidak sepadan dengan masalah yang terjadi

Hilmar
sumber
2

Ada sejumlah faktor yang perlu dipertimbangkan ketika menentukan laju sampling. Biarkan saya daftar beberapa dari mereka, untuk memberi Anda gambaran tentang konsekuensi apa yang mungkin terjadi jika Anda menurunkan laju sampling. Tentu saja, banyak dari ini tergantung pada seberapa tepatnya Anda menurunkan laju sampling, tetapi ...

  1. Nyquist Frequency: Seseorang tidak dapat mendeteksi frekuensi lebih dari Nyquist, yang merupakan setengah dari tingkat deteksi, setidaknya, menggunakan metode pemrosesan yang khas. Ada metode yang melibatkan penyaringan sinyal sebelum konversi A / D dengan yang ada di dalam pita Nyquist.
  2. Deteksi frekuensi dekat Nyquist berpotensi menjadi sulit, dan dapat mengalami kesalahan. Catatan, ini biasanya hanya untuk mereka yang benar-benar menutup band. Dalam contoh ini, membatasi rentang hingga 12Hz (6 Hz Nyquist) akan lebih dari cukup mengatasi masalah yang terkait dengan ini.
  3. Komponen frekuensi tinggi cenderung berkurang kekuatannya dibandingkan dengan frekuensi lebih rendah. Ini pada dasarnya terjadi karena teori pengambilan sampel mengasumsikan fungsi sisir, yaitu, deteksi dalam waktu instan dengan jarak yang sama. Yang benar adalah, semua sinyal diukur selama beberapa waktu kecil. Efek dari ini adalah untuk menggabungkan persegi panjang dalam domain waktu, atau kalikan dengan sinyal sinc di domain frekuensi. Tentu saja, jika Anda hanya mengambil setiap sinyal ke-10 (Berbeda dengan menggunakan waktu sampel yang lebih lama), pengaruh ini akan dikurangi.

Untuk mengilustrasikan beberapa kepala sekolah ini, saya telah menulis program matlab sederhana, yang akan saya tampilkan hasilnya juga.

pis=linspace(0,2*pi,2048);
for f=1:512
sig=cos(f*pis+pi/2);
sig_average=filter(ones(16,1),1/16,sig);
sam_sig=sig_average(1:16:end);
freq=abs(fft(sam_sig));
freqs(f)=max(freq);
end
figure;plot((1:512)/64,freqs)

masukkan deskripsi gambar di sini

PearsonArtPhoto
sumber
3
Saya pikir daftar poin Anda agak menyesatkan: 1. Saya akan menyebutkan potensi penggunaan "bandpass sampling" di sini; ini adalah metode yang relatif "khas". 2. Saya tidak berpikir Anda bisa membuat pernyataan selimut itu secara umum. 3. Komponen frekuensi tinggi tidak selalu dilemahkan dalam cara Anda menggambarkan. Fenomena yang Anda sebutkan terkait dengan waktu konversi konverter A / D; ini hanya faktor pembatas jika waktu konversi signifikan dibandingkan dengan interval pengambilan sampel, yang seringkali tidak demikian.
Jason R
2
4. Upsampling tidak meningkatkan kemampuan Anda untuk menyelesaikan frekuensi yang berjarak dekat. Hanya peningkatan waktu pengamatan yang akan memberikan resolusi frekuensi yang lebih baik; Anda memerlukan produk bandwidth waktu yang memadai.
Jason R
@JasonR: Poin bagus. Saya telah mengoreksi pernyataan dan menambahkan hal-hal yang Anda sarankan. Sebagian besar latar belakang DSP saya adalah dengan sinyal yang diukur selama periode waktu tertentu, sehingga mungkin menunjukkan bias saya ...
PearsonArtPhoto
2

Kriteria Nyquist (dua kali lipat berlebih untuk menggambarkan sinyal Anda dengan sempurna) berlaku untuk data bebas noise. Jika Anda ingin merekonstruksi data berisik, Anda perlu mengambil sampel dengan frekuensi lebih tinggi dari minimum. Ini terutama benar dalam kasus gambar, di mana Anda biasanya tidak memiliki sinyal periodik, dan di mana Anda tidak bisa hanya rata-rata waktu untuk mengurangi noise.

Selain itu, jika Anda ingin menyesuaikan model dengan data Anda, Anda mendapat manfaat lagi dari pengambilan sampel yang lebih tinggi, karena memasukkan model ke dalam tiga titik data tidak akan sangat stabil, terutama di hadapan kebisingan.

Jonas
sumber
Tidak ada pernyataan menyeluruh yang dapat Anda buat tentang berapa banyak oversampling diperlukan dengan data berisik. Bandwidth sinyal keseluruhan (signal-of-interest plus noise) adalah yang paling penting; ini adalah fungsi dari respons setiap penyaringan anti-aliasing yang Anda miliki di depan sampler Anda. Selama sample rate Anda cukup besar untuk mengakomodasi jumlah bandwidth yang mengandung energi signifikan di aperture sampling, Anda baik-baik saja. Tidak ada aturan yang keras dan cepat untuk rasio oversampling minimum; itu semua tergantung pada seberapa cepat sinyal ditambah spektrum noise menggelinding.
Jason R
@Jason R: Tiga kali lipat berlebih adalah aturan umum dalam pencitraan neon; tetapi Anda benar bahwa semuanya tergantung pada seberapa banyak kebisingan yang Anda miliki. Saya telah memperbaiki posting saya.
Jonas
2

Salah satu alasan untuk menjaga sinyal oversampled adalah rentang dinamis / tradeoff oversampling. Secara kasar, setiap kali Anda menggandakan bandwidth "tidak perlu" untuk sinyal yang menarik, Anda mendapatkan sedikit tambahan resolusi pengambilan sampel, setelah pemfilteran diterapkan (yang dapat terjadi dalam domain digital), Anda dapat menyimpan hasilnya pada kedalaman bit yang lebih tinggi dan bit mengandung konten sinyal yang valid, bukan noise tambahan (untuk bandwidth yang diinginkan). Jika sistem Anda beroperasi dalam kondisi di mana beberapa rentang dinamis tambahan dapat membantu, maka ada alasan yang baik untuk menjaga sinyal pada tingkat pengambilan sampel yang tinggi saat memasuki ADC.

Aurelio
sumber