कमी पास फिल्टर: आपल्याला या सर्किटबद्दल माहिती असणे आवश्यक आहे

लो पास फिल्टर सर्किट

कॉइल्स आणि ऑप एम्प्स आपल्याला प्रसिद्ध असलेल्यासारख्या अतिशय मनोरंजक सर्किट्स तयार करण्याची परवानगी देतात वारंवारता फिल्टर. या फिल्टरमध्ये इलेक्ट्रॉनिक्स उद्योगात अनेक अनुप्रयोग आहेत. लो पास फिल्टर, हाय पास फिल्टर इत्यादीच्या बाबतीत. ते विशिष्ट ध्वनी अनुप्रयोगांसाठी विशेषत: स्वारस्यपूर्ण आहेत, आवाज वारंवारतेसाठी फिल्टर करण्यास सक्षम आहेत किंवा त्यांच्या वारंवारतेनुसार कमीतकमी गंभीर आवाज. म्हणून, ते खूप उपयुक्त आहेत.

आपण याबद्दल अधिक जाणून घेऊ इच्छित असल्यास कमी पास फिल्टरआणि अन्य फिल्टर्स आणि ते आर्दूनो किंवा डीआयवाय सह आपल्या प्रकल्पांमध्ये आपली कशी मदत करू शकतात, मी आपल्याला वाचन सुरू ठेवण्यासाठी प्रोत्साहित करतो ...

इलेक्ट्रिक फिल्टर

जसे त्याचे नाव दर्शविते, फिल्टर हे एक सर्किट आहे जे कॉइल आणि कॅपेसिटरच्या मालिकेद्वारे बनलेले आहे, आणि काही परिचालन वर्धक देखील आहेत वारंवारतेचे काही भागच जाऊ देत. म्हणजेच, उपलब्ध वारंवारतेच्या संपूर्ण स्पेक्ट्रमपैकी, ते जाण्यापासून रोखण्यासाठी ते एक किंवा अधिक भाग फिल्टर करतील.

होय साठी इमेम्प्लो आम्ही मानवाद्वारे ऐकण्यायोग्य स्पेक्ट्रमबद्दल बोलत आहोत, जे 20 हर्ट्झ ते 20 खर्ज पर्यंतच्या फिल्टरसह आपण कमीतकमी किंवा सर्वात जास्त काढून टाकू शकू जेणेकरून फक्त अधिक किंवा कमी ट्रेबल / बास नाद होऊ देऊ शकणार नाही. हे असे काहीतरी आहे जे बर्‍याच ऑडिओ रेकॉर्डिंग किंवा पुनरुत्पादन प्रणाली वापरतात, जसे मायक्रोफोन, स्पीकर्स इ.

प्रकार

