Delta modulation, analog sinyalleri minimum karmaşıklığa dönüştürmek için dijital iletişim sistemlerinde kullanılan bir tekniktir.Sadece mutlak sinyal değeri yerine başarı örnekleri arasındaki fark, bir delta modülatörü, hala gerekli sinyal bilgileri kullanarak, bir delta modülatörü oluşturmak için basit bir şekilde tasarlanmıştır. Elektronik meraklılar ve öğrenciler için sinyal işleme ve analog-dijimsel dönüşüm hakkında bilgi sahibi için mükemmel bir projedir.Bu ders, basit bir şekilde, adım adım adım adım kılavuzunu sağlar.
Delta Modulation
Delta modulation (DM), önceki tahminlerle ilgili olarak, giriş daha büyükyse, modülatör çıktıları 1; eğer daha küçük bir analog sinyali, tahmini sinyalini yeniden inşa eden bir bütünleme yapar. Sistem, mevcut giriş örneği ile kıyaslar.If the current input is larger, the modlator printor (often built with an op-amp and cleor), ve bir sinyalli sinyalli bir sinyal oluşturmak için bir sinyal oluşturabilir.
İki önemli performans ölçümleri, arka plan ve granular gürültüyü ele alıyor: giriş sinyali çok yavaş veya sürekli olarak kaldığı zaman, giriş sinyalini tümellerden daha hızlı bir şekilde değiştirebileceğinde, yeniden inşa edilen sinyali geri yüklemeye neden olabilir. Granular gürültü, aynı zamanda giriş sinyalini çok yavaş veya sürekli olarak koruduğunda, dönüşüm 1 ve 0 bitleri doğru değerdeki küçük boşlukları yaratan.
Bileşenler ve Araçlar
Fonksiyonel bir delta modülatörü oluşturmak, yaygın olarak mevcut elektronik bileşenleri ve test ekipmanları seçimi gerektirir. Aşağıdaki liste temel öğeleri kapsar; tam özellikler devre tasarım bölümünde tartışılacaktır.
- [FONT:0)Arduino Uno veya uyumlu mikrokontroller[Dönetici: 1) Dijital I/O, PWM çıktısı ve USB serisini dem için sağlar.
- [FONT:0)Operasyonel yükselteç (op-amp)) - Bütünleme olarak kullanılır. Ortak seçimler LM358, TL072 veya LM741 içerir.
- [FONT:0)Comparator veya Schmitt tetikleyicisi[Dönetici:0) - Temiz bir dijital sinyale analog farkı dönüştürür. LM393 veya yerleşik Arduino comparator (eğer mevcutsa) çalışır.
- [FONT:0]Resistörler[DÜDÜT:1) - Çeşitli değerler (örneğin, 10 kULL, 100 kULL, 1 kULL) önyargı, geri bildirim ve giriş ölçeklendirme için.
- [FONT:0]Kaptancılar[[[Döneticiler)[[Döneticiler) - Tipik olarak 0.1 μF'ye, bütünleme ve güç tedariki için 10 μF'ye kadar.
- [FONT:0) Dijital-to-analog dönüştürücü (DAC) veya PWM düşük geçiş filtresi ile [Döntgen:0) - Dijital bit akışın yeniden inşa edilmiş analog gerilimi üretmek için. Bir Arduino PWM için basit bir RC filtre birçok uygulama için yeterli.
- [FONT:0]Breadboard ve tell telleri[Döntgen: 1) Devreyi prototiplemek için.
- [FONT:0)Oscilloskop veya mantık analizci) - Test sırasında görselleme sinyalleri için. Alternatif olarak, Arduino'nun seri arsasını kullanın.
- [FONT:0)Signal jeneratör - sinesi dalgaları veya ses tonları gibi giriş sinyalleri vermek.
Devre Tasarımı
Karşılaştırmacı Aşama
Kompatörü, sinyalin yeniden inşa edilmiş çıktısını (geri dönüş) karşılaştırır. Eşleştirme işlemi yüksek çözünürlükte (Trav) ile uyumlu bir giriş (-) ile uyumlu hale gelir ve sinyalin güncel tahminini değiştirir.Ingörüntü çıkışı yüksek çözünürlükte yüksek çözünürlükte yüksek çözünürlükte yüksek çözünürlükte (TLM) kullanır.Eğer bir amplifikatör kullanarak aför kullanarak akorunma seviyesi ile uyumlu hale gelir.
Bütünleştirici (Reconstruction Filter Filter)
İntegratör dijital kontrol sinyalini (1 veya 0) girişin bir analog gerilime dönüştürür.Aktif olmayan bir bütünleme işlemi ile giriş sırasında otomatik olarak Vor R'ye giriş yapılır.Fort-ampiyonel giriş için (örneğin, Arduino çıktı veya DAC çıktı)
Dijital-Analog Dönüşümü: PWM Yöntemi
Özel bir DAC çipi kullanmak yerine, birçok Arduino tabanlı delta modülatörleri, rekondasyonlu sinyali nab-altı modülasyonu (PWM) ile analog düşük seviyeli bir filtre ile takip eder. Arduino'nun frekansının altında bir kare dalga üretir (örneğin, 100 m) veya 980 Hz (bazı pins) istenen analog voltaj (0 ila 5 V) İstenen bir analog düşük frekanslı filtreyi kullanarak daha iyi bir şekilde kullanır.
Geri bildirim
Delta modüllator senkronize edilebilir: her saat bir ses sinyalinde, 10-100 kHz'nin saati tipik olarak, dijital kontrol sinyalini güncellemek için, bir 555 zamanlayıcıyı kullanarak, örnekleme frekansı oluşturmak için kullanabilir.Bir saat boyunca, birkaç kilo verenin sesi sinyalini belirler.
Her örnek anda, Arduino, hesaplama işlemine göre artış gösteriyor.Eğer biraz yüksekse, her adım sabit bir adımla PWM görevi döngüsü (veya DAC çıktı) yükselir; eğer düşük, sabit bir DAC'yi sabit bir şekilde azaltırsa ( ⁇ ) saat döngüsündeki bütünleme gerilimi azaltır.
Devreyi inşa etmek
Bir Ekmek dolabı üzerine kurulu
Ayrıntılı bilgi için, her IC'nin tedarik pimlerine yakın olan aflama ve kontraseptör IC'leri (VCC = 5 V from Arduino, GND). Add decoupling cleors (0.1 μF) yakın her IC'nin tedarik pimlerine.
- [FONT=0)Integrator[[Dönetici:0)[Dönetici:0)Integrator[[Dönetici:0)): Çıkış ve inverting girişi arasında bir μF kapasiteli bir sabitleme işlemi yapın.Intgrator 5 V'den bir gerilim bölmesi (bir gerilim bölmesi için 10 kULLYC)
- [FONT:0)Comparator[[Dönetici: Bir sinyal jeneratörü ile) LM393'in çıktısını algılamak için bir çek.Inverting pin.The LM393 çıktı (open-collector) bir çekme işlemi gerektirir.
- [FONT:0)Feedback[[[Dönetici:0)): Bütünleme (Arduino A0) debugging için analog monitöre (Arduino A0) bağlanır.
- [[Düzücü:0)PWM Filtresi[[Dönetici: 1 ): Arduino PWM pin (tümor giriş olarak), düşük geçit filtresi eklemek: 10 μF kapasiteli bir dizide 1 kULLI direnç.Bu filtrelenmiş PWM gerilimi yeniden inşa edilmiş sinyaldir ve kanalda izlenebilir.
Güç ve Signal Yönleri
Analog ve dijital zemin bağlantıları, dijital gürültüyü tümellere enjekte etmekten kaçınarak ayrı tutun.Kısa teller kullanın ve her IC yakınında kapasitörleri atlayın.Eğer giriş sinyali iki kutuplu (örneğin, ±2 V), önyargılı girişler için bu yüzden sinyal 2.5 V'e atıfta bulunur.
Arduino programlama
Arduino, gerçek zamanlı olarak delta modulation algoritmasını uygular.Ana döngü, PWM'nin görev döngüsünü uygun şekilde günceller ve sabit bir örnek oranında tekrarlar.Bir zamanlayıcı kesintisi, jitter'den bu dereceleri düşük maliyetli kılar.
Algorithm Pseudocode
Initialize:
set PWM pin 9 to output
set comparator pin 2 as input
set timer1 to generate interrupt at desired sample rate (e.g., 50 kHz)
clk = 0
Interrupt Service Routine:
read comparator pin → bit
if bit == HIGH:
duty_cycle = duty_cycle + step_size
else:
duty_cycle = duty_cycle - step_size
clamp duty_cycle between 0 and 255
analogWrite(9, duty_cycle)
(Optional) debug: send bit via Serial to plotter
Örnek Code Snippet
Aşağıda Timer1'i doğru örnekleme için kullanarak minimum bir Arduino çizer. Yaklaşık 50 kHz'de çalışır, orta ses sinyalleri takip etmek için uygun.
// Delta Modulator using Arduino Uno
// Uses Timer1 to sample comparator at 50 kHz
const int compPin = 2; // comparator output
const int pwmPin = 9; // PWM output to integrator
const int stepSize = 10; // adjust for tracking speed
volatile int duty = 128; // initial midpoint
void setup() {
pinMode(compPin, INPUT);
pinMode(pwmPin, OUTPUT);
// Setup Timer1 for 50 kHz interrupts
TCCR1A = 0; // normal mode
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 319; // (16 MHz / (prescaler * desired frequency)) - 1
// for 50 kHz: 16e6/(1*50e3)-1 = 319
TCCR1B |= (1 << WGM12); // CTC mode
TCCR1B |= (1 << CS10); // prescaler = 1
TIMSK1 |= (1 << OCIE1A); // enable interrupt
}
ISR(TIMER1_COMPA_vect) {
int bit = digitalRead(compPin); // read comparator
if (bit == HIGH) {
duty += stepSize;
if (duty > 255) duty = 255;
} else {
duty -= stepSize;
if (duty < 0) duty = 0;
}
analogWrite(pwmPin, duty);
}
void loop() {
// nothing to do here – all work in ISR
}
İntegrana: Affin: Affin ve örnekleme hızlarını optimize etmek için uygun bir şekilde ayarlanır.Aptalite, ilk testlere göre, adımla başlayın: 5 ve 10 kHz oranı, sonra her ikisini de arttırır.
Test ve Kalibrasyon
Signals Görselleştirme
Bir oscilloskopi giriş sinyaline ve bütünleme (filtreli PWM) Uygulama 1 kHz sinek 2 V zirvesinin dalgasını bir şekilde indirmeye çalışır; giriş yükselirken, kompucu çoğunlukla yüksek kalır, olumlu adımlar atılır.
Arduino Seri Plotter (Tools > Seri Plotter) kompostu biraz akış görmek ve bunları ana döngüden seri ile gönderirseniz yeniden yapılandırılabilir sinyal (ISR içinde değil). Ancak, seri çıktı zamanlamayı bozabilir; ciddi bir iş için bir oscilloskop kullanabilir.
Kalibrasyonun
İntevazi zaman sabit bir şekilde adım boyutunu ayarlar.Bir RC değeri ve örnekleme dönemi T, adımdaki gerilim değişir ⁇ V = (V pwm high – V ref) * T / (RC) PWM yöntemi için, V pwm high 5 V ve görev döngüsü, eğimli bir miktara karşı direnç gösterir.
Gürültü darbesi için kontrol edin. Eğer kompatörü güç kaynağının dalgalanmasını tetiklerse, olumlu bir geri bildirimde histeriler ekleyin (örneğin, 100 kGU'dan kotapıcı olmayan girişe kadar). Bu, küçük bir ölü bölgeye de bir Schmitt tetikleyicisi yaratır.
Uygulamalar ve Variations
Temel bir delta modülatörü bir eğitim aracı olarak hizmet ederken, aynı zamanda pratik kullanımlar vardır. Delta modulation düşük maliyetli dijital ses kaydı, ses sıkıştırması (örneğin, Sürekli olarak Slope Delta modulation veya CVSD) ve iletişim sistemlerinde, bant genişliği sınırlı.
Temel devreye yönelik gelişmeler şunları içerir:
- [FOM)[FONT=0)Adaptive Delta Modulation (ADM))[değiştir | kaynağı değiştir]: Son derecelere dayanan bir kontrol mantığı, üç ardına 1'e göre, Arduino'da hesaplamak için kullanılan bir yazılımda, hesaplamak için kullanılan bir kontrol mantığı, son derecedeki bitleri (örneğin, üç saniye sonra) ayarlayın.
- [FONT=0]Bipolar İnteg[[[Dönetici: 1 ): DC önyargı olmadan AC sinyalleri işlemek için iki yönlü güç tedarikini ve bipolar bütünleme kullanarak, dinamik aralığı genişletin.
- [FONT=0) Yüksek Sampling Oranları[[Dönem: 3D): Bir Genç veya daha hızlı mikrokontrolörleri onlarca kilo için kullanışlı, ses için kullanışlı.
- [FONT=0)DAKDIZ[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜD
Daha ayrıntılı teori için, PWM nesli üzerindeki yazarların metinleri ([Döneticileri) olarak incelenebilir.TheWikipedia Delta Modulation page) ve [[Üye Olmayanlar:2)Analog Cihazları op-amp bütünleştirici)
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Bir Arduino ve temel bileşenlerle bir delta modülatörü inşa etmek, temel sinyal işleme tekniğini kullanarak sayısal bir şekilde analiz edilir.Komatör, bütünleyici ve geri bildirim döngüsü inşa ederek, ve hassas bir örnekleme rutini yazarak, analog sinyallerin nasıl sayısal olarak kullanıldığına dair bilgi sahibi olursunuz. Tamamlanan sinyal işleme için filtreleme, eğim ve eğimli test ilkeleri yalnızca doğrulayın, eğim ve granular gürültüyü keşfedin, ancak aynı zamanda, aynı zamanda bir optimizasyon yöntemi ve daha yüksek performans alternatifleri ile deneyerek bir platform olarak hizmet eder.