Filter akses rendah: semua yang perlu Anda ketahui tentang sirkuit ini

sirkuit filter lolos rendah

Coil dan op amp memungkinkan Anda membuat sirkuit yang sangat menarik, seperti yang terkenal filter frekuensi. Filter ini memiliki banyak aplikasi di industri elektronik. Seperti kasus low pass filter, high pass filter, dll. Mereka sangat menarik untuk aplikasi suara tertentu, mampu menyaring suara, atau suara yang kurang lebih serius menurut frekuensinya. Karena itu, mereka sangat berguna.

Jika Anda ingin tahu lebih banyak tentang filter lolos rendah, dan filter lainnya, dan bagaimana mereka dapat membantu Anda dalam proyek Anda dengan Arduino atau DIY, saya mendorong Anda untuk terus membaca ...

Filter listrik

Seperti namanya, filter adalah rangkaian yang terdiri dari serangkaian kumparan dan kapasitor, dan bahkan beberapa penguat operasional, untuk tujuan membiarkan hanya bagian tertentu dari frekuensi yang lewat. Artinya, dari seluruh spektrum frekuensi yang tersedia, mereka akan menyaring satu atau lebih bagian untuk mencegahnya lewat.

Ya untuk ejemplo Kita berbicara tentang spektrum yang dapat didengar oleh manusia, yang berkisar dari 20 Hz hingga 20 Khz, dengan filter Anda dapat menghilangkan yang terendah, atau tertinggi, untuk hanya memungkinkan lebih banyak atau lebih sedikit suara treble / bass lewat. Ini adalah sesuatu yang digunakan oleh banyak sistem perekaman atau reproduksi audio, seperti mikrofon, speaker, dll.

Jenis

Menurut jenis filter, atau lebih tepatnya, tergantung pada frekuensi yang mereka blokir atau yang mereka lepaskan, ada berbagai jenis rangkaian yaitu:

  • Filter lolos rendah: mereka disebut demikian karena mereka adalah filter yang membiarkan frekuensi terendah lewat dan menekan atau mengurangi lewatnya frekuensi yang lebih tinggi. Mereka terdiri dari satu atau lebih kumparan (secara seri dengan catu daya dan beban), dan satu atau dua kapasitor shunt dengan catu daya dan beban. Ingat bahwa beban dipahami sebagai perangkat yang terhubung ke filter dan yang mengumpulkan keluaran filter ... Di dalam filter ini juga terdapat varian, seperti L, T dan π.
  • Pass filter tinggi: filter high pass adalah kebalikan dari low pass, dalam hal ini, yang akan memfilter atau membatasi adalah pass frekuensi rendah, membiarkan frekuensi yang lebih tinggi lewat. Dalam elemen elektronik yang menyusunnya diinvestasikan. Artinya, di sini kapasitor akan menjadi satu seri dengan catu daya dan beban, sedangkan kumparan akan dihaluskan. Ada juga subtipe yang sama seperti dalam kasus filter akses rendah.
  • Filter band pass: Jenis filter ini menggunakan dua blok tingkat kelulusan pita frekuensi. Artinya, mereka bertindak baik sebagai filter lolos rendah dan sebagai filter lolos tinggi, menentang lewatnya frekuensi terendah dan juga tertinggi pada saat bersamaan. Dengan kata lain, itu hanya memungkinkan frekuensi tengah lewat.
  • Filter pita: ini persis kebalikan dari yang sebelumnya, yang dilakukannya adalah menyaring lewatnya frekuensi menengah dan hanya memungkinkan melalui frekuensi terendah dan tertinggi.

Ingat itu induktansi mereka mengizinkan frekuensi rendah untuk melewati dan melawan frekuensi tinggi. Sebagai gantinya, kapasitor mereka membiarkan frekuensi tinggi dan menentang lewatnya frekuensi rendah.

Saya ingin menambahkan filter itu pada tingkat praktis mereka tidak sempurna, dan mereka selalu dapat membiarkan frekuensi rendah atau tinggi yang harus Anda blokir. Namun, mereka melakukan tugasnya dengan cukup baik untuk sebagian besar aplikasi.

Dan terakhir, saya juga ingin mengklarifikasi hal lain, yaitu Anda pasti pernah mendengar tentang Filter EMA dan DEMA. Filter EMA (Exponential Moving Average) memungkinkan Anda menerapkan jenis filter ini dengan cara yang sederhana di perangkat yang disematkan. Sedangkan untuk DEMA (Double Exponential Moving Average), mereka memiliki respons yang lebih cepat daripada EMA, mempertahankan penekanan yang baik dari kebisingan yang ingin Anda hindari.

Faktor alfa

El faktor alfa, yang akan Anda lihat yang muncul di kode Arduino IDE di bagian selanjutnya, adalah parameter yang mengkondisikan perilaku filter eksponensial. Ini terkait dengan frekuensi cutoff:

  • Alpha = 1: yang memberikan sinyal ke keluaran tanpa filter.
  • Alpha = 0: nilai filter akan selalu 0.
  • Alpha = x: nilai lain bisa mendapatkan perubahan lain di filter EMA. Jika Anda menurunkan faktor Alpha, Anda akan melunakkan sinyal frekuensi yang diperoleh lebih banyak, dan waktu respons sistem juga meningkat (diperlukan waktu lebih lama untuk stabil).

Filter dan Arduino

Bus Arduino I2C

Untuk penggunaan filter ini, penggunaan library untuk Arduino IDE akan membuat pekerjaan Anda lebih mudah. Kamu bisa memakai ini sama.

Anda harus tahu bahwa tidak perlu membuat sirkuit filter lolos tinggi atau filter lolos rendah untuk menghubungkannya ke papan Arduino Anda dan bekerja dengannya. Meskipun Anda dapat bereksperimen dan membuat filter sederhana semacam ini, Anda juga dapat menguji bagaimana EMA akan bekerja hanya dengan papan Arduino dan kode sederhana untuk Arduino IDE. Ini adalah satu-satunya hal yang Anda butuhkan untuk melihat bagaimana ia bertugas menyaring beberapa frekuensi (dalam hal ini tindakan disimulasikan dan beberapa bilangan bulat / float hanya disaring mensimulasikan apa yang akan saya lakukan filter sebenarnya).

Berikut beberapa contoh kode yang bisa Anda gunakan untuk berlatih.

Contoh filter digital sederhana di Arduino tipe lulus rendah:

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);

Contoh kode untuk tipe Arduino Umpan tinggi:

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
}

Contoh kode Arduino lulus band:

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);                              
}

Contoh kode Arduino untuk band:

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);                                
}

Ingatlah bahwa ADC adalah konverter Analog Digital Arduino. Gunakan rentang 0-5v, bagi menjadi rentang 0-1023. Jika nilainya 0v, nilai digital 0 diambil, dan jika 5v, 1023 akan diambil sebagai nilai sinyal, 1v bisa 204m, 2v akan 408, dll.

Saya menyarankan Anda untuk memodifikasi dan bereksperimen dengan kode-kode ini. Hasilnya kamu bisa lihat dengan sangat grafis terima kasih kepada Serial Plotter dari Arduino IDE ... Ingatlah bahwa jika Anda memiliki pertanyaan tentang pemrograman Arduino atau cara menggunakan IDE, Anda dapat mengunduh kursus HwLibre gratis dalam PDF.


Jadilah yang pertama mengomentari

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.