मते फिल्टर प्रकारकिंवा त्याऐवजी, त्यांनी अवरोधित केलेल्या वारंवारतेवर किंवा त्यांच्याद्वारे काढलेल्या एका आधारावर, तेथे भिन्न प्रकारचे सर्किट्स आहेतः

  • कमी पास फिल्टर: त्यांना असे म्हणतात कारण तेच ते फिल्टर आहेत जे सर्वात कमी फ्रिक्वेन्सी पास करतात आणि उच्च वारंवारतेचा पास कमी करू शकतात. त्यात एक किंवा अधिक कॉइल (वीजपुरवठा आणि लोडसहित मालिका) आणि वीज पुरवठा आणि भार असलेले एक किंवा दोन शंट कॅपेसिटर असतात. लक्षात ठेवा की लोड हे फिल्टरला कनेक्ट केलेले डिव्हाइस असल्याचे समजले जाते आणि ते फिल्टरचे आउटपुट संकलित करते ... या फिल्टरमध्ये एल, टी आणि इतर रूपे देखील आहेत. π.
  • उच्च पास फिल्टर: उच्च पास फिल्टर कमी पासच्या विरूद्ध आहे, या प्रकरणात, फिल्टर किंवा मर्यादा काय कमी फ्रिक्वेन्सी पास देऊन, कमी वारंवारता पास आहे. यात ते तयार करणारे इलेक्ट्रॉनिक घटक गुंतवले जातात. म्हणजेच, येथे कॅपेसिटर विद्युत पुरवठा आणि लोडसह मालिकेत असतील, तर कॉइल बंद केले जातील. कमी पास फिल्टरच्या बाबतीत देखील असेच उपप्रकार आहेत.
  • बँड पास फिल्टर: या प्रकारचे फिल्टर दोन फ्रीक्वेंसी बँड पास रेट अवरोध आणते. म्हणजेच, ते कमी पास फिल्टर आणि उच्च पास फिल्टर म्हणून दोन्ही कार्य करतात, सर्वात कमी वारंवारता उत्तीर्ण होण्यास विरोध करतात आणि त्याच वेळी सर्वोच्च देखील. दुसर्‍या शब्दांत, हे केवळ मध्यम फ्रिक्वेन्सीमधून जाण्याची परवानगी देते.
  • बॅन्ड फिल्टर: हे मागीलच्या अगदी अगदी उलट आहे, ते काय करते हे मध्य फ्रिक्वेन्सीचे पास फिल्टर करते आणि फक्त सर्वात कमी आणि सर्वोच्च फ्रिक्वेन्सीद्वारे कार्य करते.

ते लक्षात ठेवा उपक्रम ते कमी फ्रिक्वेन्सीतून जाण्याची परवानगी देतात आणि उच्च वारंवारतेला विरोध करतात. त्याऐवजी कॅपेसिटर ते उच्च फ्रिक्वेन्सी घेतात आणि कमी वारंवारता उत्तीर्ण करण्यास विरोध करतात.

मी ते फिल्टर व्यावहारिक स्तरावर जोडू इच्छित आहे ते परिपूर्ण नाहीत, आणि आपणास अवरोधित करणे आवश्यक आहे अशा काही कमी किंवा उच्च आवृत्त्या ते नेहमीच देऊ शकतात. तथापि, बहुतेक अनुप्रयोगांसाठी ते त्यांचे कार्य बर्‍यापैकी चांगले करतात.

आणि शेवटी मी आणखी एक स्पष्टीकरण देऊ इच्छितो आणि ती म्हणजे आपण निश्चितच त्याबद्दल ऐकले आहे EMA आणि DEMA फिल्टर. एएमए (एक्सपोन्शियल मूव्हिंग एव्हरेज) फिल्टर्स एम्बेड केलेल्या डिव्हाइसमध्ये या प्रकारचे फिल्टर सोप्या पद्धतीने लागू करण्याची परवानगी देतात. डीएमए (डबल एक्सपेंशनियल मूव्हिंग एव्हरेज) म्हणून, आपण टाळू इच्छित आवाजाचे चांगले दडपण कायम ठेवून, EMA पेक्षा त्यांचा वेगवान प्रतिसाद आहे.

अल्फा घटक

El अल्फा घटक, जे आपण पुढील भागात अर्डुइनो आयडीई कोडमध्ये दिसेल हे एक घटक आहे जे घातांकीय फिल्टरच्या वर्तनाची स्थिती दर्शविते. हे कटऑफ वारंवारतेशी संबंधित आहे:

  • अल्फा = 1: न छापलेल्या आउटपुटला सिग्नल प्रदान करते.
  • अल्फा = 0: फिल्टर मूल्य नेहमी 0 असेल.
  • अल्फा = एक्स: ईएमए फिल्टरमध्ये इतर मूल्ये अन्य बदल मिळवू शकतात. आपण अल्फा घटक कमी केल्यास आपण प्राप्त वारंवारता सिग्नल अधिक मऊ कराल आणि सिस्टमचा प्रतिसाद वेळ देखील वाढला आहे (स्थिर होण्यास यास जास्त वेळ लागतो).

