Çeşitli örnekleme planlarının göreli değerleri nelerdir?


12

Geçenlerde sıfır dolgu yoluyla bazı dahili örnekleme yapan bir DSP sistemi ile karşılaştım. Sıfır sıralı beklemede, bir DC sinyalinin bir DC çıkışı üretmediğini görünce şaşırdım; dahili (düşük) örnekleme frekansının birçok harmoniği de çıktıda mevcuttu.

Bu şu sorumu doğurur: Hangi örnekleme teknikleri yaygın olarak kullanılır ve göreceli değerleri nelerdir? Neden sıfır doldurma, sıfır sipariş tutma veya ilk sipariş tutma seçmeliyim ve başka hangi teknikler kullanılabilir?

Bazı açıklamalar:

  • Sistem gerçek zamanlıdır, bu nedenle yukarı örnekleme şeması nedensel olmalıdır.
  • Yukarı örnekleyiciyi, ayrıca belirtilebilen bir kenar yumuşatma filtresi izler.

Yanıtlar:


11

m1m1m

Takma adlardan kurtulmak ve böylece enterpolasyonu tamamlamak için herhangi bir düşük geçişli filtrenin kullanılabileceğini anlamak önemlidir. Bununla birlikte, bazı filtrelerin enterpolasyonda kullanıldığında avantajları vardır. İnterpolasyon filtrelemenin çeşitli lezzetlerini aşağıda tartışacağım.

FIR Filtresi

x[n]x0,x1,...xNx0,0,x1,0,...xN

h[n]

mmceil(K/m)

Bir örnek umarım bunun nasıl çalıştığını gösterecektir. Altı musluk filtresine sahip olduğumuzu ve iki faktörle enterpolasyon yaptığımızı varsayalım. Filtre muslukları [1 -2 4 4 -2 1] 'dir. Kelimenin tam anlamıyla enterpole edildikten sonra filtrelersek, örnekler ve filtre muslukları (tam çakışma olduğunda) aşağıdaki gibi sıralanır:

0:1x2:20:4x1:40:2x0:1
Sonraki örnek ...

x3:10:2x2:40:4x1:20:1
Sonraki örnek ...

0:1x3:20:4x2:40:2x1:1
Ve bunun gibi. Enterpolasyon filtresinin amacı, sıfırları gerçekten yerleştirerek atlaması ve bunun yerine şu anda hangi musluk setini değiştirmesidir. Böylece, önceki dizi şimdi aşağıdaki gibi görünecektir:

x2:2x1:4x0:1

x3:1x2:4x1:2

x3:2x2:4x1:1

Sıfır Sipariş Bekletme

m1x0,x1,...xNx0,x0,x1,x1,...xN,xN

m

Birinci Sipariş Muhafaza

x0,x1,...xNx0,x0+x12,x1,x1+x22,...xN

[12112][132312312]

Üçgen filtre, birlikte bükülmüş iki dikdörtgen filtredir, bu da frekans alanında içten kareye karşılık gelir. Bu, sıfır sıralı tutmadan kesin bir adımdır, ancak yine de büyük değildir.

IIR Filtresi

Hiç enterpolasyon yapan bir IIR filtresi kullanmadım, bu yüzden onlar hakkında çok şey söylemeyeceğim. Düzenli filtrelemede olduğu gibi aynı argümanların geçerli olduğunu varsayıyorum - IIR filtreleri daha verimli, kararsız olabilir, lineer faza sahip değil, vb. ama bu konuda yanılmış olabilirim.

FFT Enterpolasyonu

Çok yaygın olmasa da bunu atacağım (elbette sıfır beklemenin de yaygın olduğunu düşünmüyorum). Bu konu , yeniden örneklemenin hem enterpolasyon hem de decimation olduğu FFT yeniden örneklemeyi tartışmaktadır.

Yüksek Sipariş Muhafazaları

İkinci dereceden tutma enterpolatörleri genellikle "ikinci dereceden enterpolatörler" olarak adlandırılır. Doğrusal değildirler ve bu nedenle doğrusal olan FIR filtreleri olarak uygulanamazlar. Arkalarındaki matematiği iyi anlamıyorum, bu yüzden performanslarını tartışmayacağım. Bununla birlikte, sinyal işleme dışında bir şekilde yaygın olduklarına inandığımı söyleyeceğim.

