Procesarea semnalelor în timp real și offline
Procesarea digitală a semnalelor (DSP – Digital Signal Processing) stă la baza multor aplicații moderne: de la senzori industriali, analiză de vibrații și monitorizare medicală, până la audio, video și comunicații. În practică, lucrăm cu două scenarii principale:
- Procesare în timp real – semnalul este prelucrat imediat ce este achiziționat (e.g. la fiecare eșantion sau la fiecare buffer mic de date).
- Procesare offline – datele sunt înregistrate, salvate și prelucrate ulterior (analiză mai complexă, fără constrângeri stricte de timp).
Mai jos sunt cele mai importante tipuri de procesări de semnal folosite atât în timp real, cât și offline, cu explicații și exemple practice.
1. Filtrare: low-pass, high-pass, band-pass, median, moving average
Filtrarea este probabil cea mai folosită operație în procesarea semnalelor. Scopul ei este să păstreze informația utilă și să reducă zgomotul sau componentele nedorite.
- Filtru trece-jos (low-pass) – lasă să treacă frecvențele joase și atenuează frecvențele înalte.
Exemplu: netezirea unui semnal de temperatură sau vibrații pentru a elimina zgomotul rapid. - Filtru trece-sus (high-pass) – lasă să treacă frecvențele înalte, eliminând variațiile lente (trend).
Exemplu: scoaterea offset-ului DC dintr-un semnal de senzor. - Filtru trece-bandă (band-pass) – păstrează doar un interval de frecvențe.
Exemplu: izolarea unei frecvențe specifice de rezonanță a unui motor. - Filtru median foarte util la senzori – într-o fereastră de eșantioane, ia valoarea mediană. Elimină bine „țepii” (spike-uri) fără să deplaseze faza semnalului.
- Filtru cu medie mobilă (moving average) – înlocuiește fiecare punct cu media unui număr de eșantioane din jur. Simplu, rapid și potrivit pentru implementare în timp real.
Offline: se pot aplica filtre mai complexe (filtre de ordin mare, optimizate, filtrare bidirecțională pentru a elimina întârzierea de fază).
2. Detectarea de vârfuri (Peak Detection)
Detectarea de vârfuri (peak detection) înseamnă identificarea punctelor în care semnalul atinge valori maxime semnificative (vârfuri) sau minime (valei).
- Metoda simplă – un eșantion este considerat vârf dacă este mai mare decât vecinii săi.
- Cu prag (threshold) – un vârf este valid doar dacă depășește o valoare minimă (nivel de zgomot).
- Prin distanță și proeminență (prominence) – se impune o distanță minimă între vârfuri și o diferență minimă față de vecini.
Exemple de utilizare:
- Numărarea vibrațiilor sau a impulsurilor mecanice într-un anumit interval de timp.
- Detectarea bătăilor inimii în semnale biometrice (ECG, PPG).
- Identificarea șocurilor sau evenimentelor de impact într-o mașină sau în structură.
Offline: se pot face statistici, histograme, distribuții ale amplitudinii vârfurilor etc.
3. Denoising: eliminarea zgomotului (Kalman, wavelet, mediană)
Denoising înseamnă reducerea zgomotului din semnal, păstrând cât mai bine informația utilă.
- Filtrul Kalman – tehnică recursivă probabilistică, foarte folosită pentru fuziunea de senzori (poziție, viteză, accelerație). Ideal pentru timp real.
- Transformata wavelet – permite analiză locală pe frecvențe și timp. Bună pentru denoising offline (de exemplu, semnale de vibrații complexe).
- Filtru median – simplu și eficient, elimină impulsurile bruște fără a distorsiona excesiv semnalul.
Denoising-ul este esențial atunci când semnalul provine dintr-un mediu zgomotos (motor, utilaj, rețea electrică etc.).
4. Transformări: FFT, DCT, STFT și analiza spectrală
De multe ori, nu este suficient să analizăm semnalul în domeniul timp. Avem nevoie de informații despre frecvențe. Aici intervin transformările:
- FFT (Fast Fourier Transform) – transformă semnalul din timp în frecvență. Permite identificarea frecvențelor dominante, armonicilor, rezonanțelor.
- DCT (Discrete Cosine Transform) – folosită mult în compresia de imagine și semnale, dar și pentru anumite analize spectrale.
- STFT (Short-Time Fourier Transform) – aplică FFT pe ferestre scurte de timp, oferind un compromis între rezoluția temporală și cea spectrală (spectrogramă).
Offline: se pot analiza în detaliu spectre, spectrograme și evoluții de frecvență pentru diagnostic și raportare.
5. Normalizare și scalare
Normalizarea și scalarea aduc semnalul într-un interval standard (de exemplu, între 0 și 1 sau între -1 și 1). Acest lucru este foarte important atunci când:
- Comparam semnale provenite din surse diferite.
- Pregătim date pentru algoritmi de Machine Learning.
- Vrem să evităm saturația numerică (overflow) pe platforme cu resurse limitate.
Exemple:
- Min-max scaling – aduce valorile între 0 și 1.
- Standardizare – semnal cu medie 0 și deviație standard 1.
6. Calcul statistic: medie, varianță, deviație standard, skewness, kurtosis
Statisticile de bază oferă o imagine globală asupra semnalului:
- Media – valoarea medie (nivelul „de bază” al semnalului).
- Varianța și deviația standard – măsoară cât de mult variază semnalul în jurul mediei (nivel de „agitație”).
- Skewness – indică asimetria distribuției valorilor.
- Kurtosis – indică „ascuțimea” distribuției (prezența valorilor extreme).
Aceste măsuri sunt folosite atât:
- în timp real – pentru monitorizare rapidă (de exemplu, deviația standard crește când apar vibrații anormale);
- offline – pentru analiză detaliată și generarea de rapoarte.
7. Detectarea de evenimente: praguri și zero-crossing
În multe aplicații, nu ne interesează tot semnalul, ci doar evenimentele:
- Thresholding (prag) – un eveniment este detectat când semnalul depășește un anumit nivel.
Exemplu: alarmă când vibrațiile depășesc o valoare critică. - Zero-crossing – numărarea trecerilor prin zero (din negativ în pozitiv sau invers).
Exemplu: estimarea frecvenței unui semnal simplu sau detectarea perioadelor.
8. Smoothing: netezirea semnalului (exponențial, Savitzky–Golay)
Smoothing (netezirea) este o formă specială de filtrare folosită pentru a face semnalul „mai lin”, fără a-l distorsiona grav.
- Smoothing exponențial – o formă de medie mobilă în care ultimele valori au o pondere mai mare. Ideal pentru timp real, fiind recursiv.
- Filtrul Savitzky–Golay – ajustează local un polinom peste puncte și îl folosește pentru netezire. Păstrează destul de bine forma și vârfurile semnalului. Potrivit mai ales offline.
9. Decimare și interpolare
Decimarea și interpolarea sunt tehnici de schimbare a ratei de eșantionare:
- Decimare – reducerea numărului de eșantioane (downsampling).
Se folosește pentru a micșora cantitatea de date sau pentru a adapta semnalul la o rată mai mică. - Interpolare – creșterea numărului de eșantioane (upsampling) prin „inserarea” de puncte noi între cele existente.
Se folosește pentru a reconstrui un semnal cu rezoluție mai mare sau pentru a-l adapta la o rată mai mare.
În practică, decimarea se face aproape întotdeauna împreună cu un filtru trece-jos (pentru a evita aliasing-ul).
10. Autocorelație și corelație încrucișată
Autocorelația și corelația încrucișată sunt folosite pentru a compara un semnal cu el însuși sau cu alt semnal.
- Autocorelația – compară semnalul cu versiuni întârziate ale lui.
Utilă pentru a găsi perioade, frecvențe dominante, repetitivitate. - Corelația încrucișată – compară două semnale între ele.
Utilă pentru a găsi întârzierea (lag-ul) dintre semnale sau pentru a detecta un model (template) într-un semnal mai lung.
11. Detectarea trendului și a anomaliilor
În multe aplicații industriale și de monitorizare, scopul final nu este doar filtrarea semnalului, ci detectarea trendurilor și a anomaliilor.
- Trend – evoluția pe termen lung a unei mărimi (de exemplu, creșterea treptată a nivelului de vibrații sau a temperaturii).
- Anomalii – comportamente neobișnuite, care se abat de la „normal” (vârfuri foarte mari, schimbări bruște de statistică, apariția unor noi componente de frecvență).
Detectarea trendului și a anomaliilor se poate baza pe:
- statistici simple (medie, deviație standard pe ferestre glisante);
- analize în frecvență (apar noi frecvențe sau se schimbă amplitudinile);
- algoritmi de Machine Learning sau anomaly detection specializați (mai ales offline).
Offline: se analizează istoricul și se construiesc modele predictive pentru mentenanță preventivă.
12. Alte procesări utile
În funcție de aplicație, se pot folosi și alte tehnici avansate:
- Filtre adaptive (LMS, RLS) – își modifică coeficienții în funcție de semnal, pentru a urmări variațiile în timp.
- Filtre notch – elimină o frecvență foarte îngustă (de ex. 50/60 Hz din rețeaua electrică).
- Feature extraction – extragerea unor indicatori numerici (features) pentru clasificare sau diagnostic automat.
- Downstream ML/AI – folosirea semnalelor preprocesate ca intrare pentru rețele neuronale, SVM etc.
Concluzie
Procesarea semnalelor, fie în timp real, fie offline, este un „set de unelte” care ne permite să transformăm datele brute de la senzori în informație utilă pentru decizii, diagnostic și control. Filtrarea, detectarea de vârfuri, denoising-ul, transformările în frecvență, statisticile, corelația, decimarea și detectarea de trend/anomalii sunt printre cele mai importante operații folosite în practică.
Alegerea tehnicilor potrivite depinde de:
- tipul de semnal (vibrații, temperatură, audio, EMG, etc.);
- resursele hardware disponibile (microcontroler, PC, server);
- dacă trebuie să lucrăm în timp real sau avem posibilitatea de a procesa offline.
Odată ce aceste blocuri de bază sunt puse la punct și bine înțelese, se pot construi deasupra lor sisteme complexe de analiză, diagnostic și control inteligent în aproape orice domeniu tehnic.
Susține acest blog
Cumpărând de pe https://mag.automatic-house.ro/ro/ susții blogul meu, iar 10% din vânzări vor fi direcționate către Fundația Dăruiește Viață. Îți mulțumesc!
Mulțumesc pentru atenție!
Pentru întrebări și/sau consultanță tehnică vă stau la dispoziție pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro.
O zi plăcută tuturor !
Back to top of page