फिल्टर आणि अर्दूनो

अरुडिनो आय 2 सी बस

या फिल्टरच्या वापरासाठी, आर्डिनो आयडीईसाठी लायब्ररीचा वापर आपले कार्य अधिक सुलभ करेल. आपण वापरू शकता हे समान.

आपल्याला माहित असावे की सर्किट तयार करणे आवश्यक नाही उच्च पास फिल्टर किंवा लो पास फिल्टर आपल्या अरडिनो बोर्डशी कनेक्ट करण्यासाठी आणि त्यासह कार्य करण्यासाठी. आपण या प्रकारचे साधे फिल्टर प्रयोग करू आणि तयार करू शकत असला तरीही, फक्त अर्डिनो बोर्ड आणि अर्दूनो आयडीईसाठी एक सोपी कोडसह ईएमए कार्य कसे करेल याची आपण चाचणी देखील घेऊ शकता. आपल्याला फक्त काही फ्रिक्वेन्सीज फिल्टर करण्याच्या प्रभारी कसे हे पाहण्याची आवश्यकता आहे (या प्रकरणात कृती नक्कल केली जाते आणि काही पूर्णांक / फ्लोट्स फक्त फिल्टर केल्या जातात मी काय करावे हे नक्कल करीत आहे प्रत्यक्षात फिल्टर करा).

येथे काही कोड नमुने आहेत जे आपण सराव करण्यासाठी वापरू शकता.

प्रकारच्या आरडुइनो मधील सामान्य डिजिटल फिल्टरचे उदाहरण कमी पास:

float   lowpass_prev_out[LOWPASS_ANALOG_PIN_AMT], 
         lowpass_cur_out[LOWPASS_ANALOG_PIN_AMT];
int        lowpass_input[LOWPASS_ANALOG_PIN_AMT];
 
 
int adcsample_and_lowpass(int pin, int sample_rate, int samples, float alpha, char use_previous) {
  // pin:            Pin analógico de Arduino usado
  // sample_rate:    El ratio adecuado
  // samples:        Samples
  // alpha:          El factor Alpha para el filtro paso bajo
  // use_previous:   Si es true se sigue ajustando hasta el valor más reciente. 
 
  float one_minus_alpha = 1.0-alpha;
  int micro_delay=max(100, (1000000/sample_rate) - 160);  
  if (!use_previous) { 
    lowpass_input[pin] = analogRead(pin);
    lowpass_prev_out[pin]=lowpass_input[pin]; 
  }
  int i;
  for (i=samples;i>0;i--) {
    delayMicroseconds(micro_delay);
    lowpass_input[pin] = analogRead(pin);
    lowpass_cur_out[pin] = alpha*lowpass_input[pin] + one_minus_alpha*lowpass_prev_out[pin];
    lowpass_prev_out[pin]=lowpass_cur_out[pin];
  }
  return lowpass_cur_out[pin];
}
 
int resulting_value;
 
void setup() {
   Serial.begin(9600);
   resulting_value = adcsample_and_lowpass(0, 1000, 300, 0.015, false); 
}
 