Daha yüksek mertebe (üç veya daha fazla) yöntem de mevcuttur. Bunlar "polinom regresyonları" olarak adlandırılır.

DÜZENLE:

Kaskad Entegratör Tarak (CIC) Filtreleri

CIC Filtrelerinden bahsetmeyi unuttum . CIC filtreleri iki nedenden ötürü kullanılır: sadece toplayıcılar / çıkarıcılar kullanırlar (şimdi çoğulların hızlı ve ucuz olduğu kadar büyük bir anlaşma değil) ve gerçekten büyük örnekleme hızı değişiklikleri oldukça verimli bir şekilde yapabilirler. Aşağı tarafları, esasen basamaklı bir dikdörtgen filtrenin verimli bir şekilde uygulanmasıdır, bu nedenle yukarıda tartışıldığı gibi dikdörtgen filtrelerin tüm dezavantajlarına sahiptirler. CIC enterpolatörlerinden hemen önce, CIC tarafından ortaya konulan bozulmayı iptal etmek için sinyali önceden deforme eden dengeleyici bir FIR filtresi bulunur. Numune oranı değişikliği yeterince büyükse, bozulma öncesi filtrenin maliyeti buna değer.


Harika anket Bay Jim. Üst düzey bekletme kategorinize eklemek için, bunun "polinom regresyonu" olarak da adlandırıldığına inanıyorum. Burada, belirli bir nokta kümesi verildiğinde, en uygun olan bir çizgi, parabol, kübik, yüksek dereceli polinom hesaplıyoruz. Denklemi aldıktan sonra, ara noktaların ne olduğunu kolayca bulabiliriz.
Spacey

Sorular: 1) FIR Filtre bölümünün son paragrafı hakkında tam olarak net değilim. 1. giriş örneğine karşılık gelen 2. ve 3. çıkışların 1, 4, 7 ve sonra 2, 5, 8 filtre bantlarını kullandığından bahsettiniz. Ancak bunların hepsinin sıfır olduğunu da belirtiyorsunuz ... bu yüzden 2. ve 3. çıkış örnekleri bu durumda sadece sıfır? 2) Bu 'FIR İnterpolasyon Filtresi', m = 3 için [1 0 0 3.2 0 0 -2.1 0 0 1.1 0 0] gibi bir şeye benziyor mu? (Sayılar oluşur).
Spacey

@Mohammad Cevabı düzenledim. Umarım bu yardımcı olur. Ve polinom regresyonları hakkında bilgi için teşekkürler.
Jim Clay

1
@endolith İki sebep, bence: karmaşıklık ve sadece filtre uzunluğu belirli bir sayının ötesinde olduğunda (ve bu sayının ne olduğundan emin değilim) hesaplamaya mantıklı geliyor. Örnek bloklarıyla uğraşırken FFT yaklaşımı çok iyi sonuç verir, ancak bir örnek akışı ile uğraşıyorsanız, sürekliliği korumak için üst üste ekleme veya üst üste kaydetme de yapmanız gerekir.
Jim Clay

1
@endolith FFT yaklaşımı hakkında gerçekten güzel bir şey, büyük bir filtre kullanmanın neredeyse hiç maliyeti olmamasıdır.
Jim Clay

3

Jim'in cevabı oldukça iyi bir şekilde ele alıyor. Tüm örnekleme yöntemleri aynı temel şemayı takip eder:

  1. Örnekler arasına sıfır ekleyin: Bu, orijinal spektrumun periyodik olarak tekrarlanmasıyla sonuçlanır, ancak orijinal banttaki spektrumu tamamen sağlam bırakır
  2. Tüm ayna spektrumlarından kurtulmak için alçak geçiren filtre

