Documente Academic
Documente Profesional
Documente Cultură
net/publication/281836439
CITATIONS READS
3 1,055
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Cristian Paul Chioncel on 17 September 2015.
Prefaţă . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Semnalul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Necesitatea prelucrării semnalelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Senzorică, tehnica de măsurare şi prelucrarea analogică a semnalelor . . . . . 9
1.4 Schema de prelucrare digitală a datelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Anexe
4
B1.3 Corelaţia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
B1.3.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
B1.3.2 Corelaţia zgomotului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
B1.3.3 Autocorelaţia unui semnal afectat de zgomot . . . . . . . . . . . . . . . . . 197
B1.3.4 Mecanismul corelaţiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
5
PREFAŢĂ
Autorul
6
CAP. 1 INTRODUCERE
1.1 Semnalul
Semnalele, din punct de vedere fizic, reprezintă evoluţia in timp a unor mărimi
fizice cum ar fi: tensiunea electrica, câmpul magnetic, curentul electric, presiunea
acustica, etc. Cu alte cuvinte, un semnal reprezintă prezentarea unor informaţii.
Acesta se caracterizează prin valoarea amplitudinii sau modificarea valorii a unei
mărimi fizice in timp. Conform standardelor prin semnal se defineşte reprezentarea
fizică a informaţiilor sau a datelor.
7
Această tehnologie care are la bază ca model matematic teoria funcţiilor continue,
este valabilă şi astăzi dar implementarea unor prelucrări de mare fineţe este limitată
de tehnologie şi de preţ. Apariţia tehnologiei circuitelor digitale care a dus la
apariţia calculatoarelor numerice, şi-a pus amprenta şi asupra prelucrării
semnalelor. În primul rând calculatoarele numerice lucrează ca şi cum fenomenele
interne se modifică doar la momente bine precizate de timp, între două momente
succesive starea sistemului rămânând nemodificată. Apariţia acestei probleme a
dus la studierea consecinţelor care decurg din punct de vedere matematic şi fizic
prin transformarea semnalelor din funcţii definite pe o mulţime densă în funcţii
definite pe o mulţime discretă, adică se cunoaşte valoarea unui semnal doar în
momente discrete de timp nu şi între aceste momente.
Studiul acestor consecinţe a dus la stabilirea unei teorii care evidenţiază limite în
care este posibilă studierea fenomenelor din domeniul continuu cu tehnologie din
domeniul discret şi consecinţa acestei teorii a fost apariţia unor tehnologii de
conversie a semnalelor continue în semnale discrete în timp şi de semnale discrete
în timp în semnale continue. De asemenea s-a dezvoltat o teorie matematică prin
care s-a studiat transformarea sistemelor integro – diferenţiale, care reprezintă
modele matematice ale sistemelor în domeniul continuu în sisteme a căror evoluţie
se realizează în momente discrete de timp. Datorită capacităţii deosebite de
prelucrare a calculatoarelor utilizând tehnica discretă în timp, se pot realiza
prelucrări de mare fineţe asupra semnalelor.
8
Cu ajutorul conversiei semnalului, se pot obţine informaţii foarte importante pentru
diagnoza unui proces, în cazul unor semnale uşor măsurabile, dar care presupun un
efort ridicat de măsurare.
Metodele de prelucrare ale semnalelor conduc şi la o reducere a volumului de date
stocat, de exemplu, un semnal temporal înregistrat pe un interval de mai multe ore,
poate fi redus semnificativ prin aşa numita transformare Fourier, fără pierderea
parametrilor temporali ai informaţiei.
Separarea datelor permite ca din măsurarea unei singure mărimi, să se deducă o
multitudine de alte informaţii.
De asemenea, prin legarea matematică a datelor provenite de la mai multe semnale
măsurate, se pot determina parametrii importanţi ai unui sistem.
Prelucrarea semnalelor se ocupă aşadar de:
9
Fig. 1.1 Senzor de temperatura cu traductor de tensiune
Modificarea tensiunii ∆Uϑ, care poate fi măsurată numai prin Rϑ, este proporţională
cu modificarea temperaturii ∆ϑ. Aceasta se întâmplă doar dacă există o relaţie
lineară de legătură dintre modificarea de temperatura şi modificarea rezistenţei,
figura 1.2.
Semnalele discrete în timp apar mereu atunci când semnalele analogice trebuie
prelucrate în calculatoare digitale.
Tehnica electronicii moderne pentru semnale analogice lucrează în primul rând cu
amplificatoare operaţionale, cărora, prin conectarea externă de rezistenţe şi
condensatoare, li se impune un comportament dorit. De exemplu schema electrică
din figura 1.4 reprezintă un amplificator de tensiune, a cărui factor de amplificare V
este reglabil prin ajustarea celor două rezistenţe R1 şi R2.
Pentru a stabilii care este lăţimea de bandă a amplificării a unui amplificator sau a
unui lanţ întreg de măsurare, se aplică la intrarea circuitului ce urmează a fi
analizat, semnale sinusoidale de frecvenţe diferite dar de aceeaşi amplitudine.
Semnalul obţinut la ieşire va fi de asemenea sinusoidal şi de aceeaşi frecvenţă cu
cea a semnalului de la intrare, doar amplitudinile semnalului de la ieşire vor avea
pentru frecvenţe diferite ale semnalului de intrare, amplitudini diferite.
Pentru a exemplifica cele spuse anterior, dorim să stabilim lăţimea de bandă a
amplificatorului din figura 1.4. Rezistenţele sunt astfel alese încât factorul de
amplificare să fie V = 1000, ceea ce înseamnă că o tensiune continuă de ui = 1 mV
să fie amplificată la 1V.
12
În continuare se va efectua analiza amplificatorului, aşa cum este reprezentată în
figura 1.6, la frecvenţe diferite, prin reprezentarea factorului de amplificare
ue ( f i )
V ( fi ) = ; i = 1, 2, … , n; (1.3.1)
ui ( f i )
13
Pe aceasta caracteristică a frecvenţei, se poate recunoaşte că la frecvenţe mici, se
înregistrează amplificări constante iar cu creşterea frecvenţei semnalului de intrare,
amplificarea se reduce. Domeniul de la 0 Hz până la locul în care amplificarea
scade la valoarea V(0)⋅1/ 2 , se numeşte banda de amplificare a amplificatorului.
Frecvenţa la care V = V(0)⋅1/ 2 se numeşte frecvenţa limită a amplificatorului,
figura 1.7.
Fig. 1.8 Schemă echivalentă a intrării unui amplificator operaţional la frecvenţe ridicate
14
În timp ce în conexiunile cascadă ale amplificatoarelor apariţia atenuării la
frecvenţe ridicate este un fenomen nedorit, în alte situaţii se urmăreşte exact acest
fenomen, prin care anumitor elemente dintr-un lanţ de măsurare să li se imprime o
caracteristică specială de frecvenţă.
Dorim să clarificăm aceste legături pe baza unui exemplu. Lanţul de măsurare
extins acum printr-un amplificator, figura 1.9, ascunde pericolul ca datorită
rezistenţei de intrare ridicate să apară perturbaţii ale tensiunii de alimentare de la
reţea în calea semnalului, care se suprapun peste semnalul măsurat, figura 1.10.
Dacă temperatura se modifică foarte încet, astfel încât modificări sunt recunoscute
în aproximativ 10 sec., semnalului măsurat îi poate fi asociată o frecvenţă maximă
de
15
1 1
f = = = 0.1Hz. (1.3.2)
T 10 sec
17
1.4 Schema de prelucrare digitală a datelor
Fig. 1.15 Plaja semnalului analogic si conversia acestuia in domeniul binar (DB) in urma
conversiei analog numerice
U ⋅ 255
DB = round IN (1.4.1)
10V
19
(”round” semnifica ca DB sunt rotunjite si pot avea numai valori întregi).
Exactitatea conversiei A/N depinde de rezoluţia convertorului analog numeric.
Pentru cazul analizat, domeniul tensiunii de intrare poate fi împărţit in 256 de
incremente distincte de 10 V / 256 = 39,1 mV. Aceasta înseamnă ca eroarea
maxima referitoare la valoarea finala de scala a semnalului de intrare este de
39.1 ⋅ 10 −3
⋅ 100% = 0.4%
10V
39.1 ⋅ 10 −3
⋅ 100% = 4%,
1V
creste aşadar cu de zece ori. Această eroare poate fi evitată dacă semnalul de
intrare este amplificat de aşa natura încât întregul domeniul de intrare al CAN sa
fie utilizata. Pentru cazul analizat, semnalul de intrare trebuie amplificat cu factorul
10, pentru a ajunge din nou la o marja a erorii de 0.4%.
Daca la intrare s-ar aplica o tensiune de intrare de exemplu de 25V, semnalul de
intrare trebuie atenuat cu factorul 2.5 pentru a putea cuprinde întreg domeniul cu
plaja de variaţie a CAN. Toate aceste operaţii sunt realizate de un amplificator /
atenuator existent înaintea intrării CAN.
Daca amplificatorul este prevăzut ca pe lângă posibilitatea de a amplifica sau
atenua semnalele, sa se însumeze o tensiune continua peste semnalul măsurat
(conexiune offset), se reuşeşte, ca semnalele de intrare, de o valoare oarecare pe
scara ordonatelor, sa fie transformata la valoarea tensiunii semnalului de intrare a
CAN.
In exemplul din figura 1.16, un semnal care oscilează in jurul nivelului de zero cu
∆u = 2V, este amplificat intr-o prima etapa cu un factor de 5 iar apoi, cu Offset-ul
de +5V, este ridicat si adus în plaja de intrare a CAN.
20
Fig. 1.16 Efectul unui amplificator cu Offset
In majoritatea cazurilor, astfel de amplificatoare deţin doua intrări, care pot fi alese
de utilizator:
Amplificatorul din figura 1.16, deţine o intrare DC, lăsând sa treacă atât tensiunea
continua cat si cea alternativa.
Un amplificator cu intrare AC, are la intrare un filtru trece sus (FTS) cu o frecvenţă
limită foarte joasă (de exemplu 0,5Hz). Acest filtru are rolul ca semnalele cu o
frecvenţă foarte joasă şi în special tensiunea continuă să fie eliminate iar tensiunea
alternativă, a cărei frecvenţă depăşeşte valoarea limită a FTS, să treacă.
Dacă de exemplu o tensiune alternativă este suprapusă unei tensiuni continue mult
mai mari, care nu mai poate fi compensata prin setarea de Offset, se recomandă,
atâta timp cât semnalul alternativ conţine informaţia dorită, sa se utilizeze in
operaţia de măsurare, intrarea AC, figura 1.17.
Filtrul trece sus elimină componenta continuă din semnal, iar ulterior semnalul
alternativ, este amplificat si repoziţionat astfel încât, domeniul de intrare al CAN să
fie din nou utilizat în totalitate.
Conform figurii 1.14, după amplificatorul de tensiune AC/DC urmează in
pregătirea prelucrării numerice a semnalului, un aşa numit filtru anti aliere (filtrul
AL). Rolul acestui filtru constă în aceea de a evita măsurări eronate, care ar putea
apărea în etapa următoare de eşantionare a semnalului continuu. Din acest motiv,
privim mai exact acum elementul de eşantionare si reţinere şi convertorul analog
numeric, pentru a revenii apoi din nou asupra filtrului AL.
21
Fig.1.17 Efectul unui amplificator cu intrare AC
Calculatoarele digitale, nu sunt, aşa cum s-a amintit şi mai devreme, capabile să
prelucreze semnale continue în timp continuu. In timp ce construcţii analogice pot
furniza la un semnal de intrare continuu un semnal de ieşire continuu, figura 1.18,
un calculator digital, poate, prin viteza de prelucrare finită, să citească şi să preia la
un moment dat, doar o valoare de amplitudine, apoi, în intervalul următor, să
prelucreze acea valoare (de exemplu să extragă rădăcina) iar apoi, într-un alt
interval de timp, să furnizeze această nouă valoare, de exemplu, spre afişare sau
către un port de ieşire.
Doar după trecerea acestei sume de intervale, calculatorul digital poate prelua o
noua valoarea a amplitudinii semnalului pentru a o prelucra si furniza mai departe.
22
Elementul de eşantionare si reţinere preia in acest context sarcina, ca la un anumit
moment (condus de către calculator) sa eşantioneze valoarea amplitudinii
semnalului analogic. Aceasta valoare este furnizata mai departe către CAN, si
păstrata atât timp de către elementul de reţinere, pana când CAN a transformat
tensiunea intr-o valoare numerica. Prin elementul de eşantionare si reţinere, se
evita ca semnalul analogic de la intrarea CAN, sa se modifice in timpul procesului
de conversie si astfel sa se genereze o valoare binară eronată.
Timpul intre doua eşantioane, se numeşte timp de eşantionare (T). Convertorul
analog – numeric generează din semnalul de intrare analogic aplicat la intrarea sa,
un număr binar, figura 1.19.a, care va fi disponibil calculatorului digital intr-un
registru serial sau paralel de ieşire.
1 1
• la 10 biţi: = ≈ 10 sau
2 10
1024 00
1 1
• la 2 biţi de = ≈ 0.25 0
2 12
4096 00
23
binara obţinută nu trebuie sa înceapă de la 0, astfel tensiunea de la intrare poate fi
reprodusa intr-o valoarea binara, de exemplu, intre -512 pana la +512, pentru un
CAN pe 10 biţi.
Din punct de vedere al teoriei semnalelor şi a sistemelor importanţă prezintă faptul
că semnalul analogic măsurat este cuantizat temporal (discretizat) de către
elementul de eşantionare şi reţinere, apoi cuantizat valoric (cuantizarea de
amplitudine).
1
fT = > 2 ⋅ f max (1.4.2)
T
fT 1
f g ( filtru _ al ) ≤ = (1.4.3)
2 2 ⋅T
24
Fig. 1.19.b Exemplu al efectului de aliere
25
prelucrare a datelor cu calculatoarele cărora le revine sarcina de prelucrare a unor
comenzi singulare. Dacă un astfel de calculator nu conţine doar o interfaţă de
comandă cu un operator, ci este conectat, de exemplu printr-un lanţ de măsurare, la
un proces în derulare în afară calculatorului, acesta este numit calculator de proces.
Calculatoarele de proces sunt calculatoare digitale care, pe lângă componentele
hardware de bază, dispun de o serie de completări:
un observator trebuie să aibă impresia că, în ciuda prezenţei unui singur procesor,
toate acţiunile se derulează în paralel, trebuie utilizat un sistem de operare în timp
real cu proprietatea Multi – Tasking.
Pentru îndeplinirea fiecărei acţiuni, există un program, un aşa numit „Task”. Cu
ajutorul unui aşa numit bloc de control al task-urilor (unui Task aparţin date, ca de
exemplu număr de identificare, stare şi prioritate de prelucrare) fiecare Task
26
comunică cu sistemul de operare. Task-urile pot avea în timpul derulării
programului (în timpul procesului de măsurare şi evaluare) două stări principale:
• de calcul,
• ne-calcul (acesta din urmă poate fi împărţit, pentru sistemele de operare în
timp real, în mai multe subdiviziuni).
Pentru ca un Task (proces) să poată trece în starea „de calcul”, sistemul de operare
trebuie să-i repartizeze procesorul. Un Task care se află în derulare trebuie să fie
întrerupt, de asemenea de către sistemul de operare. Doar Task-uri de prioritate
ridicată pot întrerupe Task-uri cu o prioritate mai scăzută. Astfel, de exemplu,
Task-ul corespunzător operaţiei de citire a datelor măsurate trebuie să deţină
prioritatea cea mai ridicată, pentru ca toate datele să poată fi citite fără pierderi.
Task-ul corespunzător calculării histogramei poate fi prevăzut cu o prioritate mai
scăzută, având la dispoziţie un timp echivalent cu 100 de cicluri de măsurare în
vederea calculării histogramei.
Task-urile, numite şi procese de calcul, nu parcurg toate etapele prevăzute, într-un
singur pas. Pentru a permite quasi o prelucrare paralelă a tuturor Task-urilor,
acestea sunt des întrerupte. Comutarea între Task-uri se realizează în pasul
frecvenţei de tact, sub comanda sistemului de operare, figura 1.21.
Fig. 1.21 Repartizarea temporală a Task-urilor într-un sistem de operare în timp real
De asemenea schimbarea stării unui Task, iar prin aceasta comutarea de la un Task
la altul, poate fi realizată şi de aşa numitele mecanisme de sincronizare a Task-
urilor. Astfel, de exemplu, Task-ul corespunzător calculării histogramei trebuie
activat, atunci când Task-ul de citire a datelor, a finalizat achiziţionarea a 100 de
valori. Aceasta se pune în practică, de exemplu, prin anunţarea unui eveniment.
27
Un calculator de proces trebuie, ca pe lângă proprietăţile amintite, să poată
reacţiona imediat la evenimente stohastice importante legate de proces. (de
exemplu iniţierea unei salvări a datelor şi a stărilor echipamentelor pe un mediu de
stocare permanent a datelor, atunci când recunoaşterea căderii reţelei de alimentare
detectează acest eveniment, timpul avut la dispoziţie de salvare a datelor fiind doar
de câteva milisecunde).
Sisteme simple de măsurare şi prelucrare a semnalelor în timp real pot fi
implementate şi fără un sistem de operare complet în timp real pe PC-uri sau
microcontrolere. În acest scop trebuie să se genereze o serie de întreruperi cu o
distanţă constantă. Timpul între două întreruperi este dată de timpul de eşantionare
T a sistemului. În cadrul duratei de eşantionare sistemul de măsurare trebuie să
preia valoarea măsurată de la CAN, să o stocheze, afişeze, prelucreze algoritmic şi
să afişeze acest rezultat al calculului. La următoarea întrerupere, acest fenomen se
repetă, figura 1.22:
Fig. 1.22 Principiul de funcţionare al unui sistem de măsurare în timp real cu întreruperi
28
Aşa cum s-a arătat, alegerea timpului de eşantionare este strâns legată de teorema
de eşantionare Shannon. Dacă se doreşte, de pildă măsurarea unor componente care
nu depăşesc frecvenţa maximă de 50 Hz, trebuie aleasă o frecvenţă de eşantionare
de cel puţin 100Hz, ceea ce corespunde unui timp de eşantionare de 10 ms.
Dacă rutina de service – întrerupere se realizează în limbaj de asamblare sau C şi se
utilizează un calculator PC pentru citirea şi analiza datelor, timpul necesar va fi cu
siguranţa mai mic de 10 ms. Dacă se impune parcurgerea unui algoritm complex de
calcul şi validare, este posibilă apariţia problemelor de timp. Astfel de situaţii au
consecinţe directe asupra:
29
achiziţie a datelor la algoritmi de calcul, costisitori din punct de vedere al timpului
necesar, citind şi stocând în timpul perioadei de eşantionare doar câte o valoare
(măsurare în timp real sau măsurare on-line) parcurgându-se ulterior, fără
realizarea altor măsurări, algoritmul de prelucrare al semnalelor şi se indică
rezultatul calculelor. Această modalitate este denumită drept prelucrare off-line.
Dezavantajul acestei proceduri constă evident în aceea că rezultatele măsurării
devin disponibile in timp abia după apariţia lor.
30
CAP. 2. ELEMENTE DE BAZA ALE TEORIEI SEMNALELOR
u (t ) = 2 ⋅ t (2.0.1)
t [s] 0 1 2 3 4 5 6 7 8 9
u(t) [V] 0 2 4 6 8 10 12 14 16 18
31
din care se determina apoi simplu graficul semnalului, modelul neparametric,
reprezentat in figura 2.1.b
t[s] f [Hz]
Fig. 2.2 Reprezentarea unui semnal sinusoidal de 50Hz si o amplitudine de 2 in domeniul
timp (stânga) si in domeniul frecventa (dreapta)
32
Pentru o reprezentare grafică corespunzătoare, se urmăreşte figura 2.3: semnalul
rezultat din însumarea celor trei semnale sinusoidale, evidenţiază clar in urma unei
analize Fourier in spectrul de amplitudine, oscilaţiile sinusoidale, amplitudinile si
frecventele aferente.
Fig. 2.3 Relaţii dintre domeniul timp - frecventa a unui semnal, evidenţiat prin analiza
Fourier
Daca un semnal oarecare, afectat de zgomot, este supus unei analize Fourier,
rezulta spectrul de amplitudine, figura 2.4.
Se urmăreşte in continuare, ca, pe baza analizei spectrale, să se poate deosebii
componentele de frecvenţă care fac parte din semnalul util şi cele care reprezintă
perturbaţii. Astfel, pe baza unor astfel de analize spectrale se stabilesc frecvenţele
limită pentru elaborarea filtrelor corespunzătoare în vederea eliminării
perturbaţiilor şi obţinerea semnalului util neafectat de frecvenţe parazite.
33
Fig. 2.4 Semnal afectat de zgomot si spectrul de amplitudine aferent
Semnal
determinist stohastic
34
O funcţie sau un semnal este numit determinist daca din cunoaşterea valorii
semnalului la un moment de timp dat t0 putem determina valoarea acestui semnal
in oricare moment de timp t. Cu alte cuvinte, legea de corespondenta dintre
mulţimea de definiţie si mulţimea in care ia valori funcţia este perfect cunoscută.
Din punct de vedere practic acest lucru înseamnă ca aceasta lege de corespondenta
este exprimata prin formule matematice. Aceasta se realizează, de exemplu, cu
modelul matematic al funcţiei temporale u(t)=2⋅t deja analizate.
O a doua categorie de semnale o reprezintă semnalele stohastice sau aleatoare la
care, figura 2.6, modelul matematic nu poate preciza valoarea funcţiei la un anumit
moment de timp t. Cu ajutorul statisticii, poate fi indicata, cu o probabilitate mărită,
care este domeniul de amplitudine in care variază o astfel de funcţie.
O privire exigentă, ne arată că toate semnalele sunt stohastice, dar pentru a putea fi
mai bine modelate matematic, acestea se aproximează de cele mai multe ori ca
fiind deterministe.
35
Evoluţia unui semnal care reprezintă o electrocardiograma, poate fi aproximat ca
fiind un semnal periodic. Semnalele aperiodice nu repeta forma semnalului. De
exemplu, funcţia e este un semnal aperiodic:
u (t ) = e − at a = const; (2.1.2)
Semnalele aperiodice pot fi definite de-a lungul întregii axe temporale, deci de o
lungime infinită sau tranzitorii. Semnale tranzitorii sunt doar peste un interval al
axei de timp diferite de zero.
Semnalele stohastice pot fi clasificate la rândul lor. Un criteriu important este cel
referitor la modificarea in timp a proprietăţilor statistice ale semnalului (de
exemplu valoarea medie). Daca semnalul îşi modifica proprietăţile, acesta este
considerat ca fiind nestaţionar altfel ca staţionar.
Daca clasificările amintite anterior, rezulta din natura semnalelor, ultimul criteriu,
figura 2.5, se bazează pe metodele de prelucrare a semnalului. La o prelucrare
numerica a semnalului (calculatoare digitale) toate semnalele sunt discrete iar la o
prelucrare analogica (filtrare RC) semnalele se păstrează continue respectiv
analogice.
Vorbim de semnale deterministe, atunci când evoluţia în timp a unui semnal poate
fi reprodus şi prevăzut cu exactitate. Semnale deterministe pot fi descrise cu
ajutorul modelelor continue si discrete.
36
2.2.1.1 Modele ale semnalelor continue în domeniul timp
• Semnale periodice
a. b.
Fig. 2.7 a. Semnale periodice armonice b. semnal cosinusoidal defazat
Dacă semnalul unei oscilaţii cosinusoidale nu porneşte exact din maximul pozitiv
(respectiv din zero în cazul unei oscilaţii sinusoidale), această modificare se
numeşte defazaj ϕ (vezi figura 2.7.b) şi este modelată astfel:
∧
u (t ) = u⋅ cos(2πf 0 t + ϕ 0 ) (2.2.4)
37
• Alte semnale periodice
∞
1 ∞ 1
u (t ) = a 0 + ∑a k cos 2πk t + bk sin 2πk t
∑ (2.2.5)
k =1 T k =1 T
T
1 1 1 T
∫ sin 2πk T t dt = − 1
cos 2πk t =
T 0
0 2πk
T (2.2.6)
1
(− cos(2πk ) + cos(0) ) = 1 (− 1 + 1) = 0, ∀k
1 1
2πk 2πk
T T
T
1 1 1 T
∫ cos 2πk T t dt = 1
sin 2πk t = 0, ∀k
T 0
(2.2.7)
0 2πk
T
T
1 1
∫ sin 2πk T t ⋅ sin 2πl T t dt =
0
1 1
T T
1 1 1
= ∫
2 0
cos
2πk
T
t − 2πl t
T
dt −
0 ∫
cos 2πk t + 2πl t dt
T T
38
1
T
2π
T
2π 1 T daca k = l
= ∫
cos (k − l )tdt − cos (
∫k + l )tdt = 2 (2.2.8)
2 0 T 0
T 0 daca k ≠ l
T
1 1
∫ cos 2π k T t ⋅ cos 2π l T t dt =
0
1 1
T T
1 1 1 (2.2.9)
= cos 2π k t + 2π l t dt + cos 2π k t − 2π l t dt
∫ ∫
2 0 T T 0 T T
1 2π 1
(k + l )tdt + cos 2π (k − l )tdt = 2 T
T T
daca k = l
= ∫
cos
2 0 T 0
T ∫ 0 daca
k ≠ l
T
1 1
∫ sin 2πk T t ⋅ cos 2πl T t dt =
0
1 1
T T
1 1 1 (2.2.10)
sin 2πk t + 2πl t dt + sin 2πk t − 2πl t dt
∫ ∫
2 0 T T 0 T T
1 2π
(k + l )tdt + sin 2π (k − l )tdt = 0, ∀k , l
T T
= sin
2 0 ∫T 0
T ∫
T T ∞ T ∞ T
1 1
∫ ∫
u (t ) = a 0 dt + ∑∫
k =1 0
a k cos 2πk t dt +
T
∑∫
k =1 0
bk sin 2πk t dt =
T
0 0
T ∞ T ∞ T
1 1
= a 0 dt + ∫ ∑ ∫
k =1 T k =1
∑ ∫
a k cos 2πk t dt + bk sin 2πk t dt =a 0T
T
0 0 0
T T
u (t )dt
1
∫ u (t ) = a T
0
0 ⇒ a0 =
T 0 ∫ (2.2.11)
39
1
Pentru determinarea coeficientului ak multiplicăm relaţia (2.2.5) cu cos 2πk t
T
şi integrăm pe o perioadă, rezultând:
T T
1 1
∫ u (t ) cos 2πk t dt = a 0 cos 2πk t dt +
∫
0 T 0 T
∞ T
1 1
+ ∑∫a
k =1 0
k cos 2πk t cos 2πl t dt +
T T
∞ T
1 1 1
+ ∑∫b
k =1 0
k sin 2πk t cos 2πl t dt = Ta k
T T 2
T
⇒ a k = 2 u (t ) cos 2πk 1 t dt , pentru k = 1 … ∞
∫ T 0 T
(2.2.12)
1 2π
− frecventa _ fundamentala − pulsatia _ fundamentala
T T
si astfel următorul model matematic al semnalului in forma unei serii Fourier (ω0 =
2π⋅f0):
∧
4u
sin (ω o t ) + sin (3ω o t ) + sin (5ω o t ) + sin (7ω o t ) + ... (2.2.14)
1 1 1
u (t ) =
π 3 5 7
40
Fig. 2.8 Semnal dreptunghiular cu perioada T0 si amplitudinea
41
la sase semnale însumate: corectitudinea modelarii creste cu indexul k in modelul
matematic (2.2.5).
şi cu relaţia (2.2.65)
42
U (k ⋅ ∆f ) = Re{U (k ⋅ ∆f )} + j Im{U (k ⋅ ∆f )} (2.2.16)
⋅ Im{U (k ⋅ ∆f )}
2
bk ≈ − b0 = 0 (2.2.17)
N
N
k = 0,1, 2, 3, …,
2
Fig. 2.11 Eşantionarea unei perioade a unui semnal pentru determinarea numerică a
coeficienţilor Fourier
43
• Semnale aperiodice
Funcţia impuls
0, t<0
∧
u (t ) = u , 0 ≤ t ≤ τ
0, t >τ
44
Funcţia exponenţială
∧ −vt
u (t ) = u⋅ e pt t ≥ 0
0 pt t < 0
45
• unui polinom,
• unei sume de funcţii trigonometrice,
• alte tipuri de funcţii [15].
Deoarece metoda sumei celor mai mici pătrate are o importanta fundamentală în
teoria semnalelor şi sistemelor, vom prezenta modelarea semnalelor aperiodice prin
aproximarea polinoamelor cu metoda CMMP.
Dacă printr-un număr de puncte de măsurare ui mas(t) urmează sa fie ridicata o curba
de aproximare, figura 2.13, exprimata de un polinom de forma
se impune fie ca
δ0 = δ1 = … = δn-1 = 0 (2.2.19)
sau
- suma erorilor
46
n −1 n −1
Prima variantă se impune atunci când se ştie că valorile semnalului măsurat ui mas(t)
sunt exacte si se urmăreşte, printr-un model al semnalului, interpolarea valorilor.
Modelarea semnalului pe baza celei de a doua presupuneri (2.2.20) este preferată
atunci când, se ştie, că valorile măsurate ui mas(t) sunt afectate de erori de măsurare,
figura 2.14.
47
se obţine prin premisa (2.2.20) un model fals al semnalului (dreapta din figura
2.15), deoarece datorită diferitelor semne ale lui δi suma din (2.2.20) nu se
minimizează, ci devine chiar zero:
(u1 _ mas ) (
− u1 _ apr + u 2 _ mas − u 2 _ apr = 0) (2.2.21)
n −1 n −1
∑ δ =∑ u
i =0
i
i =0
i _ mas − u i _ apr = min (2.2.22)
In acest caz, erorile δ1 si δ2 vor fi de semn pozitiv, figura 2.16. Un semnal bazat pe
acest model, care aproximează mai bine valorile măsurate,
48
În calculele matematice analitice modulul este înlocuit prin operaţia de ridicare la
pătrat,
n −1 n −1
∑ (δ ) =∑ (u
i =0
i
2
i =0
i _ mas − u i _ apr )
2
= min (2.2.24)
care are acelaşi efect ca si operaţia de modul, dar poate fi mai bine prelucrat
analitic. Prin aceasta s-a fixat ecuaţia de definiţie a metodei sumei celor mai mici
pătrate.
Sarcina constă acum în aceea de a de a stabilii (m+1) coeficienţi ak (k=0,1,2,..,m)
unui polinom de ordinul m
n −1 n −1
MCMMP = ∑ (δ ) =∑ (u
i =0
i
2
i =0
i _ mas − u i _ apr )
2
=
(2.2.27)
∑ (u ( ))
n −1
m −1 2
i _ mas − a m t + a m −1t
m
+ ... + a 2 t + a1t + a 0
2
= min
i =0
49
Vom renunţa la determinarea analitică şi vom urmări procedură pe baza unui
exemplu, urmând a deduce un algoritm general valabil, exprimat matricial.
Exemplu. Se consideră patru valori măsurate ale unui semnal aperiodic, figura 2.17:
i ti uimas
0 0 2,0
1 1 0,9
2 2 1,1
3 3 2,2
Fig. 2.17 Valori măsurate ale semnalului ca bază în aproximarea unui model polinomial
50
Condiţia pentru un minim al MCMMP este ca derivata MCMMP, după variabilele
a1 şi a0, să dispară:
∂MCMMP
= 0 + 2 ⋅ (0,9 − a1 − a0 ) ⋅ (−1) + 2 ⋅ (1,1 − 2a1 − a0 ) ⋅ (−2) +
∂a1 (2.2.32)
+ 2 ⋅ (2,2 − 3a1 − a 0 ) ⋅ (−3) = 0;
∂MCMMP
= 2 ⋅ (2,0 − a 0 ) ⋅ (−1) + 2 ⋅ (0,9 − a1 − a0 ) ⋅ (−1) +
∂a0 (2.2.33)
2 ⋅ (1,1 − 2a1 − a0 ) ⋅ (−1) + 2 ⋅ (2,2 − 3a1 − a0 ) ⋅ (−1) = 0.
Reprezentarea grafică a acestei ecuaţii, figura 2.18, arată ca modelul descrie doar
cu aproximare valorile măsurate:
51
Se urmăreşte deducerea unui algoritm numeric general în vederea rezolvării unor
astfel de probleme. Pentru aceasta se vor scrie atâtea polinoame cu gradul dorit (m),
numărul valorilor măsurate (n) existente şi prevăzute suplimentar cu un factor
aditiv ε:
Fiecare linie din (2.2.36) descrie calcularea unui punct de măsurare ui_mas(ti) prin
modelul polinomial. Deoarece polinomul nu se va suprapune exact peste valoarea
măsurată, s-a introdus eroarea εi(ti) care ţine cont de aceasta. Ecuaţia (2.2.36) va fi
transpusă acum în formă matricială:
u 0 _ mas (t 0 ) 1 t 0 t 02 t 03 ... t 0m a 0 ε 0 (t 0 )
u
1 _ mas (t1 ) = 1 t1 t12 t13 ... t1m a1 ε 1 (t1 )
⋅ +
... ... ... ...
u n4
2 3 m
a m ε n −1 (t n −1 )
1 t n −1 t n −1 t n −1 ... t n −1 {
−1 _ mas (t n −1 )
1 42443 1 444442444443 14243
u (t ) M p ε (t )
− mas − − −
u (t ) = M ⋅ p + ε (t ) (2.2.37)
− mas − − −
Dacă se impune din nou condiţia ca, în sensul metodei celor mai mici pătrate,
eroarea ε să se minimizeze, trebuie ca
( )
∂ ε (t )
−
2
=0 (2.2.38)
∂p
−
Deoarece pătratul unui vector nu este definit, trebuie înţeles că prin această
operaţie se urmăreşte minimizarea sumei pătratului erorilor din (2.2.38). Aceasta se
poate exprima în felul următor:
52
ε 2 (t ) = ε 2 (t 0 ) + ε 2 (t1 ) + ... + ε 2 (t n−1 ) (2.2.39)
−
(
∂ ε ' (t ) ⋅ ε (t )
− −
)= 0 (2.2.41)
∂p
−
rezultă
(
∂ ε ' (t ) ⋅ ε (t )
− −
) = ∂ u
− mas
− − − mas − −
(t ) − M p '⋅ u (t ) − M p
= 0. (2.2.42)
∂p ∂p
− −
−
(
p = M '⋅ M
− −
)
−1
⋅ M '⋅ u
− − mas
(t ) (2.2.43)
Cu ajutorul acestui program se pot modela valorile măsurate din figura 2.17, cu
toate polinoamele (2.2.28) până la (2.2.30). Se constată că ecuaţia polinomială de
ordinul 2 modelează cel mai bine valorile măsurate, figura 2.19.
53
Fig. 2.19 Aproximarea polinomială de ordinul 0, 1 şi 2 pentru
valorile măsurate din figura 2.17
• Semnale periodice
54
sinusoidale şi cosinusoidale de diferite frecvenţe, din care se compune semnalul ce
urmează a fi modelat.
1 1
a k cos 2πk t + bk sin 2πk t =
T T
(2.2.44)
1 b 1
= a k cos 2πk t + k sin 2πk t
T ak T
Notăm:
bk
= tgα k (2.2.45)
ak
1 1
a k cos 2πk t + tgα k sin 2πk t =
T T
ak 1 1
=
cos α k cos 2πk T t cos α k + sin 2πk T t sin α k = (2.2.46)
ak 1
= cos 2πk t − α k
cos α k T
bk 1 − cos 2 (α k )
= tgα k = (2.2.47)
ak cos α k
A0 = 0 , Ak = a k2 + bk2
55
coeficienţi constanţi iar argumentele funcţiei cos, pe lângă termenul dependent de
timp, au faze iniţiale constante şi diferite. Cu alte cuvinte, o funcţie periodică poate
fi definită prin următorii parametrii: perioada sa, coeficienţii Ai, i=0…∞ şi fazele
αi cu i=0…∞.
• Semnale neperiodice
∞
− j 2πft
U( f ) = ∫ u (t )e
−∞
dt (2.2.49)
Această transformare este însă numai atunci posibilă când suprafaţa sub curba de
semnal care urmează a fi transformată, este finită:
∫ u(t ) dt < ∞
−∞
(2.2.50)
56
Pentru rezolvarea integralei Fourier (2.2.49), adică pentru obţinerea unui model
parametric în domeniul frecvenţă, semnalul aperiodic u(t) care urmează a fi
transformat, trebuie să existe ca model parametric. În anexa A, la tabelul de
corespondenţă al transformatei Fourier, este exemplificat un astfel de calcul
analitic.
din care se poate calcula modulul şi prin aceasta spectrul de amplitudine cu ajutorul
Important este ca
57
Fig. 2.21 Definirea duratei Tsemnal a unui semnal aperiodic
2π 2
U( f ) = (2.2.55b)
( j 2πf + 0.5) + (2π 2) 2
2
Figura 2.22a indică evoluţia în timp a semnalului (linia continuă) iar cercurile
indică valorile eşantionate. Figura 2.22b ilustrează spectrul de amplitudine calculat
analitic (linia continuă) şi spectrul determinat numeric cu ajutorul relaţiilor (3.2.51),
(3.2.52) şi (3.2.53).
58
Durata de observare a semnalului: tend = 10
Timp de eşantionare: T = 0.1
Număr max de eşantionae: N = 100
Frecvenţa Nyquist: fmax = 5
Rezoluţia de frecvenţă: ∆f = 0.1
Fig. 2.22 Spectrul de amplitudine determinat numeric (b) pentru un semnal continuu
aperiodic
59
Funcţia treapta (ne-tranzitoriu) TFD furnizează un rezultat neexact
∧ ∧
u (t ) = u σ (t ) = u pt t ≥ 0
0 pt t < 0
Funcţia impuls
0, t<0
∧
u (t ) = u , 0 ≤ t ≤ τ
0, t >τ
Funcţia exponenţială
∧ − vt
u (t ) = u⋅ e pt t ≥ 0
0 pt t < 0
60
Cum s-a observat, semnalele discrete apar în urma procesului de eşantionare a
semnalelor continue la momentele de timp:
unde T reprezintă, din prisma analizei, un interval de timp constant, denumit timp
de eşantionare, iar inversul f T = 1 / T frecvenţă de eşantionare.
Semnalele discrete nu sunt funcţii de timp, aşa cum este cazul semnalelor continue,
ci valori succesive de amplitudini
∧
u (t ) = σ (t ) = u pt t ≥ 0
0 pt t < 0
61
trece în funcţia treaptă discretă, figura 2.23.b,
∧
u (nT ) = σ (nT ) = u pt t ≥ 0; n = 0,1,2,.. (2.2.58)
0 pt t < 0
De exemplu, aproximarea polinomială de ordinul 2 din figura 2.19 este descrisă din
punct de vedere al discretizării:
1
fT = ≥ 2 ⋅ f Max ( semnal ) (2.2.60)
T
62
Fig. 2.24 Model polinomial discret corespunzător unui semnal aperiodic
+∞
Ua ( f ) = ∑ u(nT )e
n = −∞
− j 2πfnT
(2.2.61)
Aşa cum se observă din (2.2.61), semnale discrete aperiodice generează spectre
continue (periodice).
63
Presupunând că u(nT) este o serie discretă, periodică a unui semnal, se poate arăta
că [5]
k
k ⋅ ∆f = ,
N ⋅T
Dacă U(f) este evaluat doar în aceste puncte de frecvenţă, şi suma se alcătuieşte de
la n = 0 până la n = N-1, deci peste N valori, (2.2.61) trece în
+∞
U (k ⋅ ∆f ) = ∑ u(nT )e
n = −∞
− j 2πk∆fnT
Cu
k ⋅ n ⋅T k ⋅ n
k ⋅ ∆f ⋅ n ⋅ T = =
N ⋅T N
+∞ − j 2π
kn
U (k ⋅ ∆f ) = ∑ u (nT )e N (2.2.62)
n = −∞
k = 0, 1, 2, .., N-1
În cazul semnalelor periodice discrete, TFD lucrează exact sub premisa ca perioada
de observaţie NT să fie egală cu multiplul întreg i al duratei perioadei T0 a
semnalului de analizat:
N⋅T = i ⋅ T0 ; i = 1, 2, 3, … (2.2.63)
64
Se face menţiunea că în argumentele U şi u, din motive de simplificare a formei de
scriere, ∆f şi T sunt des neglijate, motiv pentru care este valabilă următoarea
identitate:
N −1 N −1
kn kn
U (k ⋅ ∆f ) = ∑ u (n) ⋅ cos 2π ⋅ − j u (n) ⋅ sin 2π ⋅
∑ (2.2.64)
n =0 N n =0 N
U (k ⋅ ∆f ) = Re 2 {U (k ⋅ ∆f )} + Im 2 {U (k ⋅ ∆f )} (2.2.66)
Pentru unele cazuri particulare ale prelucrării numerice ale semnalelor, de exemplu
la proiectarea filtrelor nerecursive, este necesar ca spectre existente U(k⋅∆f) ale
unui semnal cu valori discrete u(nT) să fie transformate înapoi în domeniul timp.
Aceasta se realizează prin intermediul algoritmului transformatei Fourier digitale
inverse
65
N −1 k ⋅n
− j ⋅2 π
u (nT ) =
1
N
∑ U ( k ⋅ ∆f ) e
k =0
N ;
(2.2.67)
n = 0,1,2,..., N − 1
La baza TFD cât şi a FFT se află relaţia (2.2.62). TFD implementează algoritmul
cu fidelitate faţă de relaţia de definiţie. Aceasta necesită pentru determinarea unui
punct de frecvenţă U(k⋅∆f) N operaţii de înmulţire şi N-1 adunări. Pentru N puncte
de frecvenţă trebuie atunci să fie implementate N2 operaţii de înmulţire şi N(N-1)
adunări. La un volum mai mare de date u(n) un astfel de calcul, în mod special
datorită numărului ridicat de înmulţiri, chiar şi la utilizarea unui PC performant,
poate dura secunde, chiar minute. Cu ajutorul unui algoritm de calcul inteligent,
algoritmul transformatei Fourier rapide (FFT), care evită, printre altele, ca aceleaşi
calcule să fie repetate de mai multe ori, volumul de calcul se reduce drastic.
Rezultatele calculului unei TFD sunt identice cu cele rezultate în urma aplicării
unui FFT, doar viteza de calcula FFT este mai mare.
Aşa cum s-a observat la introducerea TFD, prezentată la începutul acestui capitol,
între durata timpului de eşantionare şi perioada de observaţie a semnalului în
domeniul timp şi rezoluţia frecvenţială în domeniul frecvenţial maxim captabil a
unei TFD, există legături strânse. Acestea urmează a fi clarificate pe baza
următoarelor două analize grafice:
Semnalul temporal eşantionat în figura 2.25, cu parametrii de eşantionare indicaţi,
furnizează după aplicarea TFD, relaţia (2.2.62), spectrul de amplitudine din figura
2.26:
66
Timp de eşantionare: T
Frecvenţa de eşantionare: fT = 1/T
Perioada de analiză a semnalului: tend = N⋅T
Număr maxim al valorilor eşantionate: N
Variabila în domeniul timp: n (2.2.68)
Fig. 2.25 Semnal eşantionat în domeniul timp
67
Aşa cum se poate identifica pe spectrul de amplitudine al semnalului eşantionat,
TFD calculează un spectru cu o repetiţie periodică oglindită de N/2 puncte de
frecvenţă. Deoarece această repetiţie nu conţine informaţii noi, este suficientă
analiza TFD doar până la N/2. Din acest motiv frecvenţa corespunzătoare acestui
punct este numită şi fmax deoarece aici se opreşte domeniul maxim de analiză a TFD.
Următoarele relaţii ţin cont de această stare:
∆f ⋅ N f T 1
Domeniul maxim de frecvenţă analizabil: f max = = =
2 2 2T
N
Numărul de puncte de frecvenţă până la fmax:
2
1 1 f
Rezoluţia de frecvenţă: ∆f = = = T
NT t end N
Frecvenţele de analiză: k⋅∆f
Variabila în domeniul frecvenţă: k (2.2.69)
Domeniul de frecvenţă până la fmax este cunoscut ca domeniu Nyquist, iar fmax ca şi
frecvenţă Nyquist. Se remarcă faptul că fmax şi jumătatea frecvenţei de eşantionare
fT/2 sunt identice, aici demonstrându-se sensul teoremei de eşantionare: frecvenţe
mai mari de fT/2 ar genera peste domeniul Nyquist linii spectrale. Datorită simetriei
de oglindă a TFD, la fmax aceste linii spectrale ar fi oglindite în domeniul Nyquist,
chiar dacă acestea nu apar acolo şi vor determina o reprezentare eronată a
spectrului.
Aceasta înseamnă că pe baza unui spectru de amplitudine calculat se poate constata
dacă o eroare datorată de efectului de aliere este prezentă sau nu: întotdeauna
atunci când spectrul se deplasează într-o curbă netedă în dreptul frecvenţei Nyquist
către zero, respectiv în cazul optimal, să fie în acest punct zero, sistemul de
prelucrare a semnalului lucrează fără eroare de aliere.
Scopul unei analize spectrale a unui semnal va fi mereu acela de a calcula spectrul
într-un anumit domeniu de frecvenţă până la fmax cu o anumită rezoluţie ∆f. Din
observaţiile anterioare (2.2.68) şi (2.2.69) rezultă că:
68
În anexa B2 se găseşte programul Scilab ab_tfd.sce care demonstrează algoritmul
de bază de utilizare a transformatei Fourier digitale. Aplicaţia se limitează la
determinarea spectrului de amplitudine în domeniul Nyquist.
Aşa cum s-a arătat, TFD intervine în analiza a patru clase de semnale diferite:
N ⋅ T ≥ Tsemnal ; (2.2.72)
69
NT: durata de observare a semnalului
Tsemnal – vezi figura 2.21.
N⋅T = i ⋅ T0 ; i = 1, 2, 3, … (2.2.73)
Graficul următor, figura 2.27, ilustrează o analiză TFD ideală, realizată cu ajutorul
programului ab_tdf.sce: durata de observare a semnalului tend = 2 este de două ori
mai mare decât durata perioadei semnalului 1/f0 = T0 = 1. Va apare o linie spectrală
exact la poziţia f0 = 1. La toate celelalte frecvenţe analizate, spectrul are valoarea
zero. La rândul ei, valoarea amplitudinii semnalului poate fi calculată cu precizie
din spectrul acestuia:
U (k ⋅ ∆f ) =
2 2
uˆ = ⋅ 10 = 1
N 20
70
Fig. 2.27 O analiză TFD exactă (b) a semnalului temporal reprezentat (a)
Dacă condiţia (2.2.73) nu este respectată la TFD, acest lucru conduce la apariţia a
două tipuri de erori:
71
Durata de observaţie: tend = 2.3 sec
Perioada de eşantionare: T = 0.1 sec;
Număr maxim de eşantioane N = 23
Frecvenţa Nyquits: fmax = 5 Hz
Rezoluţia frecvenţei: ∆f = 0.4348 Hz
Fig. 2.28 Un spectru de amplitudine distorsionat (b) al semnalului temporal (a)
2
uˆ = ⋅ 9.5 = 0.83
23
72
observaţie a semnalului tend (ceea ce este echivalent, la păstrarea constantă a
perioadei de eşantionare T, cu o mărire a numărului maxim de eşantioane N).
Figura următoare, 2.29, confirmă această procedură: o mărire de patru ori faţă de
analiza anterioară a timpului de observare (4 ⋅ 2.3 sec), reduce semnificativ efectul
de distorsionare.
73
Figura următoare, 2.30, ilustrează o analiză spectrală a semnalului temporal
analizat, cu o durată a semnalului de 2.3 sec, ca în figura 2.28 , doar că perioada de
observare a fost mărită artificial, prin completarea cu valori nule („zero-padding”),
până la 9.2 sec, echivalentă cu durata din figura 2.29. Rezoluţia de frecvenţă a
înregistrat o îmbunătăţire, iar frecvenţa de oscilaţie se calculează din nou ca fiind f
= 9 ⋅ 0.1087 Hz = 0.98 Hz. În ceea ce priveşte efectul de distorsionare a spectrului,
acesta este din nou evident, prin mărirea anvelopei acestuia, figura 2.30:
Fig. 2.31 O analiză spectrală cu efect puternic (a) şi atenuat (b) de scurgere a spectrului
Aşa cum se observă, efectul de scurgere nu este atât de puternic precum efectul de
distorsionare a spectrului, poate însă îngreuna detectarea componentelor armonice
ale unui semnal cu amplitudini foarte mici în prezenţa unor armonici dominante.
Efectul de scurgere poate fi diminuat prin aplicarea aşa numitei ferestre semnalului,
figura 2.32. Ferestrele sunt funcţii simetrice în oglindă, care sunt înmulţite, înaintea
75
analizei spectrale, cu semnalul ce urmează a fi analizat, atenuând astfel începutul
şi capătul semnalului.
Fig. 2.32 Filtrarea prin fereastră a unui semnal: a) semnalul ce urmează a fi analizat, b)
funcţia de fereastră, c) semnalul trecut prin fereastră, care urmează a fi analizat
Modificări abrupte ale semnalului, cum sunt începutul şi sfârşitul unui semnal de
analizat, nu mai intervin. În analiza spectrală ce urmează a fi realizată, prin
amplitudini aşa de mari, ceea ce conduce în special la atenuarea componentelor
perturbatoare de frecvenţă ridicată şi prin aceasta la o diminuare a efectului de
scurgere a spectrului.
• Fereastra Hanning
2π ⋅ t
w(t ) = 0.51 − cos ; 0 ≤ t ≤ N⋅T (2.2.75)
NT
• Fereastra Hamming
76
2π ⋅ t
w(t ) = 0.54 − 0.46 cos ; 0 ≤ t ≤ N⋅T (2.2.76)
NT
• Fereastra dreptunghiulară
1 pentru 0 ≤ t < NT
w(t ) = (2.2.77)
0 pentru 0 < t ≥ NT
Obs. Semnalul dreptunghiular este aplicat mereu, atunci când nu este utilizată o
funcţie fereastră specială, deoarece analiza spectrală a unui segment temporal a
unui semnal nu semnifică altceva decât înmulţirea anterioară cu (2.2.77).
Pentru o analiză exactă a efectului unui anumit tip de funcţie fereastră, se urmăreşte
programul Scilab din Anexa B1.
77
corespunde unei frecvenţe de 20Hz. De asemenea poate fi recunoscut faptul că
semnalul are în structura sa, componente de frecvenţă mai mare şi mai scăzută.
78
Fig. 2.34 Crearea unei funcţii de repartizare a densităţii de amplitudine
79
histograme ale amplitudinii determinate prin eşantionare în timp, oferă o privire
rapidă în vederea analizării şi monitorizării comportării unor sisteme.
N −1
1
u= ∑ u ( n) (2.2.78)
N n =0
Medianul indică valoarea amplitudinii, care în cazul unei serii ordonat crescătoare
al amplitudinilor măsurate, se află exact în dreptul jumătăţii valorilor măsurate:
Medianul este mai puţin sensibil faţă de devieri ale valorilor măsurate, datorate, de
exemplu, de perturbaţii. La media aritmetică astfel de valori sunt înglobate în
determinarea valorii medii.
80
• Valoarea medie modală / modus umod
Această unitate de măsură, mai rar utilizată, indică drept valoare medie ca fiind
acea valoare, care în cadrul procesului de măsurare, apare cel mai des.
• Varianţa σ2
1 N −1
σ2 = ∑ (u i − u )2 (2.2.81)
N − 1 i =0
81
• Deviaţia standard σ
1 N −1
σ = σ2 = ∑ (u i − u )2 (2.2.82)
N − 1 i =0
Forma funcţiei de distribuţie a amplitudinii poate fi descrisă prin alţi doi parametrii
numerici:
• Înclinaţia s
N −1
∑ (u − u )3
1
i
N i =0
s= (2.2.83)
σ3
s devine în cazul unei distribuţii simetrice, egală cu zero, la o asimetrie spre stânga
(predomină valori mici ale amplitudinii) pozitivă iar la o asimetrie spre dreapta
(predomină valori mari ale amplitudinii) negativă.
82
• Ondulaţia w
N −1
∑ (u − u )4
1
i
N i =0
w= −3 (2.2.84)
σ4
f (u , t ) = f (u , t + τ ) = f (u ) (2.2.85)
Un semnal stohastic de drift (cu o modificare a valorii medii), aşa cum este
reprezentat în figura 2.36, nu este staţionar.
83
Fig. 2.36 Funcţia de repartizare a densităţii de amplitudine a unui semnal stohastic
nestaţionar, măsurat pe patru intervale consecutive de 1 sec
∞
Φ ∞uu (mT ) = ∑ u(nT ) ⋅ u(nT + mT ) (2.2.86)
n = −∞
m = - ∞, …, -2, -1, 0, 1, 2, …, +∞
84
Figura 2.37 explică cele afirmate: un semnal egal (figura 2.37a) este identic în toate
poziţiile axei temporale, astfel încât şi la o deplasare a axei temporale vor apare
mereu produse de sume identice şi prin aceasta, funcţia de autocorelaţie este o
funcţie constantă.
Un zgomot stohastic (figura 2.37b) este identică doar la o deplasare temporala mT
= 0, astfel încât autocorelaţia acesteia se face observabilă doar în coordonatele de
origine, la mT = 0.
Dacă un semnal conţine componente periodice (figura 2.37c) este de aşteptat ca
odată cu durata perioadei T, să fie detectate asemănări puternice ale semnalului din
partea funcţiei de autocorelaţie. Acest fapt poate fi recunoscut clar în figura 2.37c.
85
Fig. 2.37 Semnale diferite şi funcţiile lor de autocorelaţie
M −1
Φ Muu (mT ) = ∑ u(nT ) ⋅ u(nT + mT ) (2.2.88)
n=0
La o analiză mai exactă a acestei relaţii, se poate constata că cel puţin m
sumatori devin nule, deoarece la limitele de sumare nu mai sunt disponibili
multiplicatori. Dacă la construirea sumei ne vom limita asupra produselor care nu
dispar, se obţine relaţia (2.2.89) care, la acelaşi rezultat ca în cazul (2.2.88), este
din puncte de vedere al calcului numeric, mult mai rapid de evaluat:
M − m −1
Φ Muu (mT ) = ∑ u(nT ) ⋅ u(nT + mT ) (3.2.89)
n=0
86
Deseori se determină pentru fiecare pas temporal m valoarea medie a sumei
produsului, obţinând prin aceasta o aproximare foarte bună a relaţiei de pornire
(2.2.86)
M − m −1
Φ Muu (mT ) = ∑ u(nT ) ⋅ u(nT + mT )
1
(3.2.90)
M−m n =0
M − m −1
Φ uy (mT ) = ∑ u(nT ) ⋅ y(nT + mT )
1
(3.2.91)
M−m n =0
87
t p = m ⋅T ,
vp = s tp
se poate determina viteza de pulsaţie a sângelui vp. s – distanţa dintre cei doi
senzori de măsurare.
Fig. 2.38 Sistem de măsură pentru stabilirea vitezei de pulsaţie a sângelui cu ajutorul
intercorelaţiei
88
CAP. 3 ELEMENTE DE BAZĂ ALE TEORIEI SISTEMELOR
În această fază, este important de ştiut care este informaţia care se doreşte a fi
obţinută din modelul matematic. Cu siguranţă prezintă interes să se poată afla care
este semnalul de ieşire produs de sistem dacă la intrarea sa se aplică un anumit
semnal. În domeniul teoriei semnalelor au fost consemnate câteva semnale de test,
care se aplică la intrarea sistemelor, iar apoi, pe baza evoluţiei semnalului de ieşire,
se realizează o clasificare a acestora. Un semnal de test important, este semnalul
treaptă:
A pentru t ≥ 0
u (t ) = σ (t ) = ; (3.0.1)
0 pentru t < 0
89
Fig. 3.3 Graficul funcţiei treaptă
Dacă sistemului din figura 3.2 i se aplică un semnal treaptă cu amplitudinea de 1V,
sistemul răspunde cu o evoluţie a mărimii de ieşire, cunoscută şi ca răspuns la
semnal treaptă:
y (t ) + u (t )
dy (t ) 1 1
=− (3.0.2)
dt RC RC
−
t
y (t ) = A1 − e RC (3.0.3)
90
poate fi calculat tabelul de valori, respectiv calculat şi reprezentat grafic răspunsul
la semnal treaptă.
În cadrul unei analize de sistem prezintă interes efectul de filtrare al conexiunii RC,
pentru a putea analiza comportamentul acestuia, prin analiza de frecvenţă. Cu
ajutorul transformatei Laplace modelele matematice din domeniul timp sunt trecute
în domeniul Laplace sau în domeniul imagine. Cu ajutorul acestei operaţii de calcul
se reuşeşte ca modele diferenţiale complexe să fie transformate în ecuaţii algebrice
simple, sub forma unui raport de două polinoame. Acest model, cunoscut drept
funcţie de transfer, conţine aceeaşi informaţie despre sistem la fel ca modelul
diferenţial, poate fi însă utilizată mult mai uşor din punct de vedere matematic.
Cu ajutorul unei alte transformări, funcţia de transfer poate fi transformată în
funcţia vector răspuns la frecvenţă. Reprezentarea grafică a acesteia furnizează aşa
numita diagrama Bode, care conţine proprietăţile de transmisie ale sistemului în
funcţie de frecvenţă.
Transformările de model amintite anterior sunt aplicabile doar atunci când e vorba
de sisteme pentru prelucrarea semnalelor continue („sistem continuu”). Dacă
sistemul utilizat pentru prelucrarea semnalelor este un calculator digital („sistem
discret în timp” sau „sistem digital”), prelucrarea semnalelor are loc în etape
discrete de timp.
Un sistem discret nu există fizic precum un sistem continuu, ci doar ca un algoritm
de calcul implementat pe un calculator digital. Cum se va arăta mai târziu, efectul
elementului RC, conform figurii 3.4, poate fi transpus ca algoritm de calcul sub
forma unei aşa numite ecuaţii cu diferenţe. Această ecuaţie cu diferenţe reprezintă
modelul matematic al unui sistem discret în domeniul timp (aşa cum ecuaţia
diferenţială este pentru sistemele continue în domeniul timp).
Legătura strânsă între un sistem continuu şi algoritmul de calcul dedus pe baza
acestuia este ilustrată de următoare analiză: dacă se implementează un algoritm de
calcul discret care să implementeze efectul elementului RC într-un calculator
digital, cu un CAN la intrare şi un CNA la ieşire, figura 3.5, ambele au acelaşi efect
asupra semnalelor de intrare. Aceasta este valabil atât pentru domeniul timp cât şi
pentru domeniul frecvenţă.
91
Fig. 3.5 Explicativă la efectul asemănător a unui sistem continuu şi discret
Prezentările realizate până în acest punct, indică o privire îngustă asupra noţiunii de
sistem. Ca sistem poate fi privită şi populaţia de peşti dintr-un lac. Dacă creşterea
populaţiei de peşti (mărimea de ieşire a sistemului) prezintă interes în funcţie de
oferta de hrană (mărimea de intrare a sistemului) şi ţinând cont şi de rata de naşteri
şi deces şi după caz, şi de alte mărimi, se poate crea un model matematic al acestui
sistem iar cu ajutorul simulării pot fi analizate toate mărimile care influenţează
populaţia de peşti. Ecuaţiile diferenţiale rezultate (modelul matematic) au o
structură asemănătoare cu cea a modelului unui filtru electronic.
În cadrul acestei prezentări legate de prelucrarea semnalelor se va pune un accent
pe sistemele întâlnite sub forma filtrelor.
92
3.1 Clasificarea sistemelor
Filtrele de semnale pot fi realizate ca filtre continue sub forma unor circuite
electronice analogice sau sub forma unor filtre discrete în timp respectiv filtre
digitale, sub forma de algoritmi implementaţi în calculatoare digitale.
94
Fiind vorba de o problemă din domeniul electronicii, ecuaţiile de bilanţ care
urmează a fi exprimate, fac referire la evoluţia tensiunii şi a curentului: legile lui
Kirchhoff, figura 3.8.
i R (t ) − iC (t ) − i y (t ) = i R (t ) − iC (t ) = 0 (3.2.1)
u (t ) − u C (t ) − u R (t ) = 0 (3.2.2)
Bucla II:
u C (t ) − y (t ) = 0 (3.2.3)
u R (t ) = R ⋅ i R (t ) (3.2.4)
şi pe de altă parte prin legea care exprimă legătura dintre căderea de tensiune şi
curentul unui condensator:
du C (t ) 1
= u& C (t ) = iC (t ) (3.2.5)
dt C
95
Toate ecuaţiile sunt acum astfel înlocuite, încât să rezulte o ecuaţie care să conţină
doar mărimea de intrare u(t), mărimea de ieşire y(t), după caz, derivate ale acestor
mărimi, şi parametrii de sistem R şi C:
du C (t ) 1 1 1 1
= u& C (t ) = iC (t ) = i R (t ) = u R (t ) =
dt C C C R
=
1
(u (t ) − u C (t ))
RC
1 1
y& C (t ) = − y (t ) + u (t ) (3.2.6)
RC RC
La sisteme mai complexe, apar ecuaţii diferenţiale care pot conţine derivate de
ordin superior ale mărimilor de intrare şi ieşire. Modelele sistemelor continue în
domeniul timp au în general următoarea formă:
n n −1
y (t ) + a n −1 y (t ) + ... + a 2 &y&(t ) + a1 y& (t ) + a 0 y (t ) =
m m −1
(3.2.7)
u (t ) + bn −1 u (t ) + ... + b2 u&&(t ) + b1u& (t ) + b0 u (t );
m ≤ n; u(t): mărimea de intrare; y(t) : mărimea de ieşire
96
Cu ajutorul aşa numitei transformate Laplace se reuşeşte transformarea modelelor
exprimate prin ecuaţii diferenţiale în domeniul imagine (cunoscut drept domeniu
Laplace sau s) şi de a definii aici o formă de model formată din raportul a două
polinoame. Acest model de sistem în domeniul imagine este numit funcţie de
transfer şi este definit în felul următor: dacă u(t) constituie mărimea de intrare şi y(t)
reprezintă mărimea de ieşire a unui sistem de transfer, raportul
∞
−δt − j 2πft
U( f ) = ∫ u (t )e
−∞
e dt (3.2.10)
Dacă pentru o formă de scriere mai scurtă se introduce aşa numita variabilă
Laplace sau variabila imagine, notaţia:
s = δ + j 2πf = δ + jω (3.2.11)
∞
− st
U ( s) = ∫ u (t )e
−∞
dt (3.2.12)
97
Asemănător cu transformata Fourier şi acest proces de transformare este prescurtat
simbolic:
U(s) = L {u (t )} (3.2.13)
u (t ) = σ (t ) U ( s) = L{σ (t )} = ,
1
rezultă (3.2.15a)
s
1
u (t ) = L−1 = σ (t ) .
1
U ( s) = rezultă (3.2.15b)
s s
Sau din
t
L u1 (t − τ ) ⋅ u 2 (τ )dτ = U 1 ( s ) ⋅ U 2 ( s ) ,
∫ (3.2.16a)
0
se obţine
t
L−1 {U 1 ( s ) ⋅ U 2 ( s )} = u1 (t − τ ) ⋅ u 2 (τ )dτ .
∫ (3.2.16b)
0
98
Cu ajutorul acestor tabele de corespondenţă (Anexa A1.2), modelele temporale,
exprimate sub forma ecuaţiilor diferenţiale (3.2.7), pot fi transformate în domeniul
imagine:
n
L y (t ) = s n Y ( s )
n −1
L a n −1 y (t ) = a n −1 s n −1Y ( s );
…
m −1
L bm −1 u (t ) = bm −1 s m −1U ( s ) ;
n
L bm−1 u (t ) = bm −1 s nU ( s ).
Concentrând, se obţine:
s n Y ( s ) + a n −1 s n −1Y ( s ) + ... + a 2 s 2Y ( s) + a1 sY ( s) + a 0 s =
(3.2.17)
...bm s mU ( s ) + bm−1 s m−1U ( s) + ... + b2 s 2U ( s) + b1 sU ( s) + b0 s.
(
Y ( s) s n + a n −1 s n −1 + ... + a 2 s 2 + a1 s + a 0 =)
(
...U ( s ) bm s + bm −1 s
m m −1
+ ... + b2 s + b1 s + b0 .
2
)
şi se formează pe baza (3.2.8), raportul Y(s) / U(s):
99
Dacă calculele corespunzătoare se aplică modelului temporal corespunzător
elementului RC, se obţine:
1 1
sY ( s) = − Y ( s) + U (s)
RC RC
1 1
Y ( s ) s + = U ( s)
RC RC
1
Y (s) RC = 1
H (s) = = (3.2.19)
U (s) 1 1 + sRC
s+
RC
Y (s)
H (s) =
U (s)
Y ( s) = H ( s) ⋅ U ( s ) (3.2.20)
t
L −1
{H ( s ) ⋅ U ( s)} = L {Y ( s)} = y (t ) = ∫ h(t − τ ) ⋅ u (τ )dτ ,
−1
(3.2.21)
0
100
cu care se poate calcula răspunsul sistemului y(t), dacă transformata Laplace
inversă a funcţiei de transfer
(aşa numita funcţie pondere h(t)) şi evoluţia mărimii de intrare u(t) sunt cunoscute.
În anexă se găseşte o aplicaţie Scilab, convolutie.sce, care demonstrează utilizarea
transformatei Laplace inverse pentru calcularea răspunsului unui sistem.
Dorim să reţinem în acest punct că au fost prezentate două modele matematice care
se aplică la descrierea sistemelor continue în domeniul timp:
H ( jω ) = H ( s) | s = jω ; ω = 2πf (3.2.23)
bm ( jω ) m + bm −1 ( jω ) m −1 + ... + b2 ( jω ) 2 + b1 jω + b0
H ( jω ) = (3.2.24)
a n ( jω ) n + a n −1 ( jω ) n −1 + ... + a 2 ( jω ) 2 + a1 jω + a 0
m ≤ n.
101
Din reprezentarea pe componente (3.2.25) a funcţiei vector răspuns la frecvenţă, se
poate calcula reprezentarea în coordonate polare (vezi anexa A2):
Din
H ( jω ) = Re{H ( jω )} + Im{H ( jω )}
2 2
(3.2.26)
Im{H ( jω )}
ϕ {H ( jω )} = arctan ; [rad ] (3.2.27)
Re{H ( jω )}
ϕ {H ( jω )}[rad ] 2π
= . (3.2.28)
ϕ {H ( jω )}[Grad ] 360 0
Im{H ( jω )} 180 0
ϕ {H ( jω )} = arctan ⋅ .[Grad ] (3.2.29)
Re{H ( jω )} π
102
H ( jω ) dB = 20 ⋅ log H ( jω ) =
(3.2.30)
= 20 ⋅ log Re{H ( jω )} + Im{H ( jω )} ,
2 2
H ( jω ) dB = 20 ⋅ log H ( jω ) (3.2.31)
H ( jω ) dB
H ( jω ) = 10 20 (3.2.32)
H ( jω ) H ( jω ) dB
1000 60
100 40
10 20
1 0
0.1 -20
0.01 -40
0.001 -60
Y (s) 1
H (s) = = (3.2.34)
U ( s ) 1 + 0.001s
103
Pentru calcularea diagramei Bode, (3.2.34) se transformă în funcţia vector răspuns
la frecvenţă prin (3.2.23):
1
H ( jω ) = H ( s ) = . (3.2.35)
1 + 0.001 jω
După cum se vede, din (3.2.35) nu pot fi identificate separat componentele reale şi
imaginare ale funcţiei. Aceasta se poate doar după aplicarea complex conjugatei
(anexa A2.7) ecuaţiei:
1 1 − 0.001 jω 1 − 0.001 jω
H ( jω ) = ⋅ =
1 + 0.001 jω 1 − 0.001 jω 1 + 10 −6 ω 2
1 − 0.001ω
= −6 2
+ j −6 2
. (3.2.36)
11+4
10
243 ω 1+4
1 10
24 ω3
Re{H ( jω )} Im {H ( jω ) }
104
Fig. 3.9 Diagrama Bode circuitului RC din figura 3.7
Fig. 3.10.a Efectul elementului RC asupra unui semnal sinusoidal de 200 Hz, aplicat la
intrare, reprezentat în domeniul frecvenţă
105
Următoarea imagine, figura 3.10.b, prezintă aceleaşi rapoarte pentru semnalul de
200 Hz analizat, de data aceasta în domeniul timp: semnalul de intrare u(t) = sin
(2π⋅200⋅t) este atenuat de filtrul RC pe o amplitudine de circa 0.62, de unde rezultă
un factor de atenuare de
Fig. 3.10.b Efectul elementului RC asupra unui semnal sinusoidal de 200 Hz, aplicat la
intrare, reprezentat în domeniul timp
Filtrele sunt caracterizate de frecvenţa limită sau de graniţă, care reprezintă trecerea
între banda de frecvenţă blocată şi cea căreia i se permite trecerea. Ca frecvenţă
limită se defineşte în mod uzual acea frecvenţă la care apare o atenuare de -3dB
faţă de banda de trecere. Factorul de amplificare scade în acest loc la
H ( jω ) = 1 :
2
106
1
H ( jω ) dB = 20 log = 20 log 0.707 ≈ −3dB (3.2.37)
2
Diagramele Bode permit aşadar analiza sistemelor continue din punct de vedere al
comportamentului lor în domeniul frecvenţă, de exemplu elementul RC asupra
proprietăţilor sale de filtru. Astfel se poate arăta printre altele că o modificare a lui
R şi / sau C are ca şi consecinţă o schimbare a frecvenţei de tăiere.
Toate înlănţuirile de efecte reale din tehnică şi natura sunt, conform definiţiei
noţiunii de sistem, sisteme continue. Sistemele discrete nu sunt obiecte fizic
existente, ci algoritmi care rulează pe calculatoare digitale. Aceşti algoritmi pot fi
astfel dezvoltaţi, încât să implementeze efectul sistemelor continue (vezi figura 3.5).
În cadrul acestui paragraf se urmăreşte fundamentarea în realizarea unor astfel de
algoritmi. Pentru aceasta trebuie analizată modalitatea de modelare a sistemelor
discrete în domeniul timp, imagine şi frecvenţă.
107
Sistemele discrete trebuie să lucreze etapizat, deoarece un calculator digital, prin
viteza sa de prelucrare finită, poate prelucra o serie de valori de intrare într-o serie
de valori de ieşire doar într-un anumit interval de timp.
Ecuaţiile diferenţiale nu se pretează aşadar pentru astfel de algoritmi. O discretizare
temporală a ecuaţiilor diferenţiale şi prin aceasta posibilitatea lor de prelucrare
etapizată, poate fi implementată prin aceea că raportul diferenţial al modelelor
sistemelor continue
dy (t )
y& (t ) = (3.2.38)
dt
∆y (t ) dy (t )
≈ . (3.2.39)
T dt
dy (t ) ∆y (t )
= lim (3.2.40)
dt T →0 T
Aceasta înseamnă, exprimat grafic, figura 3.12, calcularea pantei lui y(t) într-un
punct infinitezimal de mic dt, ceea ce este echivalent cu calcularea tangentei în
punctul dt.
Dacă mărim dt la o durată T finită, ceea ce este echivalent cu presupunerea
realizată (3.2.39),
108
Fig. 3.12 Explicativă la raportul diferenţial şi de diferenţă
1 1
y& (t ) = − y (t ) + u (t ) (3.2.43)
RC RC
pretându-se prin aceasta la un calcul etapizat. Membrul drept este încă format din
argumentele semnalului t corespunzătoare unui calcul continuu, referitoare la un
punct infinit mic dt. Pentru calcularea etapizată a membrului drept al ecuaţiei
(3.2.43) trebuie utilizate momente discrete de timp. Aici putem alege cu aceeaşi
motivare nT sau (n-1)T, în ambele situaţii vom face însă o greşeală, deoarece în
membrul stâng am înlocuit dt infinitezimal cu un T finit.
Eroare se reduce dacă vom înlocuii valorile medii
2 RC − T
y (n − 1) +
T T
y (n) = u ( n) + u (n − 1) (3.2.47)
2 RC + T 2 RC + T 2 RC + T
Prin aceasta, ecuaţia (3.2.43) a devenit accesibilă unui calcul etapizat. Ecuaţia
(3.2.47) descrie complet comportamentul temporal a elementului RC „discret”,
adică evoluţia mărimii de ieşire y(nT) la o evoluţie oarece a mărimii de intrare
u(nT).
Dacă se înlocuiesc valori pentru parametrii R şi C şi se alege un timp de
eşantionare T corespunzător, ecuaţia poate fi transpusă în orice limbaj de
programare, implementată şi rulată pe un calculator digital. Dacă calculatorul
digital este prevăzut cu convertoare A / N şi N / A, se obţine un efect aşa cum este
prezentat în figura 3.5.
Acest drum parcurs pentru discretizarea unei ecuaţii diferenţiale, este unul foarte
anevoios, paragraful 3.2.3 va prezenta o transformare de discretizare mai generală,
care lucrează în domeniul imagine.
La o analiză mai exactă a ecuaţiei (3.2.47) se recunoaşte că pe lângă valorile
actuale ale semnalului valabile la momentul de timp nT apar şi valori ale
semnalului care provin dintr-un pas temporal anterior (n-1)T. Pentru calcularea
unei valori actuale y(nT) este necesară o valoare calculată într-un pas anterior, y((n-
1)T). Datorită prelucrării etapizate a datelor, un astfel de model în domeniul timp al
unui sistem discret, este cunoscut drept ecuaţie de diferenţă (spre deosebire de
ecuaţia diferenţială a unui sistem continuu). Deoarece la calcularea valorilor de
ieşire actuale se utilizează în ecuaţie şi valori „vechi” ale valorilor de ieşire,
modelul (3.2.47) este numit şi ecuaţie de diferenţă recursivă.
În cazul sistemelor complexe, trebuie să se ţină cont de valori ale mărimilor de
intrare şi de ieşire provenind de la mai multe etape anterioare de calcul; astfel se
110
obţine modelul temporal general al unui sistem discret în forma unei ecuaţii de
diferenţă recursive:
n n
y (n) = ∑ h(n − i) ⋅ u (i) = ∑ h(i) ⋅ u(n − i) (3.2.50)
i =1 i =1
n = 0, 1, 2, 3, …
cu ajutorul căreia se calculează semnalul de ieşire y(nT) a unui sistem discret, dacă
şirul de intrare u(i) şi funcţia de transfer a sistemului h(nT) sunt cunoscute.
Şirul funcţiei pondere h(nT) reprezintă transformata z inversă a funcţie de transfer
exprimate în z (urmează a fi introdusă în paragraful următor), H(z)
sau răspunsul sistemului la impuls unitar, definit după cum urmează în cazul
sistemelor discrete
1 pentru n = 0
δ ( n) = . (3.2.52)
0 pentru n ≠ 0
111
Veridicitatea acestei afirmaţii poate fi verificată prin înlocuirea (3.2.52) în (3.2.50).
Rezultă
Ecuaţiile de diferenţă ale sistemelor discrete sunt reprezentate des prin filtre
digitale în literatura sub forma aşa numitor scheme bloc. Cu ajutorul elementelor
bloc, figura 3.13, ecuaţiile de diferenţă pot fi uşor transformate în scheme bloc.
y (n) = − y (n − 1) + 0.5 y (n − 2) + u ( n) + 2u (n − 1) − 3u (n − 2)
112
Fig. 3.14 Schema bloc a ecuaţiei de diferenţe aleasă spre exemplificare
Aşa cum a fost prezentat în capitolul 2.2.1.3, un şir de valori discrete u(n) se obţine
prin eşantionarea unui semnal continuu u(t). Un astfel de semnal eşantionat poate fi
exprimat în general printr-o serie de impulsuri Dirac u*(t), figura 3.15, care poate fi
descrisă prin:
0 pentru t ≠ nT
u (t ) = δ (t − nT ) = (3.2.54)
∞ pentru t = nT
113
Fig. 3.16 Serie de valori a unui semnal continuu eşantionat
u * (t ) = u (0) ⋅ δ (t ) + u (1T ) ⋅ δ (t − T ) +
+ u (2T ) ⋅ δ (t − 2T ) + ... + u (nT ) ⋅ δ (t − nT ) + ...
∞
= ∑ u (nT ) ⋅ δ (t − nT ) .
n =0
(3.2.55)
L{δ (t − nT )} = e − snT
{ }
∞
− snT
L u * (t ) = U * ( s ) = ∑ u (nT ) ⋅ e . (3.2.56)
n =0
z = esT (3.2.57)
114
obţinându-se prin aceasta, pentru semnale discrete în timp, o relaţie de
transformare închisă, rezolvabilă, aşa numita transformată z,
{ }
∞
−n
Z u * (t ) = U * ( z ) = ∑ u (nT ) ⋅ z . (3.2.58)
n =0
U ( z ) = Z {u (nT )} (3.2.59)
u (nT ) = Z −1 {U ( z )} (3.2.60)
Aplicând proprietăţile mai sus amintite ale transformatei z elementelor din relaţia
(3.2.48), se obţine:
Z {y (n)} = Y ( z ) ⋅ z −0 = Y ( z )
Z {− α 1 y (n − 1)} = −α 1 ⋅ Y ( z ) ⋅ z −1
Z {− α 2 y (n − 2)} = −α 2 ⋅ Y ( z ) ⋅ z −2
… (3.2.61)
Z {β 0 u (n)} = β 0 ⋅ U ( z )
115
Z {β1u ( n − 1)} = β1 ⋅ U ( z ) ⋅ z −1
Z {β 2 u (n − 2)} = β 2 ⋅ U ( z ) ⋅ z −2
Rezumând, se obţine:
Y ( z ) = −α 1 ⋅ Y ( z ) ⋅ z −1 − α 2 ⋅ Y ( z ) ⋅ z −2 − .. − α p ⋅ Y ( z ) ⋅ z − p + ..
(3.2.62)
.. + β 0 ⋅ U ( z ) + β1 ⋅ U ( z ) ⋅ z −1 + .. + β q ⋅ U ( z ) ⋅ z −q
(
Y ( z ) ⋅ 1 + α 1 ⋅ z −1 + α 2 ⋅ z −2 + .. + α p ⋅ z − p =)
U ( z ) ⋅ (β 0 )
+ β 1 ⋅ z −1 + .. + β q ⋅ z − q ,
Y ( z) β 0 + β1 ⋅ z −1 + .. + β q ⋅ z − q
H ( z) = = (3.2.63a)
U ( z ) 1 + α 1 ⋅ z −1 + α 2 ⋅ z − 2 + .. + α p ⋅ z − p
β 0 z p + β1 ⋅ z p −1 + β 2 ⋅ z p − 2 .. + β q ⋅ z p − q
= (3.2.63b)
z p + α 1 ⋅ z p −1 + α 2 ⋅ z p − 2 + .. + α p
p ≤ q; p – ordinul sistemului de transfer.
2 RC − T T T
Y ( z) = Y ( z ) z −1 + U ( z) + U ( z ) z −1 ;
2 RC + T 2 RC + T 2 RC + T
2 RC − T −1 T T
Y ( z ) ⋅ 1 − z = U ( z) ⋅ + z −1 ;
2 RC + T 2 RC + T 2 RC + T
116
T
Y ( z ) 2 RC + T
1 + z −1 ( )
H ( z) = = . (3.2.64)
U ( z) 2 RC − T −1
1− z
2 RC + T
Cum se va vedea mai târziu, la implementarea filtrelor se parcurge foarte des calea
inversă, de la funcţia de transfer în z la ecuaţia de diferenţă. Dorim să prezentăm
aceasta pe baza următoarei funcţii de transfer în z:
Y (z) 0.01
H ( z) = = (3.2.65)
U ( z ) z 2 − 1.9 z + 0.9
Funcţia de transfer este dată cu potenţe pozitive ale lui z. Pentru transformarea în
domeniul temporal, ecuaţia de diferenţă, avem nevoie ca ea să fie exprimată cu
puteri negative ale lui z. În acest scop înmulţim numărătorul şi numitorul funcţiei
de transfer în z cu z-p, unde p este puterea cea mai mare a funcţiei de transfer date.
Pentru cazul analizat (3.2.65) urmează a fi înmulţit cu z-2, obţinându-se:
Y ( z) 0.01z −2
H ( z) = = . (3.2.66)
U ( z ) 1 − 1.9 z −1 + 0.9 z − 2
{ }
Z −1 U ( z ) ⋅ z − i = u (n − i )
Z −1 {Y ( z )} = y (n)
{ }
Z −1 − 1.9 ⋅ Y ( z ) ⋅ z −1 = −1.9 ⋅ y (n − 1)
117
{ }
Z −1 0.9 ⋅ Y ( z ) ⋅ z −2 = 0.9 ⋅ y (n − 2)
Z −1
{0.01 ⋅ U ( z) ⋅ z }= 0.01 ⋅ u (n − 2)
−2
(3.2.68)
z = e sT | s = jω = e jωT (3.2.71)
− jωT
Y ( jω z ) β 0 + β1 ⋅ e + .. + β q ⋅ e − jqωT
H ( jω z ) = = . (3.2.72)
U ( jω z ) 1 + α 1 ⋅ e − jωT + .. + α p ⋅ e − jpωT
H ( z) =
(
0.333 1 + z −1 )
=
0.333(z + 1)
, (3.2.74)
−1
1 − 0.333 z z − 0.33
H ( jω z ) =
(
0.333 z + e − jω 0.001), (3.2.75)
1 − 0.333e − jω 0.001
119
Pentru a renunţa la aceste calcule, se apelează la programul Scilab bode_z.sce.
Pentru timpul de eşantionare mai sus indicat T = 1ms, se calculează pentru (3.2.74)
următoarea caracteristică Bode, figura 3.17:
120
Fig. 3.18 Diagrama Bode a funcţiei de transfer în z a elementului RC discretizat, la un timp
de eşantionare de T=0.0001 sec
Aşa cum se va vedea în capitolul 4.4, varianta clasică de proiectare a unui filtru
digital constă în acea de a le dezvolta pe baza unui model continuu. Pentru aceasta
se porneşte de la funcţia de transfer continuă. Cu metodele prezentate până acum,
pentru discretizarea lui H(s) funcţia de transfer continuă urmează a fi trecută cu
transformata Laplace inversă în domeniul timp iar ecuaţia diferenţială rezultată să
fie discretizată cu (3.2.41) şi (3.2.45) într-o ecuaţie de diferenţe.
O cale mai simplă pentru discretizare oferă acele proceduri care operează exclusiv
în domeniul imagine. Pentru determinarea unei astfel de transformări de
discretizare, privim relaţia (3.2.57)
z = e sT , (3.2.76)
care realizează deja o legătură între domeniul z şi s. Într-o primă etapă vom
exprima (3.2.76) în funcţie de s:
121
1
s= ln( z ). (3.2.77)
T
1 1 z − 1 1 z − 1 3 1 z − 1 5
s= ln( z ) = ⋅ 2 ⋅ + ⋅ + ⋅ + ... , (3.2.78)
T T z + 1 3 z + 1 5 z +1
2 z −1
s≈ . (3.2.79)
T z +1
Y (s) 1
H (s) = = (3.2.80)
U ( s ) 1 + sRC
1 T ( z + 1)
H ( z) = = =
2 z −1 T ( z + 1) + 2 RCT ( z − 1)
1+ RC
T z +1
122
T
( z + 1)
=
T ( z + 1)
=
(2 RC + T ) ,
(2 RC + T )z − (2 RC − T ) z − (2 RC − T )
(2 RC + T )
T
(1 + z −1 )
H ( z) =
(2 RC + T ) (3.2.81)
1−
(2 RC − T ) z −1 .
(2RC + T )
123
CAP. 4 PROCEDEE SELECTATE ÎN ANALIZA
SEMNALELOR
În cadrul acestui capitol, pe baza celor prezentate anterior, se prezintă cele mai
importante procedee de prelucrare a semnalelor, în special bazele tehnicii filtrelor
digitale.
fT = 2⋅fmax
Cea mai cunoscută metodă de interpolare este aşa numita interpolare lineară, în
cadrul căreia fiecare două valori succesive ale amplitudinilor sunt legate între ele
cu o dreaptă. Cu ajutorul ecuaţiei dreptei care urmează a fi calculată, pot fi
determinate atunci amplitudini de interpolare la noile puncte de eşantionare. Şi o
decimare poate fi realizată cu ajutorul aceleiaşi metode; figura 4.1 vizualizează
aceste legături.
125
Interpolarea liniară este un caz special al aşa numitei interpolări polinomiale, la
care prin m + 1 puncte (vechi) de măsurare se aşează un polinom de ordinul m
Valorile măsurate
… (4.2.3a)
a 0 + a1 (mT ) + a 2 (mT ) + ... + a m (mT ) = u (mT ).
2 m
Aceasta înseamnă:
M⋅ p = u. (4.2.4)
− − −
126
−1 −1
M ⋅M ⋅ p = M ⋅u
−424
1 3− − − −
E
−
−1
p = M ⋅u . (4.2.5)
− − −
La un grad prea ridicat al polinomului (m > 10) se ajunge la erori de calcul, ceea ce
conduce la faptul că polinomul de interpolare nu atinge toate punctele de
eşantionare, în mod special cele de la marginea curbei, figura 4.3.
La un grad prea mic ales pentru polinomul de interpolare, se ajunge între punctele
de interpolare la devieri puternice dintre polinomul de interpolare şi caracteristica
reală, figura 4.4.
127
Fig. 4.3 Grad prea mare al polinomului de interpolare
O altă metodă de interpolare care conduce la rezultate relativ bune, este metoda cu
completări de zerouri în spectrul semnalului.
128
Aşa cum s-a arătat în capitolul 2.2.1.4, între scalarea unui semnal discret în
domeniul temporal şi scalarea spectrului acestuia există relaţia (2.2.69)
1
∆f = . (4.2.6)
NT
1
∆f ⋅ N = , (4.2.7)
T
0 ≤ k ≤ N,
T t
N nul = round vechi ⋅ N vechi − N vechi ; N vechi = end ; (4.2.8)
Tnou Tvechi
129
de valori în urma transformării inverse este una complexă. Partea reală a seriei
complexe formează amplitudinile semnalului temporal.
130
Fig. 4.5 Interpolare prin completarea spectrului cu zerouri,
a) Semnal iniţial, Tvechi = 0.1 sec, Nvechi = 40,
b) Spectrul de amplitudine al semnalului iniţial,
c) Spectru lărgit cu zerouri
d) Semnal interpolat, Tnou = 0.04 sec, Nnou = 100
131
4.3 Diferenţierea şi integrarea semnalului
y (t ) = u& (t )
u(t): mărime de intrare; y(t): mărime de ieşire. (4.3.1)
L{y (t ) = u& (t )} = Y ( s ) = s ⋅ U ( s )
Y ( s)
H (s) = = s. (4.3.2)
U ( s)
Y ( z) 2 z − 1 2z − 2
H (z ) = H ( s ) | 2 z −1 = = = (4.3.3)
s=
T z +1
U ( z ) T z + 1 Tz + T
132
Pentru calcularea ecuaţiei de diferenţe urmăm exemplul descris între relaţiile
(3.2.65) şi (3.2.70) şi transformăm (4.3.3) într-o formă de scriere cu puteri negative
ale lui z
Y ( z ) 2 − 2 z −1
H (z ) = = ,
U ( z ) T + Tz −1
TY ( z ) + TY ( z ) z −1 = 2U ( z ) − 2U ( z ) z −1 .
T ⋅ y (n) + T ⋅ y (n − 1) = 2 ⋅ u (n) − 2 ⋅ u (n − 1)
2 2
y (n) = − y (n − 1) + ⋅ u (n) − ⋅ u (n − 1) . (4.3.4)
T T
fT 1
fg = = (4.3.5)
2 2T
a acestui filtru, perturbaţia este atenuată. Cu alte cuvinte: dacă după utilizarea
algoritmului de diferenţiere se aplică şi acest algoritm al filtrului trece jos,
133
combinaţia ambelor reprezintă un algoritm de diferenţiere de succes. Şi acest
aspect este demonstrat în cadrul programului dif_int.sce.
Deducerea algoritmului unui filtru trece jos, are loc în aceeaşi ordine ca cel de
diferenţiere: ca prim pas se necesită funcţia de transfer continuă a unui filtru trece
jos de ordinul 1 (vezi capitolul 4.4.1, relaţia (4.4.2)):
Y ( s) 1
H (s) = = (4.3.6)
U ( s) 1
1+ s
2π ⋅ f g
Y (s) 1 1
H (s) = = = (4.3.7)
U (s) 2T T
1+ s 1+ s
2π π
1 π (z + 1) πz + π
H ( z) = = = , (4.3.8)
T 2 z − 1 π ( z + 1) + 2( z − 1) (π + 2 )z + (π − 2 )
1+
π T z+2
Y ( z) π + π ⋅ z −1
H ( z) = = ,
U ( z ) (π + 2 ) + (π − 2 )z −1
(π + 2)Y ( z ) + (π − 2)Y ( z ) z −1 = πU ( z ) + πU ( z ) z −1 ,
π −2 π π
Y ( z) = − Y ( z ) z −1 + U ( z) + U ( z ) z −1 ,
π +2 π +2 π +2
π −2 π π
y (n) = − y (n − 1) + u (n) + u (n − 1). (4.3.9)
π +2 π +2 π +2
134
şi cu ajutorul programului dif_int.sce, dacă semnale dreptunghiulare sunt
diferenţiate la valori foarte mici ale timpului de eşantionare.
Dacă un semnal ce urmează a fi diferenţiat este afectat de un zgomot de frecvenţă
ridicată, efectul mai sus amintit conduce la mari perturbaţii. Din acest motiv,
înainte de operaţia de diferenţiere a unui semnal, se impune o filtrare suplimentară
trece jos a semnalului de intrare.
Alţi algoritmi de diferenţiere rezultă din aceea că pentru discretizarea lui (4.3.2) nu
se utilizează ecuaţia (3.2.79) ci puteri mai mari din (3.2.78) sau se apelează la o
aproximare simplă a raportului de diferenţiere, aşa cum este prezentată în relaţia
(3.2.41).
Pentru deducerea unui algoritm de integrare se va proceda, cum s-a mai arătat, în
felul următor: se analizează modelul matematic al unui sistem integrativ continuu
∫
y (t ) = u (t )dt , (4.3.12)
135
şi se formează funcţia de transfer în s
Y ( s) 1
H (s) = = . (4.3.13)
U (s) s
Y ( z ) Tz + T T + Tz −1
H ( z) = = = (4.3.14)
U ( z ) 2 z − 2 2 − 2 z −1
iar din aceasta, în urma transformării inverse în domeniul temporal discret, ecuaţia
cu diferenţe a unui integrator:
T T
y (n) = y (n − 1) + u (n) + u (n − 1) (4.3.15)
2 2
Alături de analiza spectrală a semnalelor, filtrarea este una din cele mai importante
metode de prelucrare a semnalelor.
Cu legăturile tratate în cadrul acestui capitol, se urmăreşte punerea bazei pentru
implementarea filtrelor digitale, aşadar cele exprimate prin ecuaţii cu diferenţe,
care rulează pe calculatoarele digitale.
136
• Filtrele IIR (Infinite Impulse Response Filter) care răspund la o excitaţie a
unui impuls unitar (3.2.52) cu o serie de ieşire infinit de lungă. Filtrele IIR sunt
descrise de ecuaţiile cu diferenţe (3.2.48), motiv pentru care acestea sunt cunoscute
drept filtre recursive.
Filtrele recursive se utilizează foarte des, deoarece, deja cu un ordin redus al
filtrului (cea mai mare putere a lui z în polinomul numitorului funcţiei de transfer
în z), acestea prezintă calităţi foarte bune (trecere abruptă din zona de traversare la
cea de blocare, atenuare puternică în zona interzisă). De asemenea filtrele IIR sunt
mult mai uşor de proiectat decât filtrele FIR.
Din păcate, filtrele IIR au tendinţa unei defazări pronunţate în zona de trecere.
Aceasta înseamnă că diferite componente ale semnalului util, în funcţie de
frecvenţa lor, le este permisă trecerea cu defazări diferenţiate. Semnalul care
trebuie filtrat va suferii în domeniul timp o modificare a formei sale.
Filtrele IIR sunt, aşa cum s-a indicat mai devreme, filtre recursive care pot fi
descrise prin ecuaţii cu diferenţe de forma (3.2.48) iar, prin aceasta, la rândul lor şi
cu ajutorul funcţiei de transfer în z, de forma (3.2.63).
O cale clasică de concepere a unor astfel de filtre constă în aceea de a pornii de la
exemplul unui filtru continuu, descris de o funcţie de transfer în s, de forma
(3.2.18).
137
Cu ajutorul unor metode, care urmează a fi prezentate, la această procedură de
concepere a filtrului se determină ordinul filtrului n şi parametrii ai şi bi din (3.2.18)
pentru a stabilii, în funcţie de scopul filtrării, tipul acestuia (trece sus, trece jos, etc).
În continuare se poate fixa un tip de filtru (Butterworth, Bessel, etc) cu care
anumite proprietăţi ale filtrului (de exemplu intensitatea defazajului) pot fi
optimizate.
Ulterior funcţia de transfer în s astfel găsită, se transformă printr-o relaţie de
discretizare (pentru aceasta se va utiliza relaţia (3.2.79)) într-o funcţie de transfer în
z, care, aşa cum s-a arătat în capitolul 4.3, poate fi transformată într-o ecuaţie cu
diferenţe.
Principală problema la conceperea unui filtru constă în acea de a determina, pentru
un anume tip de filtru dorit, parametrii corespunzători ai filtrului ai şi bi din funcţia
de transfer în s precum şi stabilirea ordinului filtrului.
Vom începe analiza etapelor de concepere a unui filtru digital IIR, cu descrierea
unui filtru trece jos continuu.
Aşa cum s-a arătat, elementul RC cu funcţia de transfer (3.2.19)
Y (s) 1
H (s) = = (4.4.1)
U ( s ) 1 + sRC
Y (s) 1 1
H (s) = = = . (4.4.2)
U (s) 1 1
1+ s 1+ s
ωg 2πf g
138
Y ( s) 1
H (s) = = , (4.4.3)
U ( s ) 1 + s ⋅ 0.001
1 1
= 0,001; ⇒ f g = = 159.16 Hz (4.4.4)
2π ⋅ f g 2π ⋅ 0.001
Acest calcul corespunde citirii frecvenţei limită din diagrama Bode a elementului
RC, figura 3.9.
Dacă analizăm această diagramă Bode, se poate constata că în zona de atenuare f >
fg amplificarea scade cu 20 dB pe decada de frecvenţă. Dacă în această zonă este
necesară o atenuare mai mare, pentru a delimita mai bine domeniul de trecere de
domeniul de blocare, respectiv de a atenua mai puternic componente de frecvenţă
ale semnalului ce urmează a fi eliminate, ordinul filtrului trebuie mărit, de exemplu
prin aceea că filtre de ordinul întâi urmează să fie conectate în cascadă:
1 1 1
H (s) = ⋅ ⋅ ... ⋅ . (4.4.5)
s s s
1+ 1+ 1+
ωg ωg ωg
123 123 123
Filtrul _ 1 Filtrul _ 2 Filtrul _ n
Din păcate, prin această metodă simplă, frecvenţa limită fg nu rămâne la locul ei
definit, ci devine odată cu creşterea lui n, mai mică. Ambele fenomene sunt
evidenţiate în figura 4.6 unde pentru cascade de ordinul 1., 2., 3. şi 5. al filtrului
RC (4.4.3) sunt reprezentate caracteristicile de amplitudine ale diagramei Bode.
139
Fig. 4.6 Caracteristicile de amplitudine a unor cascade de filtre, de diferite lungimi,
alcătuite din filtre trece jos de ordinul 1
Caracteristica de frecvenţă a unui filtru trece jos poate fi acum optimizată din mai
multe puncte de vedere. Dacă, de exemplu, factorul
α= n
2 −1 (4.4.6)
se adaugă în (4.4.5):
1 1 1
H (s) = ⋅ ⋅ ... ⋅ , (4.4.7)
s s s
1+α 1+α 1+ α
ωg ωg ωg
1424 3 1424 3 1424 3
Filtrul _ 1 Filtrul _ 2 Filtrul _ n
la fiecare ordin n ales al filtrului, frecvenţa limită rămâne exact în poziţia dinainte
definită. Căderea amplificării de n⋅20dB/dec se menţine. Astfel de filtre optimizate
sunt cunoscute drept „filtre cu atenuare critică”.
Alte optimizări ale caracteristicii de frecvenţă a filtrelor trece jos sunt cunoscute
sub denumiri caracteristice:
140
• Parametrii funcţie de transfer (3.2.18) ai unui filtru trece jos Butterworth
sunt astfel calculate („optimizate”) încât caracteristica de amplitudine să
înregistreze o evoluţie orizontală cât se poate de lungă, iar cu puţin înaintea
frecvenţei limită, să înregistreze o deviere bruscă. O frecvenţă limită definită, se
menţine la toate ordinele sistemului.
Fig. 4.7 Diagrama Bode a filtrelor trece jos Butterworth, Bessel şi Tschebyscheff
de ordinul 10 la fg = 1 Hz
141
Figura 4.7 ilustrează evoluţia caracteristicilor de frecvenţă pentru un filtru trece jos
Butterworth, Bessel şi Tschebyscheff de ordinul 10 la fg = 1 Hz, în care pot fi
recunoscute proprietăţile descrise anterior.
bm s m + bm−1 s m −1 + .. + b2 s 2 + b1 s + b0
H (s) = (4.4.8)
s n + a n −1 s n −1 + bn − 2 s n − 2 + .. + a 2 s 2 + a1 s + a 0
m≤n
[h]=buttmag(order,omegac,sample) (4.4.9)
Prin intermediul aşa numitelor transformări trece jos, se obţin din prototipul unui
filtru trece jos continuu H(s’), sunt filtre trece jos de forma (4.4.8), având o
frecvenţă limită fixă ωg = 2π⋅fg, dar pentru tipuri de filtre diferite (Butterworth,
Bessel, …) şi pentru orice ordin n al filtrului, se calculează vectorii coeficienţi b şi
a ale prototipurilor trece jos anterior amintite (4.4.20).
În acest prototip trece jos se înlocuiesc acum, în funcţie de tipul de filtru care
urmează a fi compus (trece sus, trece bandă, …), diferite substituţii ale lui s’
(„transformări trece jos”):
142
Fig.4.8 Caracteristica filtrelor Butterworth trece jos de ordinul 1., 5. şi 10.
s
s' = (4.4.11)
2π ⋅ f g
2π ⋅ f g
s' = (4.4.12)
s
2
s
+1
ω* ω*
s' =
B s
; ω * = 2π ⋅ (
f gi ⋅ f gs ; B = 2π ⋅ f gi − f gs ) (4.4.13)
ω*
143
se obţine un filtru trece bandă cu frecvenţa limită inferioară fgi şi frecvenţa limită
superioară fgs.
s
s' =
B ω* ; ω * = 2π ⋅ (
f gi ⋅ f gs ; B = 2π ⋅ f gs − f gi ) (4.4.14)
ω s 2
*
* +1
ω
rezultă un filtru opreşte bandă cu frecvenţa limită inferioară fgi şi frecvenţa limită
superioară fgs.
1
H (s) = (4.4.15)
1 + s'
Prin (4.4.11) se obţine din (4.4.15) un filtru trece jos (FTJ) cu o frecvenţă limită, de
exemplu, de fg = 100Hz:
1 1 1
H FTJ ( s ) = = = . (4.4.16)
1+
s 1
s +1 1.59 ⋅ 10 −3 s + 1
2π ⋅ f g 628
Caracteristicile de frecvenţă ale acestui filtru, figura 4.9a, sunt calculate cu ajutorul
programului bode_c.sce.
Prin (3.4.12) înlocuit în (4.4.15) rezultă un filtru trece sus (FTS) cu o frecvenţă
limită, de exemplu, de fg = 1000 Hz:
1 s s
H FTS ( s ) = = = . (4.4.17)
2π ⋅ f g s + 2π ⋅ f g s + 6280
1+
s
144
a cărui caracteristică de frecvenţă este reprezentată în figura 4.9b, cu ajutorul
programului bode_c.sce.
Prin (4.4.13) se obţine un filtru trece bandă (FTB) cu frecvenţa limită inferioară, de
exemplu, de fgi = 200 Hz şi frecvenţa limită superioară fgs = 500 Hz, figura 4.9.c:
5.0352 ⋅ 10 −4 s
H FTB ( s ) = . (4.4.18)
2.6713 ⋅ 10 −7 s 2 + 5.0352 ⋅ 10 − 4 s + 1.0541
Fig. 4.9 b Diagrama Bode a filtrului trece sus conform funcţiei de transfer (4.4.17)
146
Fig. 4.9 c Diagrama Bode a filtrului trece bandă conform funcţiei de transfer (4.4.18)
Fig. 4.9 d Diagrama Bode a filtrului opreşte bandă conform funcţiei de transfer (4.4.19)
După ce s-a obţinut funcţia de transfer în s a unui filtru dorit, aceasta trebuie să fie
transformată, cu ajutorul relaţiei de transpunere (3.2.79) în domeniul z.
147
Funcţia de transfer în z rezultată (3.2.63)
Y ( z ) β 0 + β1 z + ... + β q z
−1 −q
H IIR ( z ) = = (4.4.20)
U ( z ) 1 + α 1 z −1 + ... + α p z − p
p q
y IIR (n) = ∑ − α i y (n − i ) + ∑ β u(n − i )
i (4.4.21)
i =1 i =0
Filtre FIR sunt filtre nerecursive. Ecuaţia lor cu diferenţe este din acest motiv
alcătuită doar din partea nerecursivă a ecuaţiilor cu diferenţă (3.2.48) şi (4.4.21):
q
y FIR (n) = ∑ β u(n − i );
i =0
i
(4.4.22)
= β 0 u (n) + β1u (n − 1) + ... + β q u (n − q)
u(n): mărimea de intrare; y(n): mărimea de ieşire
148
Y ( z)
H ( z) = = β 0 + β 1 z −1 + ... + β q z − q
U ( z)
β 0 z q + β 1 z q −1 + ... + β q
= . (4.4.23)
zq
Filtrele FIR pot fi astfel compuse încât evoluţia de fază a acestora să fie
proporţională cu frecvenţa, adică o evoluţie liniară a acesteia de-a lungul axei
frecvenţei. Un filtru cu aceste proprietăţi permite unui semnal să parcurgă
domeniul de trecere fără modificarea formei curbei şi filtrează doar componentele
de frecvenţă din domeniul de oprire.
Dorim să analizăm această proprietate pe baza figurilor 4.10 şi 4.11. În figura
4.10.a şi b sunt prezentate caracteristicile de amplitudine şi de fază ale unui filtru
opreşte bandă Butterworth IIR de ordinul 6 cu fgi = 0.8 Hz şi fgs = 1.2Hz. Semnalul
de intrare în acest filtru, reprezentat în figura 4.10c cu linie întreruptă,
149
Figura 4.10 Defazajul unui filtru IIR opreşte bandă
150
La această analiză sunt evidenţiate şi dezavantajele unui filtru FIR: pentru a atinge
un efect de filtrare asemănător cu cel al unui filtru IIR, (circa -100dB) gradul
filtrului FIR trebuie să fie semnificativ mai mare decât cel al filtrului IIR, ceea ce
poate deveni o problemă în cazul aplicaţiilor în timp real.
Deşi semnalul de ieşire în cazul filtrelor FIR este neschimbat, se înregistrează o
deviere completă a semnalului faţă de semnalul de intrare. Pentru cazul analizat se
observă aproximativ 4.5 sec faţă de doar 0.5 sec la filtrul IIR.
Avantajul lipsei de defazare este plătit cu un efort de realizare considerabil mai
mare şi cu o întârziere globală mare a semnalului de ieşire faţă de semnalul de
intrare. Filtrele FIR rămân însă şi la ordine mari, numeric stabile deoarece nu au o
construcţie recursivă.
Proiectarea filtrelor FIR, ceea ce înseamnă găsirea corectă a coeficienţilor βi în
ecuaţia cu diferenţe (4.4.22) pentru realizarea unui anumit tip de filtru (trece sus,
trece jos, …) şi a unei evoluţii liniare a fazei, se bazează pe următoarele
consideraţii.
Privim într-o primă fază ecuaţia cu diferenţe (4.4.22) cu q + 1 parametrii β0, β1, β2,
β3, … . Deoarece în cazul filtrelor FIR se obişnuieşte ca ordinul filtrului să fie
indicat cu N, q + 1 poate fi considerat ca fiind N iar prin aceasta q poate fi exprimat
prin N-1
N −1
y FIR (n) = ∑ β (i ) ⋅ u(n − i ).
i =0
(4.4.24)
N −1
y ( n) = ∑ h(i ) ⋅ u(n − i ),
i =0
(4.4.25)
β i = h(i );
(4.4.26)
i = 0,1,2,3,..., N − 1.
151
Valorile funcţiei pondere sunt legate prin transformata z (3.2.58) de funcţia de
transfer în z
N −1
−n
H ( z) = ∑ h ( n) ⋅ z . (4.4.27)
n =0
z = e sT | s = jω = e jωT = e j 2πfT
în domeniul frecvenţă
N −1
− j 2πnfT
H( f ) = ∑ h( n ) ⋅ e (4.4.28)
n =0
1
f ≈ k ⋅ ∆f = k ⋅ ,
NT
se obţine
N −1 − j 2π
kn
H (k ⋅ ∆f ) = ∑ h ( n) ⋅ e N . (4.4.29)
n =0
152
Printr-o serie suplimentară de calcule matematice se poate arăta că [21] h(n) trebuie
să dispună de o anumită structură, şi anume de o evoluţie simetrică şi în oglindă,
pentru a produce o evoluţie lineară a fazei în domeniul frecvenţei, figura 4.12.
Fig 4.12 Evoluţii în oglindă şi simetrică a funcţiei pondere a unui filtru FIR cu evoluţie
liniară a caracteristicii de fază
Pentru o evoluţie simetrică în oglindă unui număr întreg N de valori ale lui h(n),
spectrul corespunzător trebuie să înregistreze o evoluţie a fazei ϕ{H} care să
satisfacă următoarea ecuaţie:
N −1
ϕ {H ( f )} = −2π ⋅ ⋅ f ⋅T; (4.4.30a)
2
1
respectiv cu f ≈ k ⋅ ∆f = k ⋅
NT
N −1
ϕ {H (k ⋅ ∆f )} = −2π ⋅ ⋅ k. (4.4.30b)
2N
Valorile amplitudinilor |H(f)| corespunzătoare spectrului sunt liber alese, aşa cum
trebuie să fie caracteristica ulterioară de amplitudine a filtrului. Înainte de a
parcurge etapele legate de implementarea unui astfel de filtru, dorim să revenim
asupra timpului de deplasare, reprezentat în figura 4.11.c, dintre semnalul de ieşire
şi de intrare a unui filtru FIR. Dorim să calculăm acest timp de deplasare, cunoscut
în literatura de specialitate ca timp de grup τ, cu ajutorul relaţiei sale de definiţie
d (ϕ {H ( f )}) 1 d (ϕ {H ( f )})
τ =− =− ⋅ ,
dω 2π df
153
care va fi înlocuită în relaţia de fază a filtrului FIR de fază lineară (4.4.30a)
1 N −1 N −1
τ= 2π ⋅ ⋅T = ⋅T .
2π 2 2
Astfel s-a obţinut o relaţie general valabilă pentru timpul de grup al unui filtru FIR:
N −1
τ= ⋅T (4.4.31)
2
Cu parametrii N = 180 şi T = 0.05 sec utilizaţi în cadrul filtrului din figura 4.11,
rezultă un timp de grup de
179
τ= ⋅ 0.05 sec ≈ 4.5 sec,
2
154
Fig. 4.13 Caracteristica de amplitudine dorită pentru un FIR trece jos
Fig. 4.14 Punctele de eşantionare ale frecvenţei pentru operaţia ulterioară a TFD-1
155
1 1 1
∆f = = = = 100 Hz. (4.4.32)
NT 10 ⋅ 0.001sec 0.01sec
N −1
ϕ {H (k ⋅ ∆f )} = −π ⋅ ⋅ k ; [rad] (4.4.33)
N
N
k = 0,1,2,..., .
2
N −1
ϕ {H (k ⋅ ∆f )} = π ⋅ ⋅ ( N − k + 1); [rad] (4.4.34)
N
N N
k= + 1, +,2,..., N .
2 2
K 0 1 2 3 4 5 6 7 8 9
ϕ {H (k ⋅ ∆f )} 0 - - - - - 3.6π 2.7π 1.8π 0.9π
rad 0.9π 1.8π 2.7π 3.6π 4.5π
ϕ {H (k ⋅ ∆f )} 0 -162 -324 -486 -648 -810 648 486 324 162
Grad
156
Pentru exprimarea fazei din unitatea „rad” în unitatea „Grad” se utilizează relaţia
(3.2.28):
ϕ [Grad ] = ϕ [rad ] ⋅
180
. (4.4.35)
π
Fig. 4.15 Caracteristica de fază necesară pentru conceperea FIR trece jos
H (k ⋅ ∆f ) = H (k ⋅ ∆f ) ⋅ e ϕ {H (k ⋅∆f )}
H (k ⋅ ∆f ) = Re{H (k ⋅ ∆f )} + j Im{H (k ⋅ ∆f )}
k ⋅n
N −1 j ⋅2 π
∑ H (k ⋅ ∆f ) ⋅ e
1 N
h(nT ) = (4.4.36)
N k =0
157
n = 0, 1, 2, …, N – 1
se obţin următoarele h(n), alcătuite dintr-o serie de 10 valori simetrice, figura 4.16.
Fig. 4.16 Seria de valori h(n) determinată prin TFD-1 a filtrului ce urmează să fie compus
158
Procedura prezentată este cunoscută în literatură ca metoda de eşantionare a
frecvenţei. Aceasta se pretează la conceperea filtrelor de fază lineare trece jos şi
opreşte bandă. Cu îndemânarea corespunzătoare pot fi dezvoltate şi filtre trece sus
şi opreşte bandă.
O a doua metodă, clasică, de concepere este aşa numita „procedură fereastră” [16],
care presupune însă acumularea unei anumite experienţe în domeniu. Cu ajutorul
acesteia se pot implementa, similar ca şi în cazul filtrelor IIR, un prototip trece jos,
care apoi, cu ajutorul transformărilor trece jos, să fie adus în forma trece sus, trece
bandă, … . În general conceperea filtrelor FIR cu ajutorul metodei de eşantionare a
frecvenţei sau prin procedura de fereastră, reprezintă în general mai multă artă şi
pricepere, iar mai puţină ştiinţă. Comportamentul dorit al filtrului este quasi
construit via „trial and error”.
159
O a treia variantă de concepere, bazată pe o metodă iterativă, deci bazată pe calcule,
este metoda Parks-McClellan.
Instrucţiunea Scilab
160
amplitudine indicate (dorite) în vectorii fn şi a, cu ordinul N indicat al filtrului, să
fie minimale.
Vectorii fn şi a descriu caracteristica de amplitudine dorită. fn este un vector
normat cu perechi de frecvenţă între f = 0 şi f = fNyquist. a este un vector care conţine
punctele dorite ale caracteristicii de amplitudine în funcţie de frecvenţele definite
în f.
De exemplu, prin
f = 0,180,200,280,300,380,400,500;
a = 0, 1, 0, 0, 0.5, 0.5, 0.5, 1; (4.4.38)
y (n) =
1
[u (n) + u (n − 1) + ... + u (n − q)] (4.4.39)
q +1
reprezintă de asemenea un filtru FIR, însă fără o evoluţie lineară a fazei. Prin
1
βi = ; i = 0, 1, 2, .., q (4.4.40)
q +1
161
expresia (4.4.39) se transformă în ecuaţia cu diferenţe a unui filtru FIR (4.4.22).
Prin aceasta se poate calcula caracteristica de frecvenţa a unui „filtru de mediere”
şi reprezenta grafic în cadrul diagramei Bode.
162
ANEXA A1: TRANSFORMĂRI ALE INTEGRALELOR
furnizează
∞ ∞
u (t ) = uˆ ⋅ e −νt ⋅ e − j 2πft dt = uˆ ⋅ e −(ν + j 2πf )t dt
∫ ∫
0 0
∞
e −(ν + j 2πf )t uˆ uˆ
= uˆ ⋅ =0+ = ;
− (ν + j 2πf ) 0 j 2πf + ν j 2πf + ν
∫ δ (t )dt = 1
−∞
163
0 pentru t<0
u (t ) = uˆ pentru 0 ≤ t ≤ τ
0 pentru t > τ
Funcţia exponenţială (A1.1.4)
uˆ
uˆ ⋅ e −νt pentru t ≥ 0 U( f ) =
u (t ) = j ⋅ 2π ⋅ f + ν
0 pentru t < 0
Oscilaţie sinusoidală atenuată (A1.1.5)
uˆ ⋅ 2π ⋅ f 0
uˆ ⋅ e−νt ⋅ sin(2π ⋅ f 0 ⋅ t ) pentru t ≥ 0 U( f ) =
u(t) = ( j ⋅ 2π ⋅ f 0 +ν )2 + (2π ⋅ f 0 )2
0 pentru t < 0
Exemplul 1: Care este expresia transformatei Laplace a unui semnal treaptă unitar
σ(t)?
∞ ∞
L{σ (t )} = σ (t )e − sT dt = 1e − sT dt = − e − sT | tt == ∞0 = ;
1 1
0
∫ 0
∫ s s
L{σ (t )} = .
1
s
L{a1u1 (t ) + a 2 u 2 (t ) + ... + a i u i (t )} =
∞
; ai = const.
∫ {a u (t ) + a u (t ) + ... + a u (t )}e
− sT
1 1 2 2 i i dt
0
∞ ∞ ∞
a1 u1 (t )e − sT dt + a 2 u 2 (t )e − sT dt + ... + a i u i (t )e − sT dt =
∫ ∫ ∫
0 4244
14 3 0 4244
14 3 0 4244
14 3
U1 ( s ) U 21 ( s ) U i1 ( s )
164
Corespondenţe ale transformatei Laplace pentru câteva funcţii temporale
importante (u(t) = 0 pentru t < 0) :
165
Exemplul 1: Să se calculeze transformata z a semnalului treaptă unitate:
1 pt n ≥ 0
σ ( n) =
0 pt n < 0
∑1(z )
∞ ∞
Z {σ (n)} = −n −1 n 1 z
∑ 1z = = −1
= . (A1.3.1)
n =0 n =0 1− z z −1
Expresia sumei din relaţia de mai sus reprezintă o serie geometrică infinită, pentru
care există soluţia:
∑ p(z )
∞
−1 n p
= (A1.3.2)
n=0 1 − z −1
{ } ∑e ∑ (e )
∞ ∞
n 1 z
Z e an = an
z −n = a
z −1 = a −1
= . (A1.3.3)
n =0 n=0 1− e z z − ea
166
5. z ⋅ sin a Seria sinus
sin(an)
z − 2 z ⋅ cos a + 1
2
167
ANEXA A2: NUMERE COMPLEXE ŞI VALORI ALE
FUNCŢIILOR COMPLEXE
• Numere complexe
− 25 = − 1 ⋅ 25 = − 1 ⋅ 5. (A2.1)
−1 = j ⇒ j 2 = −1. (A2.2)
− 1 ⋅ 5 = j 5. (A2.3)
Un număr complex z este suma formată dintr-un număr real a şi un număr imaginar
b
z = a + jb (A2.4)
Numărul complex
z * = a − jb (A2.5)
168
1
z= . (A2.6)
p + jq
1 p − jq
z= ⋅ . (A2.7)
p + jq p + jq
p − jq p − jq
z= = 2 , (A2.8)
p − jq + jq + q
2 2
p + q2
p −q
z= + j 2 . (A2.9)
p +q
2 2
p + q2
1
424 3 1424 3
a b
169
Fig. A2.1 Număr complex reprezentat în planul numerelor complexe
Coordonatele polare r şi ϕ ale unui număr complex se calculează din teorema lui
Pitagora
170
Im{z} b Im{z} b
tan ϕ = = ⇒ ϕ = arctan = arctan . (A2.11)
Re{z} a Re{z} a
b
sin ϕ = ⇒ b = r ⋅ sin ϕ , (A2.12)
r
a
cos ϕ = ⇒ a = r ⋅ cos ϕ . (A2.13)
r
z = r ⋅ e jϕ respectiv z * = r ⋅ e − jϕ . (A2.17)
• Funcţii complexe
171
U ( k ) = Re{U ( k )} + j Im{U ( k )}; (A2.18)
k = 0, 1, 2, … .
Re 2 {U ( k )} + j Im 2 {U ( k )} = U (k ) ,
Im{z}
ϕ = arctan (A2.20)
Re{z}
172
ANEXA A3: POLINOAME ŞI FUNCŢII RAŢIONALE
• Polinoame
f ( x) = a n x n + a n −1 x n −1 + .. + a 2 x 2 + a1 x + a 0 , (A3.1)
f ( x) = a 0 , (A3.2)
f ( x) = a1 x + a 0 , (A3.3)
f ( x) = a 2 x 2 + a1 x + a 0 (A3.4)
În general, toate aceste funcţii, inclusiv cele de ordin superior, sunt cunoscute drept
polinoame.
De exemplu polinomul
y = f ( x ) = x 5 − 3 x 4 − 39 x 3 + 47 x 2 + 210 x (A3.5)
are în domeniul -5 ≤ x ≤ 7 următorul grafic:
173
Fig. A3.1 Graficul polinomului A3.5
a n x n + a n −1 x n −1 + .. + a 2 x 2 + a1 x + a 0 = 0. (A3.6)
Valorile lui x care satisfac această relaţie, sunt denumite rădăcini ale polinomului.
Rădăcinile polinoamelor pot fi numere reale (de exemplu 2, 7) şi / sau numere
pereche complex conjugate (de exemplu 3 + j4 şi 3 - j4). Conform teoremei
fundamentale a algebrei un polinom de ordinul n posedă exact n rădăcini.
Rădăcinile complex conjugate sunt privite ca fiind două rădăcini. Toate rădăcinile
pot apare simplu, adică odată, sau de mai multe ori.
În reprezentarea grafică pot fi citite la intersecţia graficului polinomului cu axa x (y
= 0) rădăcinile reale. Rădăcinile complexe nu sunt reprezentate în grafic.
Rădăcinile polinoamelor de ordinul 0. până la 3. pot fi calculate prin metode
analitice. Pentru polinoame de ordinul superior, se utilizează metode numerice de
calcul.
Prin intermediul rădăcinilor un polinom (A3.1) poate fi exprimat în aşa numită
formă de produs. Dacă x1, x2, x3, …., xn sunt rădăcinile polinomului, forma de
produs a acestuia este
174
f ( x) = K ⋅ (x − x1 ) ⋅ ( x − x 2 ) ⋅ ... ⋅ ( x − x n ). (A3.7)
K este un factor constant. xi poate fi, aşa cum s-a precizat anterior, real sau perechi
complex conjugate. Termenii dintre paranteze se numesc factori lineari.
y = f ( x ) = 2 x 3 + 8 x 2 + 16 x.
Rezolvare:
(
2 x 3 + 4 x 2 + 8 x = 0; ) ⇒
x (x 2
)
+ 4 x + 8 = 0; ⇒
x1 = 0;
(
x x 2 + 4 x + 8 = 0; )
x 2,3 = −2 ± 4 − 8 = −2 ± j 2;
x 2 = −2 + j 2;
x 3 = −2 − j 2;
f ( x) = 2 ⋅ (x − 0 ) ⋅ ( x − (− 2 + j 2 )) ⋅ (x − (− 2 − j 2 ))
= 2 ⋅ ( x + 2 − j 2 ) ⋅ (x + 2 + j 2 ).
df ( x)
y′ = = n ⋅ a n x n −1 + (n − 1) ⋅ a n −1 x n − 2 + .. + 2a 2 x 2 + a1 . (A3.8)
dx
175
• Fracţii raţionale
bm x m + bm −1 x m−1 + .. + b2 x 2 + b1 x + 0
F ( x) = ; (A3.9)
a n x n + a n −1 x n −1 + .. + a 2 x 2 + a1 x + a 0
(x − x1z ) ⋅ (x − x 2 z ) ⋅ ... ⋅ (x − x mz )
F ( x) = M ⋅
(x − x ) ⋅ (x − x ) ⋅ ... ⋅ (x − x ) ;
1p 2p np
(A3.10)
M – factor constant;
xiz – zerourile polinomului de la numărător;
xip – polii polinomului de la numitor.
176
ANEXA B1: PRELUCRAREA SEMNALELOR ÎN SCILAB
Matricea creata este asociata variabilei ‚mat’. Daca s-ar fi construit o matrice cu
mai multe linii si coloane, atunci aceasta, de obicei, nu se vizualizează. Punct si
virgula de la sfârşitul instrucţiunii anterioare, transmite Scilab-ului de a nu afişa
matricea.
Daca dorim sa aflam mai multe legate de instrucţiunea ‚rand’ atunci putem scrie:
help rand
Va apare o fereastra, figura B1.1, in care sunt explicate detaliat opţiunile funcţiei
alături de o serie de exemple.
177
Fig. B1.1 Fereastra de ajutor pentru instrucţiunea ‚rand’
‚ans’ este răspunsul la interogarea noastră si indica faptul ca variabila ‚mat’ este de
tipul ‚1’. Daca definim un sir de caractere si interogam tipul acesteia, vom obţine
un alt raspuns:
str = ‚Scilab’
str =
Scilab
type (str)
ans =
10.
Astfel, un sir de caractere reprezintă o variabila de tipul ‚10’. Mai multe detalii
legate de diferitele tipuri in Scilab, pot fi obţinute prin interogarea ‚help type’.
178
O matrice, un vector si un scalar sunt variabile ale aceluiaşi tip.
scal = 3;
vec = [2 3 4 5.3];
scalcomplex = 3 + 2*%i;
type (scal)
ans =
1.
type (vec)
ans =
1.
type (scalcomplex)
ans =
1.
Deseori interesează numărul de linii si de coloane ale unei matrici. Pentru o astfel
de verificare putem utiliza:
size (mat)
ans =
! 5. 6. !
Din moment ce mărimile scalare si vectoriale aparţin aceluiaşi tip precum matricele,
putem de asemenea obţine dimensiunile acestora utilizând aceeaşi comanda:
size (vec)
ans =
! 1. 4. !
size (scal)
179
ans =
! 1. 1. !
size (scalcomplex)
ans =
! 1. 1. !
Uneori este mai util a obţine doar numărul liniilor sau coloanelor unei matrici:
size (mat,1)
ans =
5.
size (mat,2)
ans =
6.
ans =
4.
ans =
30.
Am creat ‚mat’, ‚str’, ‚vec’, ‚scal’ si ‚scalcomplex’ iar acestea pot fi şterse in mod
selectiv
clear str // sterge str
!—error 4
180
vec =
! 2. 3. 4. 5.3 !
!—error 4
În contextul analizat, sinusoidele sunt funcţii ‚sin’ ale unui vector. După cum se
cunoaşte, aproape fiecare semnal întâlnit în practică poate fi construit din suma
diferitelor sinusoide cu diferite valori ale amplitudinii, frecvenţei şi fazei.
Vom începe prin:
--> k=1:100; vecsin = sin (2 * %pi * 0.02 * k); plot(vecsin);
Se va obţine graficul unei funcţii ‚sin’, reprezentată în colţul din stânga sus al
figurii B1.2. Aceasta este o funcţie sinus de la 0 la 100. Eşantionarea s-a realizat la
‚1’, ceea ce a fost determinat prin ‚k=1:100’. În consecinţă se poate constata că
valoarea frecvenţei de eşantionare a fost egală cu ‚1’. Frecvenţa acestui semnal este
0.02 (Hz daca privim 1 ca fiind o secunda) iar perioada este de 50 (1/0.02,
frecvenţa fiind inversa perioadei).
181
Fig. B1.2 Exemple de semnale
şi
k=1:100; vecsin = sin (2 * %pi * 0.5 * k); plot(vecsin)
Semnalul reprezentat nu mai este unul sinusoidal, imaginea de sus a coloanei din
dreapta, figura B1.2, ci un semnal care variază în frecvenţă. Dacă verificăm scala
axei y, vom vedea că graficul nu variază între -1 si 1, ci de la -4e-14 la 4e-14, adică
182
semnalul este mai mult sau mai puţin egal cu ‚zero’. Ce se întâmplă dacă creştem şi
mai mult frecvenţă semnalului?
k=1:100; vecsin = sin (2 * %pi * 0.8 * k); plot(vecsin)
Scala axei y este din nou de la -1 la 1, graficul din mijloc a coloanei din dreapta,
figura B2.1, dar în schimbul unei frecvenţe de 0.8, o perioada de 1.25 (1/8) şi 80 de
repetiţii, am obţinut doar 20 de repetiţii. Mai mult,
k = 1:100; vecsin = sin (2 * %pi * 0.95 * k); plot(vecsin)
Ceea ce s-a putut observa este aşa numita ‘aliere’, fenomen cu importante
consecinţe practice. Dacă t este o variabilă reală, sin(6.28*f*t) este o funcţie
continuă. Pe de alta parte, vecsin=sin(2*%pi*frecventa*k), unde k este o variabila
discreta, poate fi privită ca o funcţie eşantionată. Conform teoremei de eşantionare,
pentru un semnal a cărui frecvenţă maximă fmax este eşantionat la o frecvenţă mai
mare decât 2fmax, atunci semnalul original poate fi complet reconstruit. De
asemenea conform teoremei de eşantionare, pentru frecvenţe peste valoarea din
jumătatea frecvenţei de eşantionare, vor apare frecvenţe de aliere (frecvenţe care nu
apar în semnalul original şi care pot modifica profund forma acestuia). Eşantionând
cu o frecvenţă egală cu 1 putem reconstruii semnale a căror frecvenţă maximă este
1/ (2*1) = 0.5. Dacă aplicăm aceasta expresie pentru diferite valori ale ratei de
eşantionare, se obţin valorile indicate în tabelul 1.1.
183
Tab B.1 Raportul dintre frecventa de eşantionare şi frecvenţa maximă a semnalului
eşantionat
Perioada de Perioada de Frecventa de Frec. Max. (Hz)
eşantionare (ms) eşantionare (s) eşantionare (Hz)
1000 1.0 1.0 0.5
500 0.5 2.0 1.0
100 0.1 10.0 5.0
50 0.05 20.0 10.0
10 0.01 100.0 50.0
5 0.005 200.0 100.0
1 0.001 1000.0 500.0
0.5 0.0005 2000.0 1000.0
0.1 0.0001 10000.0 5000.0
0.05 0.00005 20000.0 10000.0
0.01 0.00001 100000.0 50000.0
Frecvenţa maximă prezentă în semnalul original trebuie să fie cel puţin la jumătate
din valoarea frecvenţei semnalului de eşantionare. Această frecvenţă este cunoscută
ca ‚frecventa Nyquist’.
0. 0. 0. 0. 0. 1. 1. 1. 1. 1.
184
‘zeros(n,m)’ generează o matrice de n linii si m coloane cu zerouri, iar ‘ones(n,m)’
are aceaăi funcţie doar cu unu, ‘virgula’ pastreaza aceaşi linie, iar parantezele
pătrate construiesc vectorul.
ans =
0.
--> stepvector(6)
ans =
1.
--> stepvector(4:7)
ans =
0. 0. 1. 1.
ans =
10.
--> stepvector(4:7)=[ ]
stepvector =
0. 0. 0. 1. 1. 1
--> length(stepvector)
ans =
6.
stepvector =
0. 0. 0. 2. 2. 2. 2. 1. 1. 1
185
--> stepvector (length(stepvector))
ans =
1.
ans =
1.
ans =
2.
Vom urmării o aplicaţie prin care se vor detecta secvenţe ale semnalului ale cărui
valori cresc. Vom începe printr-un vector aleator, utilizând un vector boolean,
cuplat cu acesta pentru a detecta secvenţele in creştere (un vector Boolean este un
vector alcătuit din valorile adevărat sau fals: %T si %F) .
--> randvector = rand (1:10) // genereaza un vector aleator
randvector =
checkvector =
checkvectorbool =
186
T F T T F T F T F
checkvectorbool =
F T F T T F T F T F
result =
check =
0.2113249 0.
0.7560439 0.7560439
0.0002211 0.
0.3303271 0.3303271
0.6653811 0.6653811
0.6283918 0.
0.8497452 0.8497452
0.6857310 0.
0.8782165 0.8782165
0.0683740 0.
Prima coloană din ‘check’ reprezintă vectorul original (‘randvector’), cea de-a
doua coloană conţine rezultatul. În concluzie, au fost detectate valorile care sunt
mai mari decât valorile precedente şi au fost eliminate acele valori care nu au
coincis acestei proprietăţi. Pentru a atinge acest obiectiv, a fost utilizat un vector
Boolean care se obţine prin verificarea întregului vector printr-o condiţie. Această
procedură poate fi utilizată pentru vectori de o lungime mult mai mare sau pentru
semnale reale.
187
B1.2 CONVOLUŢIA SEMNALELOR
B1.2.1 Introducere
Semnalele pot fi prelucrate in mod diferit şi asociate cu diferiţi operatori. Una din
acestea este convoluţia. Instrucţiunea utilizată în Scilab pentru implementarea
acestei operaţii este convol.
--> a = [1 2 3]
a =
1. 2. 3.
--> b = [1 0 0 0 0 1 0 0 0]
b =
1. 0. 0. 0. 0. 1. 0. 0. 0.
--> c = convol(a,b)
c =
1. 2. 3. 0. 0. 1. 2. 3. 0. 0. 0.
--> a = [ 0 0 0 1 1 1 1 0 0 0]
a =
0. 0. 0. 1. 1. 1. 1. 0. 0. 0.
--> b = [1 -1]
b =
! 1. - 1. !
0. 0. 0. 1. 0. 0. 0. - 1. 0. 0. 0.
188
În acest exemplu avem un semnal dreptunghiular a, asemănător unui semnal de
calibrare b. b a fost astfel proiectat pentru a detecta poziţiile în care a nu este
constant. Putem interpreta acest proces ca şi cum semnalul original ar fi fost filtrat
cu un filtru trece sus.
--> a = [ 0 0 0 1 1 1 1 0 0 0];
--> c = convol(a,b);
--> a'
ans =
! 0. !
! 0. !
! 0. !
! 1. !
! 1. !
! 1. !
! 1. !
! 0. !
! 0. !
! 0. !
--> c'
ans =
! 0. !
! 0. !
! 0. !
! 0.3333333 !
! 0.6666667 !
! 1. !
! 1. !
! 0.6666667 !
! 0.3333333 !
! 0. !
! 0. !
! 0. !
189
În cadrul acestui exemplu au fost eliminate schimbările bruşte care caracterizau
trecerea de la 1 la 0 şi de la 0 la 1. Cu alte cuvinte, am realizat o filtrare trece jos a
semnalului.
Un exemplu, similar cu cel dinainte, care să conţină şi o reprezentare grafică, poate
fi obţinut prin următorul cod:
--> x = [0 0 0 1 1 1 1 1 1 0 0 0];
--> xsetech([0,0,1,1/3],[-1,-2,15,2])
--> xsetech([0,1/3,1,1/3],[-1,-2,15,2])
--> xsetech([0,2/3,1,1/3],[-1,-2,15,2])
Rezultatul
Fig. B1.3 Semnalul original, rezultatul convoluţiei cu [1 -1] şi cu [1/3 1/3 1/3]
190
B1.2.2 Mecanismul convoluţiei
Primul semnal 1 2 3
Al 2-lea semnal 2 1 3
Al doilea pas este format din deplasarea progresivă şi de a însuma produsul celor
două semnale:
Primul semnal 3 2 1
Al 2-lea semnal 2 1 3
Produs 0 0 2 0 0
Suma 2 < - - - - - - -
Primul semnal 3 2 1
Al 2-lea semnal 2 1 3
Produs 0 4 1 0
Suma 5 < - - - - - - -
Primul semnal 3 2 1
Al 2-lea semnal 2 1 3
Produs 6 2 3
Suma 11 < - - - - - - -
Primul semnal 3 2 1
Al 2-lea semnal 2 1 3
Produs 0 3 6 0
Suma 9 < - - - - - - -
Primul semnal 3 2 1
191
Al 2-lea semnal 2 1 3
Produs 0 0 9 0 0
Suma 9 < - - - - - - -
Verificarea cu Scilab:
2. 5. 11. 9. 9.
192
b, apoi se implementează celor două polinoame iar în final se extrag coeficienţii
acestora. Se constată că ordinul rezultatului este dat de suma ordinului factorilor.
De asemenea se poate observa că lungimea convoluţiei a două semnale este suma
lungimilor acestora minus unu.
B1.3 CORELAŢIA
B1.3.1 Introducere
O operaţie importantă între semnale este corelaţia. Corelaţia este foarte apropiată
de convoluţie, instrucţiunea pusă la dispoziţie de Scilab fiind corr. Aceasta poate fi
utilizată cu unul sau cu doi vectori. Dacă apelăm la instrucţiunea corr doar cu un
vector, se obţine corelaţia vectorului cu el însuşi, autocorelaţia. Pe de altă parte,
dacă se utilizează doi vectori, se obţine corelaţia dintre aceştia, intercorelaţia.
Corelaţia poate fi utilizată pentru a măsura gradul de asemănare între două semnale.
Spre exemplificare, vom genera un semnal compus din două sinusoide de frecvenţe
apropiate:
--> t = 0:.01:10;
Cele două instrucţiuni simulează 10 secunde dintr-un semnal eşantionat la 100 Hz.
Se va genera un semnal perturbator cu o distribuţie Gaussiană, de aceeaşi lungime.
Din moment ce acesta va conţine toate frecvenţele, el este cunoscut drept zgomot
alb. Dacă utilizăm rand cu opţiunea normal se va obţine o distribuţie a valorilor
având media 0 şi deviaţia standard 1. În momentul în care se înmulţeşte cu 2 se va
obţine o distribuţie normală, cu valori ale căror medie este 0 şi înregistrează o
deviere standard de 2.
--> rand('normal')
--> rand('seed',0)
193
În continuare se va analiza corelaţia semnalului şi a zgomotului. Se va începe cu
analiza semnalului:
--> xbasc()
--> xsetech([0,0,1,1/2])
--> plot2d(t(1:500),semnal_baza(1:500));
--> xsetech([0,1/2,1,1/2])
--> plot2d(t(1:500),corr_semnal_baza(1:500))
a.
b.
Fig. B1.4 Semnalul analizat (a) şi autocorelaţia acestuia (b)
194
--> xbasc()
--> xsetech([0,0,1,1/2])
--> plot2d(t(1:50),semnal_baza(1:50));
--> xsetech([0,1/2,1,1/2])
--> plot2d(t(1:50),corr_semnal_baza(1:50))
a.
b.
Fig. B1.5 Reprezentarea pe o scală grafică cu o rezoluţie mărită
195
B1.3.2 Corelaţia zgomotului
--> xbasc()
--> xsetech([0,0,1,1/2])
--> plot2d(t(1:500),zgomot(1:500));
--> xsetech([0,1/2,1,1/2])
--> plot2d(t(1:500),corr_zgomot(1:500))
a.
b.
Fig. B1.6 Zgomotul a şi autocorelaţia acestuia b
Rezultatul obţinut este unul foarte important. Autocorelaţia zgomotului alb este 0
cu excepţia originii a cărei valoare reprezintă varianţa semnalului. Pentru zgomotul
analizat, varianţa este în jurul valorii de 4 din moment ce deviaţia standard a
acestuia este de 2.
196
B1.3.3 Autocorelaţia unui semnal afectat de zgomot
--> xsetech([0,0,1,1/2])
--> plot2d(t(1:500),semnal_zgomot(1:500));
--> xsetech([0,1/2,1,1/2])
a.
b.
Fig. B1.7 Semnalul afectat de zgomot a şi autocorelaţia acestuia b
197
B1.3.4 Mecanismul corelaţiei
Primul semnal 1 2 3
Al 2-lea semnal 2 1 3
Apoi, cel de-al doilea semnal se va deplasa progresiv, iar produsul dintre cele două
semnale se va însuma:
Produs 0 0 1
Suma 1 <----------
Produs 1 0
Suma 1 <----------
Produs -1
Suma -1 <---------
Rezultatul anterior 1 1 -1
Împărţit la 3 (rezultatul final) 1/3 1/3 1/3
198
Rezultatul obţinut poate fi verificat cu ajutorul următorului cod:
--> a = [1 2 3]
a =
1. 2. 3.
--> b = [2 1 3 ]
b =
2. 1. 3.
--> corr(a,b,3)
ans =
--> corr(a,b,3)
ans =
--> corr(b,a,3)
ans =
0.3333333 - 0.3333333 0.
B1.4.1 Introducere
inct = 0.01;
N = 200;
t = (0:N-1) * inct;
frec = 9;
Figura B1.9 conţine două vârfuri, pentru un semnal alcătuit dintr-o singură
frecvenţă.
200
Fig, B1.9 Modulul transformatei Fourier. Axa x nu este exprimată în Hz
Fig. B1.10 Modul transformatei Fourier. Frecvenţele sunt exprimate în Hz, iar cele peste 50
Hz reprezintă frecvenţe negative, de la -49 Hz la -1Hz
201
Figura B1.10 conţine în axa x frecvenţe de la 0 la 100 cu un vârf la 9 Hz. Acest
vârf reprezintă frecvenţa sinusoidei căreia i s-a aplicat transformata Fourier. În ceea
ce priveşte cel dea-l doilea vârf, nu se poate obţine nici o frecvenţă deasupra
frecvenţei Nyquist. Din moment ce semnalul a fost eşantionat la 100 Hz, nu pot
exista frecvenţe peste 50 Hz. Frecvenţele sunt de fapt de la -50 la 50 Hz. Primele
50 de valori reprezintă frecvenţe de la 0 la 49, următoarele reprezintă frecvenţe de
la -50 la -1. Astfel, valoarea pe care o vedem la frecvenţa de 91 corespunde
frecvenţei -9.
Transformata Fourier a produs două vârfuri simetrice la frecvenţa de 9 şi -9 Hz.
În continuare urmează a fi stabilită relaţia dintre amplitudinea semnalului şi
amplitudinea transformatei.
--> plot2d(f,abs(ffsignal/N));
202
Fig. B1.12 Modulul transformatei Fourier, cu evidenţierea frecvenţelor negative
S-au obţinut două vârfuri cu o amplitudine de 15. Dacă însumăm ambele vârfuri
obţinem amplitudinea de 30, amplitudinea originala a sinusoidei.
Deseori trebuie să izolăm o parte a semnalului. Dacă avem un semnal format din
1000 de valori, dar prezintă interes pentru a fi prelucrate doar 100 de valori, vom
avea nevoie de o funcţie, implementată în Scilab prin comanda window:
--> window('re',7)
ans =
1. 1. 1. 1. 1. 1. 1.
--> window('tr',7)
ans =
--> window('hm',7)
203
ans =
--> window('hn',7)
ans =
--> N = 200;
--> w = window('re',length(t));
--> frec = 9;
În acest exemplu s-a utilizat un semnal alcătuit din 200 de puncte. Este un semnal
sinusoidal de 9 Hz eşantionat la 0.01. Vom multiplica fereastra cu semnalul.
Pentru cazul de faţă, este echivalent cu păstrarea semnalului neschimbat, figura
B1.13:
--> xsetech([0,0,1,0.5],[0,-40,2,30])
--> plot2d(t,semnal)
--> xsetech([0,0.5,1,0.5],[0,0,100,20])
--> plot2d(f,abs(ffsemnal)/sum(w))
204
Fig. B1.13 Modulul transformatei Fourier cu o fereastră rectangulară
--> clear()
--> N = 200;
--> w = window('hn',length(t));
--> frec = 9;
--> xsetech([0,0,1,0.5],[0,-40,2,30])
205
--> plot2d(t,semnal)
--> xsetech([0,0.5,1,0.5],[0,0,100,20])
--> plot2d(f,abs(ffsemnal)/sum(w))
--> xbasc()
--> N = 200;
--> w = window('re',length(t));
206
--> ffsemnal = fft (semnal, -1);
--> xsetech([0,0,1,0.5])
--> plot2d(t,semnal)
--> xsetech([0,0.5,1,0.5])
--> plot2d(f,abs(ffsemnal)/sum(w))
Din figura B1.15 reiese fenomenul de scurgere , vârful reprezentat având o bază
mai lată. De asemenea, în realitate nu avem decât o singură frecvenţă, în timp de
vârful trece peste mai multe frecvenţe. Acest fenomen poate fi minimizat utilizând
câteva ferestre, aşa cum reiese din codul următor:
--> xbasc()
--> N = 200;
--> w = window('hn',length(t));
207
--> semnal = 30 * sin (2 * %pi * frec * t + 0.4 * %pi) .* w;
--> xsetech([0,0,1,0.5])
--> plot2d(t,semnal)
--> xsetech([0,0.5,1,0.5])
--> plot2d(f,abs(ffsemnal)/sum(w))
208
ANEXA B2 PROGRAME ÎN SCILAB
// ab_tfd.sce
// Programul implementează algoritmul de baza al transformatei Fourier digitale
// ţinând cont de scalarea in domeniul timp (t_end, T, N, n) şi domeniul
// frecvenţa (f_max, df, k). Spectrul de amplitudine calculat se vizualizează
// doar până la frecvenţa Nyquist f_max.
// Capitol 2.2.1.4, relaţiile (2.2.64) respectiv (2.2.70) precum (2.2.68) si (2.2.69)
xsetech([0,0,1,0.5])
plot2d3(t,u,6), xgrid(5) // 1. Reprezentare via t
// plot2d3(n,u,6), xgrid(5) // 2. Reprezentarea via n
U=fft(u);
Uas=abs(U); // Calcularea spectrului de amplitudine
209
k=0:1:N/2; // variabila în domeniul frecvenţă.
f=0:df:f_max; // axa frecvenţei
// amp_stat.sce
// Programul calculează o statistica de amplitudine pentru semnale stohastice:
// funcţia de repartizare a densităţii amplitudinii, valoarea medie, medianul,
// variaţia lăţimii, varianta, devierea standard, înclinaţia şi ondulaţia unui
// semnal stohastic indicat
// Capitol 2.2.2.1, relaţiile (2.2.78) pana la (2.2.83)
xsetech([0,0,1,0.5])
plot2d(t,u,2),xgrid() // reprezentarea grafică a semnalului de test
//
xsetech([0,0.5,1,0.5])
linii=100;
histplot(linii,u,2),xgrid() // reprezentarea densităţii de distribuţiei a amplitudinii
210
// Calcularea parametrilor medii
varianta=(1/(N-1))*sum((u-vector_medie).^2); // varianta
// varianta=variance(u); // varianta
inclinatia=((1/(N))*sum((u-vector_medie).^3))/sigma^3;
ondulatia=(((1/(N))*sum((u-vector_medie).^4))/sigma^4)-3;
// aprox.sce
// Crearea modelelor matematice pentru semnale aperiodice prin
// aproximare polinomiala utilizând metoda celor mai mici pătrate
// (Capitol 2.2.1.1, relaţiile (2.2.37) pentru matricile M si u;
// relaţia (2.2.43) pentru calcularea lui p)
211
plot2d(t,t^(3).*exp(-t),2) // valoarea neafectata de zgomot,
//caracteristica albastra
n=length(p);
value=p(n)*ones(t);
for i=n-1:-1:1 // calcularea valorilor funcţiei polinomiale
value=p(i)+t.*value;
end
// bode_c.sce
// Programul calculează diagrama Bode, pe o axa logaritmica, pentru o funcţie de
// transfer data a unui sistem continuu (capitolul 3.2.1.3).
212
numarator = 1; // coeficienţii polinomului de la numărător
numitor = [1, 0.001]; // coeficienţii polinomului de la numitor
// bode_d.sce
// Programul calculează diagrama Bode, peste o axa logaritmică, pentru o
// funcţie de transfer în z, a unui sistem în timp discret.
z=poly(0,'z');
h=(0.33*z+0.33)/(z-0.333); // funcţia de transfer
T=1.e-3; // timpul de eşantionare
sys=syslin(T,h); // funcţia de transfer discreta
// convolutie.sce
// Calcularea unui răspuns al unui sistem pe baza integralei de convoluţie.
// determinarea anterioară a funcţiei pondere din funcţia de transfer
213
h = csim('impuls',t,sys); // calcularea funcţiei pondere h(t)
// dif_int.sce
// Diferenţierea şi integrarea numerică în baza relaţiilor
// (4.3.3), (4.3.8) si (4.3.14), capitol 4.3
// Algoritmii se realizează cu instrucţiunea Scilab 'rtitr'
// Diferenţierea semnalului
z=poly(0,'z');
num=2*z-2; den=T*z+T; // Algoritmul de diferenţiere
y_diff=rtitr(num,den,u);
//
xsetech([0,0.25,1,0.25]),
214
plot2d(t,y_diff,2,),xgrid(),xtitle('semnal diferentiat fara filtrare trece jos')
num=%pi*z+%pi; den=(%pi+2)*z+(%pi-2);
y_difc=rtitr(num,den,y_diff); // Algoritmul unui filtru trece jos de ordinul 1
xsetech([0,0.5,1,0.25]),xgrid() // y'=(2*pi*f)*cos(2*pi*f*t)
plot2d(t,y_difc,2); xtitle('semnal diferentiat cu filtru trece jos')
num=T*z+T; den=2*z-2;
y_int=rtitr(num,den,y_difc); // Algoritm de integrare
xsetech([0,0.75,1,0.25]),xgrid() // Int(u(t)*dt)=-(1/(2*pi*f))*cos(2*pi*f*t)-C
plot2d(t,y_int,2), xtitle('Integrarea semnalului diferentiat')
// dig_ftj.sce
// Program pentru conceperea unui filtru digital, de tip Butterworth Trece Jos
// pe baza unui prototip de filtru analogic continuu trece jos
// Capitolul 4.4.1
// Discretizarea filtrului
215
hz_ftj=syslin(T,hz_ftj)
// Caracteristica Bode
bode(hz_ftj,0.01,10)
// dig_fts.sce
// Program pentru implementarea unui filtru digital trece sus Butterworth
// pe baza unui prototip de filtru analogic (continuu) trece jos
// Capitolul 4.4.1
// Discretizarea filtrului
hz_fts=syslin(T,hz_fts)
// dig_fob.sce
// Program pentru implementarea unui filtru digital opreşte bandă Butterworth
// pe baza unui prototip de filtru analogic (continuu) trece jos
// Capitolul 4.4.1
216
// Datele de intrare ale utilizatorului
//
Ordinul_filtrului=5; // (număr întreg)
Frecventa_limita_inferioara=0.1; // (Hz)
Frecventa_limita_superioara=0.2; // (Hz)
Timp_de_esantionare=0.2; // (sec.)
//
n=Ordinul_filtrului;
fgi=Frecventa_limita_inferioara;
fgs=Frecventa_limita_superioara;
T=Timp_de_esantionare;
// Discretizarea acestuia
hz_fob=syslin(T,hz_fob);
// Diagrama Bode
bode(hz_fob,0.01,10)
// dig_ftb.sce
// Program pentru implementarea unui filtru digital trece banda Butterworth
// pe baza unui prototip de filtru analogic (continuu) trece jos
// Capitolul 4.4.1
217
fgs=Frecventa_limita_superioara;
T=Timp_de_esantionare;
// Discretizarea acestuia
hz_fbp=syslin(T,hz_fbp);
// Diagrama Bode
bode(hz_fbp,0.01,10)
// "f_serie.sce"
// Programul realizează modelul matematic al semnalelor periodice
// prin dezvoltarea in serie Fourier si aproximarea coeficienţilor
// Fourier prin TFD.
// Paragraf 2.2.1.1, relaţiile (2.2.5), (2.2.15/16) şi (2.2.17)
218
y=fft(u); // aproximarea coeficienţilor Fourier
a=(2/N)*real(y); // relaţiile (2.2.15) - (2.2.17)
a(1)=(1/N)*real(y(1));
b=(-2/N)*imag(y);
b(1)=0;
for k=2:(N/2)+1
yz=a(k)*cos(2*%pi*(k-1)*f0*tM)+b(k)*sin(2*%pi*(k-1)*f0*tM);
yM=yM+yz; // Calcularea seriei Fourier (2.2.5)
end
// f_spec.sce
// Programul calculează spectrul de amplitudine al unui semnal
// periodic prin utilizarea coeficienţilor Fourier aproximaţi,
// determinaţi prin intermediul TFD.
219
T0=10; // Perioada semnalului continuu ce urmează a fi modelat
T=0.01; // Timp de eşantionare
t=0:T:T0-T; // Puncte de măsurare în domeniul timp
f0=1/T0; // Frecvenţa semnalului
N=T0/T; // Nr punctelor de măsurare
U=fft(u); // TFD
uk=(2/N)*abs(U); // determinarea amplitudinii
spectrale
uk(1)=(1/N)*abs(U(1));
// fir_esf.sce
// Conceperea de filtre FIR prin metoda eşantionării de frecvenţă
// Capitolul 4.4.2
220
// = ordinul filtrului
delta_f=1/(N*T); // calcularea rezoluţiei de frecventa
221
// int_poli.sce
// Program pentru demonstrarea interpolării polinomiale
// capitolul 4.2, relaţiile (4.2.3b) si (4.2.5)
222
M(:,1)=ones(t_es);
p=inv(M)*u_es; // calcularea vectorului parametrilor polinomului
// interpolare.sce
// Program pentru exemplificarea interpolării cu ajutorul TFD si TFDI şi completări
// cu zerouri. (capitolul 4.2, fig. 4.5, relaţia (4.2.8))
// O scurtare a timpului de eşantionare la 1/1000 din durata iniţială de eşantionare
// conduce încă la rezultate satisfăcătoare.
// (raportul dintre T_vechi si T_nou nu trebuie sa fie un număr întreg)
223
u_vechi = sin(2*%pi*0.444*t_vechi)+3*ones(t_vechi); // 2. semnal sinusoidal cu
// offset
plot2d(t_vechi,u_vechi,2) // reprezentarea grafica a semnalului original
y_nul=[y(1:N_vechi/2),nulvector,y(N_vechi/2+1:N_vechi)]; // Introducerea
// vectorului nul la mijlocul spectrului
unz=ifft(y_nul); //inversa FFT a spectrului completat cu zerouri
// tfc.sce
// Determinarea spectrului de amplitudine a semnalelor aperiodice
// prin aproximarea transformatei Fourier continue prin TFD
// Capitolul 2.2.1.2, relaţiile (2.2.51), (2.2.52) si (2.2.53)
224
tend=100; // intervalul de observaţie
T=0.01; // timpul de eşantionare
t=0:T:tend-T; // axa timpului
N=tend/T; // valoarea maxima a eşantioanelor
xsetech([0,0.5,1,0.5])
plot2d(f,amp(1:N/2+1)); xgrid(2) // reprezentarea spectrului pana la fmax
//plot2d(f(1:200),amp(1:200)); xgrid(2) // reprezentarea spectrului intr-o anumita
// gama de frecventa
225
BIBLIOGRAFIE
[1] Ahmad F., Razzaghi M., Numerical method for the analysis of time varying
singular systems, IEE Proc. Control Theory Appl., Vol. 147, No.4, 2000
[5] Chioncel C., Chioncel P., Anghel C., Scilab application in spectral analysis, 6th
International Symposium “Young People Multidisciplinary Research”, 2004
[6] Chioncel C., Chioncel P, Gal J., Transfer element modelling and simulation,
Analele UEM, Fascicula I ,Inginerie Anul X-XI Nr.1, pg.135 – 141, 2004
[7] Chioncel C., Chioncel P, Tirian O., Utilization of a virtual simulator for Bode
Frequency Diagram, Annals of the Faculty of Engineering Hunedoara, 2006
[8] Chioncel C, Chioncel P., Gillich R-G., Analysis of time discretisation and its
effect on simulation processes, Revista de Robotică & Management, ISSN 1452-
2069, 2006
[9] Chioncel C., Chioncel P., Gillich G-R, Samoilescu G., Analiza influentei
timpului de esantionare pentru un sistem de transfer utilizand mediul Scilab, A VI-
a Conferinta Natională “Profesorul Dorin Pavel – fondatorul hidroenergeticii
romanesti”, Sebes, 2006
[12] Gârlaşu Şt., Popp C., Ionel S., Introducere în analiza spectrală şi de corelaţie,
Ed. Facla, Timişoara, 1982
226
[13] Girod B., Rabenstein R., Stenger A. Einfuehrung in die Systemtheorie, Ed.
Teunbner, Stuttgart, 1997
[14] Lutz H., Wendt W., Taschenbuch der Regelungstechnik, Verlag Harri Deutsch,
Frankfurt am Main, 2005
[16] Mateescu A., Dumitriu N., Stanciu L., Semnale şi sisteme, Ed. Teora,
Bucuresti, 2001
[17] Mateescu A., Ciochina S., Dumitriu N., Prelucrarea numerică a semnalelor,
Ed. Tehnică, Bucureşti, 1997
[21] Rabiner L., Gold B., Theorie and Application of Digital Signal Processing,
Prentice Hall, 2004
[22] Rus I., Pavel P., Ecuaţii diferenţiale, EDP, Bucureşti, 1982
[23] Smith S. Digital Signal Processing. A practical guide for Engineers and
Scientist, Elsevier Ltd, Oxford, 2002
227