Documente Academic
Documente Profesional
Documente Cultură
Cap 2
Cap 2
Procesarea numerică a semnalelor a devenit atractivă încă din anii 1960, odată cu
introducerea tehnicilor digitale. Ulterior a devenit o alternativă în procesarea
semnalelor pe măsură ce structurile digitale hardware au evoluat, au devenit mai
rapide, mai uşor de utilizat, mai ieftine şi tot mai răspândite pe piaţă.
Încă din 1979, firma Intel a introdus primul DSP (2920) care avea o arhitectură şi
un set de instrucţiuni special adaptate pentru aplicaţii de procesare numerică a
semnalelor. Astăzi, piaţa producătorilor de DSP-uri şi de soluţii pentru DSP-uri
este extrem de aglomerată, oferta este foarte diversificată, iar preţul (mai corect
spus, raportul preţ / performanţă) este tot mai mic.
În aplicaţiile practice, multe dintre semnalele întâlnite sunt analogice, deci prezente
la fiecare moment de timp şi având amplitudini diferite. Pentru a prelucra astfel de
semnale continui în timp folosind DSP-uri, este necesar ca acestea să fie
eşantionate şi cuantizate pentru a produce o secvenţă numerică. Ăceastă secvenţă
Semnalul analogic ce trebuie procesat este mai întâi eşantionat şi codificat într-un
semnal digital în formă binară prin blocul ADC. Procesorul DSP realizează
operaţii matematice bazate pe un anumit algoritm de prelucrare numerică a
2 Procesoare numerice de semnal - Cap.2
semnalelor, implementat în software. Semnalul digital obţinut la ieşire poate fi
convertit înapoi în formă analogică prin blocul DAC. De asemenea, un procesor
DSP poate prelucra şi semnale digitale primite la intrare de la alte structuri
numerice şi poate furniza în exterior comenzi digitale către alte sisteme. În unele
aplicaţii, un sistem DSP poate crea intern semnale digitale. De exemplu, se poate
sintetiza o pereche de semnale sinusoidale (dial tones - tonuri de apel) pentru
apeluri telefonice.
De obicei, sistemele DSP sunt incluse în sisteme mai largi cu rolul specializat de a
realiza operaţii de procesare numerică a semnalelor, permiţând astfel întregului
sistem să execute task-uri mai generale. De exemplu, un procesor DSP este utilizat
în cadrul unui modem pentru controlul transmisiei de date, iar întreg ansamblul
constituie sistemul DSP al unui calculator. Destul de des, acest tip de sistem DSP
rulează doar o singură aplicaţie (specifică) şi nu poate fi programat de către
utilizator. De fapt, utilizatorul nici nu are nevoie să ştie că un astfel de procesor (de
4 Procesoare numerice de semnal - Cap.2
exemplu, un procesor DSP care este inclus în sistemul de control al hard-disk-ului
pentru controlul motorului şi a poziţionării capului de citire) este parte componentă
a calculatorului.
Rezultatele cercetărilor actuale în domeniul DSP-urilor s-au orientat tot mai mult
spre soluţiile complete care să înglobeze algoritmi, software şi hardware într-un
sistem unitar. Soft-ul este în fond un program care controlează un set de resurse de
calcul hardware pentru a implementa un algoritm, în timp ce hard-ul constă din
blocuri de calcul specifice. Dezvoltarea soft-ului poate fi fie independentă de
procesor, fie specifică unui anumit dispozitiv. Deoarece dezvoltarea soft-ului a
devenit o cheltuială mai însemnată decât dezvoltarea hard-ului în principalele
sisteme DSP, proiectarea independentă de procesor are avantajul portabilităţii soft-
ului obţinut pe diferite procesoare şi abilitatea de a migra uşor către noile
procesoare, mai performante şi mai complexe, care vor apare în viitor.
Majoritatea sistemelor DSP trebuie să lucreze în timp real. Într-o aplicaţie de timp
real cu DSP, un eşantion (sau un grup de eşantioane, numite cadru, sau bloc) este
aplicat la intrarea sistemului. Acesta trebuie să realizeze procesarea ieşirii asociate
unui eşantion al semnalului aplicat la intrare într-un timp care nu trebuie să
depăşească durata eşantionului (sau blocului). De exemplu, în procesarea
eşantioanelor, fiecare eşantion este procesat înainte de sosirea la intrare a
următorului eşantion. În prelucrarea pe blocuri, ca în cazul FFT, N eşantioane sunt
Procesoare numerice de semnal - Cap.2 5
grupate formând un bloc, iar procesarea blocului se poate efectua numai după
achiziţia tuturor celor N eşantioane. De aceea, procesarea în timp real pe blocuri
implică întârzieri mai mari decât procesarea pe eşantioane.
Proiectarea unui sistem DSP implică o cunoaştere bună a problemei şia tuturor
cerinţelor necesare. De obicei se lucrează în echipă: inginer de hard, inginer de
sistem, proiectant de soft şi specialist în testarea structurii. Analiza şi proiectarea
unui algoritm DSP eficient care să utilizeze resurse hard şi soft optime este o
muncă complexă, care se bazează cel puţin în faza de proiectare pe unelte soft
performante. Se poate utiliza de exemplu MATLAB şi SIMULINK, cu toolbox-
urile aferente de la firma MathWorks.
Am văzut chiar din Fig.2.1 că un sistem DSP necesită pe lângă procesor şi de două
convertoare: unul analog-numeric şi unul numeric-analogic. Fig.2.2 arată modul în
care se constituie un sistem DSP în jurul procesorului TMS320.
Cele două blocuri externe principale necesare sunt memoria (de program şi/sau de
date) şi perifericele. De obicei, procesoarele DSP dispun de o mică memrie cache
on-chip, o memorie de program de tip ROM, memorie RAM şi periferice.
Perifericele precum convertoarele A/N şi N/A pot fi conectate fie la magistrala de
date, utilizând adrese dedicate (specifice), fie la interfaţa serială, dacă cipul
dispune de porturi seriale.
Aşa cum s-a văzut în Fig.2.1, procesorul DSP realizează funcţiile esenţiale de
prelucrare a semnalelor. Dezvoltarea unui sistem DSP eficient se bazează pe:
arhitecturile hard şi soft ale procesorului DSP, transferul datelor, capacităţile sale
aritmetice, configuraţiile posibile ale memoriei, structurile I/O, programabilitatea şi
setul de instrucţiuni al procesorului. Arhitectura procesorului şi algoritmul DSP
folosit trebuie să fie complementare. Pentru unele aplicaţii, algoritmul este dat şi
Procesoare numerice de semnal - Cap.2 7
trebuie ales cel mai potrivit procesor care să-l realizeze. Pentru altele, procesorul
disponibil este cunoscut şi sarcina proiectării este de a dezvolta algoritmi eficienţi
care să satisfacă cerinţele aplicaţiei. Scopul este de a dezvolta un algoritm DSP
astfel încât să se utilizeze un minim de resurse ale procesorului, lăsând astfel
neutilizate resurse pentru îmbunătăţiri şi dezvoltări ulterioare.
2.4.1 Introducere
L −1
y(n) = ∑ bi ⋅ x(n − i) (2.1)
i=0
unde:
{b0 , b1, ... , bL −1} sunt coeficienţii de filtrare,
{x(n), x(n − 1), ... , x(n − L + 1)} sunt eşantioanele semnalului,
iar L reprezintă lungimea filtrului.
Această structură este optimizată pentru operaţiile de filtrare FIR descrise în relaţia
(2.1). Marea majoritate a procesoarelor DSP utilizează blocuri funcţionale similare,
deşi interconectarea internă şi operaţiile efectuate pot varia. Prin comparaţie cu
microprocesoarele de uz general, trăsătura specifică a DSP-urilor constă în
puternicul paralelism utilizat în vederea îmbunătăţirii vitezei de procesare. DSP-
urile dispun de unităţi speciale de prelucrare deservite prin bus-uri specifice
multiple, multe dintre acestea putând lucra independent şi în mod complementar.
Aşa cum se vede în Fig.2.3, unitatea logico-aritmetică (ALU - Arithmetic Logic
Unit) realizează adunarea, scăderea şi operaţii logice. Registrul de deplasare este
utilizat pentru scalarea datelor, iar multiplicatorul şi acumulatoarele hardware
realizează operaţii MAC. Generatoarele de adrese pentru date (DAGENs - Data
Address Generators) definesc adresele operanzilor utilizaţi în instrucţiuni. Cu
8 Procesoare numerice de semnal - Cap.2
aceste resurse disponibile, procesorul DSP atinge o viteză ridicată de execuţie,
realizând operaţiile în aceste unităţi în mod simultan. Operaţiile de bază executate
de toate aceste unităţi vor fi discutate ulterior.
Se vor prezenta succint funcţiile principale ale unităţii centrale de prelucrare (CPU)
a procesoarelor DSP. Multe dintre aceste funcţii sunt comune cu cele ale
microprocesoarelor de uz general, cu excepţia unităţii/unităţilor MAC, a registrelor
de deplasare, a blocurilor multiple de memorie împreună cu magistralele care le
deservesc şi a puternicelor generatoare de adrese pentru date.
Multiplicarea cu acumulare
Operaţiile de înmulţire necesită mai multe cicluri de ceas într-un microprocesor sau
microcontroler, acolo unde ele sunt efectuate prin operaţii repetate de deplasare şi
Procesoare numerice de semnal - Cap.2 9
sumare. Pentru a atinge viteza cerută de algoritmii DSP bazaţi pe multiple operaţii
de înmulţire (vezi de exemplu filtrarea FIR din relaţia (2.1)), procesoarele TMS320
utilizează un multiplicator hardware cu operare paralelă, care poate înmulţi doi
termeni (date) într-un singur ciclu de ceas. În acelaşi timp, un sumator plasat
imediat după multiplicator adună rezultatul înmulţirii anterioare la conţinutul unui
acumulator cu dublă-precizie. Unele procesoare, precum C55x, dispun de două
unităţi MAC şi 4 acumulatoare de 40 biţi. O serie de instrucţiuni specifice care pot
realiza înmulţirea, acumularea, deplasarea datelor şi operaţiile de actualizare a
pointerilor (indicatorilor) într-o singură instrucţiune sunt prevăzute pentru
algoritmii de filtrare şi de corelare. Aceste instrucţiuni se bazează pe arhitectura
paralelă pentru a realiza o execuţie foarte rapidă.
Paralelismul