Yöntemler arasındaki temel fark, düşük geçişli filtrelemenin nasıl uygulandığıdır. İdeal yukarı örnekleyici, ideal bir düşük geçiş filtresi içerir, ancak bu pratik değildir. Frekans etki alanındaki sorunu dikkate almak, özel gereksinimleriniz için doğru örnekleme algoritmasını bulmanıza olanak tanır:

  1. Orijinal bantta ne kadar genlik bozulmasını tolere edebilirim? Bu frekans bağımlı mı?
  2. Orijinal banttaki fazı önemsiyor muyum? Eğer fazı korumanız gerekiyorsa FIR doğrusal bir fazına ihtiyacınız vardır. Eğer asgari bir aşama değilse, "nedensellik" ve keskin başlangıçları sürdürmede daha iyi bir iş çıkarır.
  3. Ayna görüntülerini bastırmak için ne kadar ihtiyacım var? Temel olarak ayna görüntüleri taban bandında ekstra gürültü olarak görünecektir.

Yüksek dereceli doğrusal olmayan enterpolatörler (spline, hermitian, Lagrange) tipik olarak iyi çalışmaz, çünkü enterpolasyon hatası yüksek sinyale bağımlıdır ve spesifik gereksinime eşlemek neredeyse imkansızdır.


"Nedensellik" i sürdürmek için daha iyi bir iş mi demek istiyorsun?
nibot

0

Örnek tutma ve tutma (yani örnek değerlerinin tekrarı) ve sıfır doldurma arasındaki fark göz önüne alındığında, örnekleme ve tutma işleminin sıfır doldurma ile yukarı örnekleme ve ardından bir Darbe yanıtı dikdörtgen darbeden oluşan FIR filtresi.

Örneğin, 2 kHz'den 64 kHz'e (32 faktörü) yukarı örnekleme yaparken, bunu her 2 kHz örnekleme çifti arasına 31 sıfır ekleyerek ve ardından 32'lü bir FIR filtresiyle filtreleyerek uygulayabiliriz. katsayıları sıfır.

sincτ=0

Bu sincfonksiyonun tam olarak düşük örnekleme frekansının harmoniklerinde boş olduğu ortaya çıkıyor . 2048 Hz ile 65536 Hz arasındaki örnekleme uygulamamızda örnek ve bekletme işleminin frekans tepkisi 2048 Hz, 4096 Hz, vb.

resim açıklamasını buraya girin

Bundan, orijinal örnekleme frekansının harmoniklerini tamamen bastıran enterpolasyon filtrelerinin "örnekleme ve tutma" gibi bir şey olacağı sonucuna varıyorum. Bu doğru mu?

1/f


Sorun, boş değerlerin çok dar olması, bu nedenle çoğu sinyalin boş değerlerin dışında enerjiye sahip olmasıdır.
Jim Clay

@JimClay, Dar null değerler düşük örnekleme oranının harmoniklerini öldürmek için mükemmel değil mi? Kabul ediyorum, ayrıca görüntü frekanslarından kurtulmak için 1 kHz civarında birkaç kutup daha istiyorsunuz. Sanırım sorumu genişletirim: iyi bir enterpolasyon filtresi nasıl tasarlanır?
nibot

Geçiş bandı sinyalin bant genişliğini içeren ve durdurma bandı, örneklediğinizde tanıtılan takma adları içeren bir düşük geçiş filtresi tasarlarsınız. Sinyalin 3dB noktası ile takma adı arasındaki frekanslar geçiş bandınızdır. Sorunuz "düşük geçişli bir filtreyi nasıl tasarlayabilirim?" İse, başka bir soruda bunu sorun ve tartışabiliriz.
Jim Clay

Genelde filtreleri nasıl tasarlayacağımı anlıyorum, genellikle s-alanına direkleri ve sıfırları açıkça yerleştirip sonra bunları z-alanı filtrelerine dönüştürerek anlıyorum. Enterpolasyon filtreleri için özel numaralar olup olmadığını merak ediyordum. Aldığım mesaj gerçekten hile olmadığı - enterpolasyon filtreleri diğer filtreler gibi ve tasarımları çeşitli hususlar (dalgalanma, faz, grup gecikmesi, minimum durdurma bandı zayıflaması, hesaplama karmaşıklığı, vb.).
nibot

Öte yandan, FIR filtreleri tasarlamak hakkında hiçbir şey bilmiyorum.
nibot
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.