void loop() {
   resulting_value = adcsample_and_lowpass(0, 1000, 150, 0.015, true);  
   Serial.println(resulting_value);

अर्दूनो प्रकाराचे कोड उदाहरण उंच पास:

int sensorPin = 0;    //pin usado para el ADC
int sensorValue = 0;  //Inicia sensor variable equivalente a EMA Y
float EMA_a = 0.3;    //Inicialización del EMA Alpha
int EMA_S = 0;        //Iniciación del EMA s
int highpass = 0;
 
void setup(){
  Serial.begin(115200);              
  EMA_S = analogRead(sensorPin);     
}
 
void loop(){
  sensorValue = analogRead(sensorPin);              //Lee el valor del sensor ADC
  EMA_S = (EMA_a*sensorValue) + ((1-EMA_a)*EMA_S);  //Ejecuta el filtro EMA
  highpass = sensorValue - EMA_S;                   //Calcula la seña alta
 
  Serial.println(highpass);
   
  delay(20);                                //Espera 20ms
}

अर्डिनो कोड उदाहरण बँड पास:

int sensorPin = 0;        //Pin para el ADC
int sensorValue = 0;      //Inicia la variable del sensor, equivale a EMA Y
 
float EMA_a_low = 0.3;    //Inicia EMA Alpha
float EMA_a_high = 0.5;
 
int EMA_S_low = 0;        //Inicia EMA S
int EMA_S_high = 0;
 
int highpass = 0;
int bandpass = 0;
 
void setup(){
  Serial.begin(115200);                   
   
  EMA_S_low = analogRead(sensorPin);      
  EMA_S_high = analogRead(sensorPin);
}
 
void loop(){
  sensorValue = analogRead(sensorPin);    //Lee el valor del sensor ADC
   
  EMA_S_low = (EMA_a_low*sensorValue) + ((1-EMA_a_low)*EMA_S_low);  //Ejecuta EMA
  EMA_S_high = (EMA_a_high*sensorValue) + ((1-EMA_a_high)*EMA_S_high);
   
  highpass = sensorValue - EMA_S_low;     
  bandpass = EMA_S_high - EMA_S_low;     
 
  Serial.print(highpass);
  Serial.print(" ");
  Serial.println(bandpass);
   
  delay(20);                              
}

अर्डिनो कोड उदाहरण बँड साठी:

int sensorPin = 0;          //Pin usado para el ADC
int sensorValue = 0;        //Inicio para EMA Y
 
float EMA_a_low = 0.05;     //Inicio de EMA alpha 
float EMA_a_high = 0.4;
 
int EMA_S_low = 0;          //Inicia EMA S
int EMA_S_high = 0;
 
int highpass = 0;
int bandpass = 0;
int bandstop = 0;
 
void setup(){
  Serial.begin(115200);                     
   
  EMA_S_low = analogRead(sensorPin);        
  EMA_S_high = analogRead(sensorPin);
}
 
void loop(){
  sensorValue = analogRead(sensorPin);      //Lee el valor del sensor ADC
   
  EMA_S_low = (EMA_a_low*sensorValue) + ((1-EMA_a_low)*EMA_S_low);          //Ejecuta EMA
  EMA_S_high = (EMA_a_high*sensorValue) + ((1-EMA_a_high)*EMA_S_high);
   
  bandpass = EMA_S_high - EMA_S_low;       
 
  bandstop = sensorValue - bandpass;        
 
  Serial.print(sensorValue);
  Serial.print(" ");
  Serial.print(EMA_S_low);
  Serial.print(" ");
  Serial.println(bandstop);
   
  delay(20);                                
}

लक्षात ठेवा की एडीसी अर्डिनो एनालॉग डिजिटल कनव्हर्टर आहे. 0-5v श्रेणी वापरा, 0-1023 च्या श्रेणीत विभाजित करा. मूल्य 0 व्ही असल्यास 0 चे डिजिटल मूल्य घेतले जाईल आणि ते 5 व्ही असल्यास 1023 हे सिग्नल मूल्य म्हणून घेतले जाईल, 1v 204 मी असू शकते, 2 व्ही 408 इ.

मी आपल्याला या कोड सुधारित करण्यासाठी आणि प्रयोग करण्याचा सल्ला देतो. परिणाम आपण हे करू शकता अतिशय ग्राफिकपणे पहा अर्दूनो आयडीईच्या सीरियल प्लॉटरचे आभार ... लक्षात ठेवा आपल्याकडे अर्डूनो प्रोग्रामिंगबद्दल किंवा आयडीई कसे वापरायचे याबद्दल प्रश्न असल्यास आपण डाउनलोड करू शकता पीडीएफ मध्ये विनामूल्य HwLibre कोर्स.


टिप्पणी करणारे सर्वप्रथम व्हा

आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.