Sunteți pe pagina 1din 81

MINISTERUL EDUCAŢIEI al REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI

Catedra Automatică şi Tehnologii Informaţionale

Îndrumar pentru lucrări de laborator


la disciplina

Prelucrarea semnalelor folosind MATLAB

Chişinău 2011
Elaborat dr.conf. Romanenko Alexandru
dr.conf. Fiodorov Ion
dr.conf Ciorba Dumitru
lect.sup.magistr. Melnic Radu

2
Cuprins
Introducere ..................................................................................... 4
Lucrare de laborator Nr.1 ............................................................... 5
Lucrare de laborator Nr.2 ............................................................. 27
Lucrare de laborator Nr.3 .............. Error! Bookmark not defined.
Lucrare de laborator Nr.4 ............................................................. 66
Lucrare de laborator Nr.5 ............................................................. 72
Lucrare de laborator Nr.6 ............................................................. 78
Bibliografia .................................................................................. 81

3
Introducere
Acest îndrumar metodic este alcătuit din 6 laboratoare, care vor ajuta studenţii la studierea principiilor
de bază de prelucrare a semnalelor digitale utilizînd pachetul de programe MATLAB 6.5.0.
Trecînd acest curs de laboratoare studentul va cunoaşte: calculele matematice principale care stau la
baza teoriei de prelucrare a semnalelor digitale; va utiliza, în practică, operaţiile de bază, efectuate asupra
semnalelor în procesul lor de prelucrare; va studia, după posibilităţile proprii, toate funcţiile şi posibilităţile
pachetului de programe MATLAB, care, într-un mod oarecare, sunt legate de prelucrarea digitală
semnalelor; va fi capabil să creeze programe în mediul MATLAB şi să creeze m-file; să cunoască mai
detaliat pachetul MATLAB şi posibil va continua studierea MATLAB şi aprofundarea în potenţialul imens
al acestuia utilizat în alte domenii.
Acest îndrumar nu este necesar de considerat ca un manual, capabil să predea teoria prelucrării
semnalelor în mod ideal. Scopul principal este atragerea studenţilor şi a profesorilor spre studierea unui aşa
mediu de calcul tehnic, vizualizarea şi programarea matematică, cum este MATLAB. Studierea şi utilizarea
MATLAB, precum şi detalierea în el – este dorinţa insistentă şi pozitivă a autorului.
În acest îndrumar sunt prezentate un număr deosebit de programe, împărţite pe lucrări de laborator în
corespundere cu tema lucrării. Este recomandabil, îndeosebi, introducerea, prelucrarea şi analiza fiecărei
programe prezentate în fiecare laborator.
De asemenea, este recomandat de studiat compartimentul HELP al pachetului MATLAB, începând
cu toţi operatorii, funcţiile şi cuvintele speciale ale domeniului MATLAB, reprezentate în fiecare lucrare
de laborator.
Matematica – fundamentul oricărei ştiinţe. Autorul sincer recomandă tuturor, în special matematicii
şi programatorii, să utilizeze mediul MATLAB în aplicarea domenilor sale pozitive.

4
Lucrare de laborator Nr.1
Tema: Semnale digitale discrete.
Sarcina: Să învăţăm a generara, vizualiza şi transforma diferite tipuri de secvenţe elementare.

Noţiuni Teoretice
Prelucrarea digitală a semnalelor – transformarea unui semnal digital, numit semnal de intrare, într-
un alt semnal, numit semnal de ieşire, şi care posedă anumite proprietăţi dorite. Uneori este necesar să se
extragă principalele proprietăţi ale semnalelor (proprietăţile cheie) prin aplicarea, asupra acestora, a unor
algoritmi de prelucrare. Este posibil să se identifice proprietăţile sistemului discret prin analiza semnalelor
de ieşire la aplicarea anumitor semnale de intrare ale sistemului studiat. În acest caz, este necesar, pentru
început, de a ne învaţa generarea unor semnale discrete de bază în mediul MATLAB şi de a efectua operaţii
elementare asupra lor, ceea ce determină sarcina iniţială a acestei lucrări de laborator. A doua sarcină
principală va fi studierea unor comenzi de bază a mediului MATLAB şi aplicarea lor specifică în
problemele de prelucrare a semnalelor digitale.
La pornirea aplicaţiei MATLAB urmează să deschideţi un nou m–file, să introduceţi în el textul unui
anumit program. După verificarea textului de erori urmează pornirea programului (tastaţi F5), eventual
salvînd-o (Ctrl+S).

Comenzile MATLAB utilizate:


Operatori şi simboluri speciale
: . + - * / ; %

Формирование массивов специального вида


Массивы являются основными объектами в системе MATLAB: в версиях 4.х допускаются только одномерные массивы - векторы - и двумерные массивы
- матрицы; в версии 5.0 возможно использование многомерных массивов - тензоров. Ниже описаны функции формирования массивов и матриц,
операции над матрицами, специальные матрицы в рамках системы MATLAB версий 4.х.
 ZEROS - формирование массива нулей
 ONES - формирование массива единиц
 EYE - формирование единичной матрицы
 RAND - формирование массива элементов, распределенных по равномерному закону
 RANDN - формирование массива элементов, распределенных по нормальному закону
 CROSS - векторное произведение
 KRON - формирование тензорного произведения
 LINSPACE - формирование линейного массива равноотстоящих узлов
 LOGSPACE - формирование узлов логарифмичесокй сетки
 MESHGRID - формирование узлов двумерной и трехмерной сеток
 : - формирование векторов и подматриц

Matrici elementare şi operaţiile asupra lor


I; ones(m,n)единичная или матрица из единиц; pi; rand,randn(генератор и Матрица случайных чисел)
zeros(m,n)нулевая или матрица нулей)
Функция X =rand(n) формирует массив размера n х n, элементами которого будут числа, распределенные по равномерному закону в интервале (0, 1).
Команда randn без аргументов формирует одно случайное число, randn(1000,1) или randn(5,1) создает матрицу из 1000 или 5 случайных чисел в
интервале от -1…+1, I= rand(5,1) – создает матрицу в интервале от 0…+1

I=
0,2877 I=0.1763
-1.1465 0.4057
1.1909 0.9355
1.1892 0.9169
-0.0276 04103
Funcţii elementare
cos exp imag real

Grafică bidimensională
См.также https://hub.exponenta.ru/post/spravochnik-po-matlab-graficheskie-komandy-i-funktsii-vgpotemkin242
axis grid legend plot stairs stem title xlabel ylabel

5
Funcţii grafice de uz general
clf (очистить окно текущей фигуры); subplot
 PLOT3 - построение линий и точек в трехмерном пространстве
 MESHGRID - формирование двумерных массивов X и Y
 MESH, MESHC, MESHZ - трехмерная сетчатая поверхность
 SURF, SURFC - затененная сетчатая поверхность
 SURFL - затененная поверхность с подсветкой
 AXIS - масштабирование осей и вывод на экран
 GRID - нанесение сетки
 HOLD - управление режимом сохранения текущего графического окна
 SUBPLOT - разбиение графического окна
 ZOOM - управление масштабом графика
 COLORMAP - палитра цветов
 CAXIS - установление соответствия между палитрой цветов и масштабированием осей
 SHADING - затенение поверхностей
 CONTOURC - формирование массива описания линий уровня
 CONTOUR - изображение линий уровня для трехмерной поверхности
 CONTOUR3 - изображение трехмерных линий уровня
Надписи и пояснения к графикам
 TITLE - заголовки для двух- и трехмерных графиков
 XLABEL, YLABEL, ZLABEL - обозначение осей
 CLABEL - маркировка линий уровня
 TEXT - добавление к текущему графику текста
 GTEXT - размещает заданный текст на графике с использованием мыши
 LEGEND - пояснение к графику
 COLORBAR - шкала палитры

Program 1_1
Destinată pentru generarea şi vizualizarea secvenţelor elementare. Предназначена для генерации и
просмотра элементарных последовательностей (вектор,.
% Program P1_1
% Generarea unei secvenţe de elemente, Цель программы и очистка памяти
clf
% Generarea vectorului de la -10 pînă la 20; задание диапазона для n
n= -10 : 20;
% Generarea secvenţelor, тело программы
u=[zeros(1,10) 1 zeros(1,20)];
% Afişarea secvenţelor la ecran вывод результатов на экран
stem(n,u);
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Secvenţa de elemente');
axis([-10 20 0 1.2]);

6
Secvenţa de elemente

0.8
Amplitudinea

0.6

0.4

0.2

0
-10 -5 0 5 10 15 20
Timpul n

Program 1_2
Una dintre principalele tipuri de reprezentare a semnalelor discrete – secvenţa
exponeţială. Astfel de tip de secvenţă poate fi generată cu ajutorul următorilor
operatori MATLAB: .^ şi exp. Programul este destinat pentru a genera o secvenţă de
numere exponenţiale definite prin numere complexe. Один из основных типов дискретного
представления сигнала - экспоненциальная последовательность. Такой тип последовательности
может быть сгенерирован с помощью следующих операторов MATLAB: .^ и exp. Программа
предназначена для генерации последовательности экспоненциальных чисел, определяемых
комплексными числами.
Здесь и ранее используется команда STEM
STEM - дискретные графики
Синтаксис: stem(y); stem(x, y); stem(y, <тип линии>); stem(x, y, <тип линии>)
Описание:
Команда stem(y) выводит график элементов одномерного массива 𝑦 в виде вертикальных линий, которые заканчиваются в точках графика,
помечаемых кружочком.
Команда stem(x, y) выводит график элементов массива y в виде вертикальных линий в позициях, определяемых массивом 𝑥, элементы которого
должны быть упорядочены в порядке возрастания.
Команды stem(y, <тип линии>), stem(x, y, <тип линии>) позволяют задать тип линий, используемых для построения дискретного графика, по аналогии с
командой plot.
Примеры:

Построить график функции в виде дискретной последовательности.


t = 0 : 2 : 200; alpha = 0.02; beta = 0.5;
x = exp(-alpha*t) .*sin(beta*t);
stem(t, x), grid
set(gca, 'FontName', 'TimesET')
xlabel('Время, мс'), ylabel('Амплитуда')
Сопутствующие функции и команды: PLOT, BAR, STAIRS.

% Program P1_2
% Generarea secvenţelor exponenţiale complexe
clf;
c=-(1/12)+(pi/6)*i;
K=2;
n=0:40;
x=K*exp(c*n);
subplot(2,1,1);

7
stem(n,real(x));
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Partea reală');
subplot(2,1,2);
stem(n,imag(x));
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Partea imaginara');

Partea reală
2

1
Amplitudinea

-1

-2
0 5 10 15 20 25 30 35 40
Timpul n
Partea imaginara
2
Amplitudinea

-1
0 5 10 15 20 25 30 35 40
Timpul n

Program 1_3
Este destinat pentru a genera o secvenţă de numere exponenţiale definite real. Программа
предназначена для генерации последовательности экспоненциально определенных действительных
чисел. График представляет возрастающую экспоненту в дискретные моменты времени в интервале
от 0 до 35, с шагом дискретизации ∆= 1.

% Program P1_3
% Generarea de secvenţe exponenţiale reale
clf;
n=0:35;
a=1.2;
K=0.2;
x=K*a.^n;
stem(n,x);
xlabel('Timpul n');
ylabel('Amplitudinea');

8
120

100

80
Amplitudinea

60

40

20

0
0 5 10 15 20 25 30 35
Timpul n

Program 1_4
Este utilă o aşa clasă de semnale digitale, ca semnalele descrise printr-o sinusoidă prezentate în numere reale. Aşa
fel de semnale sinusoidale pot fi generate în MATLAB cu ajutorul operatorilor trigonometrici sin şi cos. Такой
класс цифровых сигналов полезен, как и сигналы, описываемые синусоидой, представленные в
действительных числах. Такие синусоидальные сигналы можно генерировать в MATLAB с помощью
тригонометрических операторов sin и cos.

% Program P1_4
% Generarea secvenţelor sinusoidale Генерация косинусоидальной последовательности
в дискретном времени с шагом 1, амплитудой 1,5, фазой 0 и периодом Т=10 или синусоида
с фазой = +𝜋/2
clf;
n=0:40;
f=0.1;
phase=0;
A=1.5;
arg=2*pi*f*n - phase;
x=A*cos(arg);
stem(n,x); % Concluzia secvenţelor generate
axis([0 40 -2 2]);
grid;
title('Sinusoida');
xlabel('Timpul n');
ylabel('Amplitudinea');
axis;

9
Sinusoida
2

1.5

0.5
Amplitudinea

-0.5

-1

-1.5

-2
0 5 10 15 20 25 30 35 40
Timpul n

Program 1_5
Un exemplu tipic de prelucrare a semnalului digital este separarea semnalului de zgomot de la semnalul
distorsionat de zgomot. Fie s[n] – semnal distorsionat de un zgomot aliatoriu d[n] şi ca urmare redarea unui
semnal x[n]=s[n] + d[n]. Obiectivul principal – convertirea semnalului x[n] astfel, pentru a primi y[n] care
va fi maximal cît mai aproape de semnalul original s[n]. Cel mai simplu algorimt-mediu: y[n] = ⅓(x[n-1]
+ x[n] = x[n+1]), ceea ce execută programul de mai jos. Типичным примером цифровой обработки
сигналов является отделение шумового сигнала (или «шума») от сигнала, искаженного шумом.
Пусть s[n] - сигнал, искаженный случайным шумом d[n] и, следовательно, воспроизводимый сигнал
x[n] = s[n] + d[n]. Основная цель - преобразовать сигнал x[n] таким образом, чтобы получить y[n],
который будет максимально приближен к исходному сигналу s[n]. Простейший алгоритм-среднего:
y[n] = ⅓ (x[n-1] + x[n] = x[n + 1]), который исполняет приведенную ниже программу.

% Program P1_5
% Îndreptarea semnalului prin mediere. Маршрутизация сигнала через среднее
clf;
R=51;
d=0.8*(rand(R,1)-0.5); % Generarea zgomotului aleatoriu Генерирование случайного
шума
m=0:R-1;
s=2*m.*(0.9.^m); % Generarea semnalului curat. Генерирование чистого сигнала
x=s+d'; % Generarea semnalului distorsionat de zgomot. Генерирование сигнала,
искажённого шума
subplot(2,1,1);
plot(m,d','r-',m, s,'g--',m, x,'b-.');
xlabel('Timpul n');
ylabel('Amplitudinea');
legend('d[n] ','s[n] ','x[n] ');
x1=[0 0 x]; x2=[0 x 0]; x3=[x 0 0];
y=(x1+x2+x3)/3;
subplot(2,1,2);

10
plot(m,y(2:R+1),'r-',m,s,'g--');
legend('y[n] ','s[n] ');
xlabel('Timpul n');
ylabel('Amplitudinea');

10
d[n]
s[n]
Amplitudinea

5
x[n]

-5
0 5 10 15 20 25 30 35 40 45 50
Timpul n

8
y[n]
6 s[n]
Amplitudinea

0
0 5 10 15 20 25 30 35 40 45 50
Timpul n

1.6 Fo r ma rea s e mna lel o r i mp u ls u nita re

Î n p ac h et u l SP T B s u nt p r e văz u te c ât e va p r o ced uri, care fo r mea ză co n se c ut i vi ta tea d a te lo r , care


p rezi n tă n i şte se mn a le i mp u ls u ni tar e d e fo r me tip ice . I mp u l s ul u n it ar d e fo r mă d r ep t u n g h i ul ară se
p o ate d e fo r ma t c u aj u to r ul p r o ced ur ii rectpuls, d e tip u l: y= re c tp ul s( t, w) - c are p er mi te d e a fo r ma
ve cto r u l y a va lo r i lo r se mn a l ul u i a a şa i mp u l s d e a mp li t ud i ne u ni ta te, c u lă ţi me a w, ce ntr at faţ ă d e t =0
d up ă ve cto r u l d at t a m o me n te lo r d e t i mp . D ac ă lăţ i me a i mp u ls u l ui w n u e st e d at ă, at u n ci va l o area e i
se i a e ga lă c u 1 . Î n f i g.l e s te p r ez e nt at re zu lt at u l p ro ce s ul u i, c a re co ns tă d i n tre i i mp ul s ur i
d rep t u n g hi u lar e co n se c u ti ve d e d i f er i te î nă lţ i mi şi lă ţi mi , d up ă co n sec u ti vi ta tea co me n zi lo r:
В пакете SPTB есть несколько процедур, которые последовательно формируют данные,
которые представляют единичные импульсные сигналы типичных форм. Единичный импульс
прямоугольной формы может быть сформирован с использованием процедуры 𝑟𝑒𝑐𝑡𝑝𝑢𝑙𝑠 типа:
𝑦 = 𝑟𝑒𝑐𝑡𝑝𝑢𝑙𝑠 (𝑡, 𝑤) - которая позволяет сформировать вектор 𝑦 значений сигнала такого импульса
единичной амплитуды и шириной w, центрированной относительно 𝑡 = 0 в соответствии с
вектором, данным вам время от времени. Если ширина импульса 𝑤 не задана, то его значение равно
1. Результат процесса показан на рис. 1, который состоит из трех последовательных прямоугольных
импульсов разной высоты и ширины, следующих в последовательном порядке:

» t =0:0.01:10;
» y =0 .7 5 * re ct p u ls( t - 3 .2 ) +l .4 *re ct p u ls (t - 5 .1)+0 .5*rectpu ls( t -8.04);
» plo t (t,y ), g ri d; xla be l ( 't i mp u l( s) ') ;
» y la b el( 'p ro ce s ul d e ie şi re y ( t ) ')

11
Fig.1. Construirea a trei impulsuri dreptunghiulare .

I mp u l s uri le d e fo r mă tr iu n g h i ul ar ă c u a mp li t ud in e u n it ate se p o t rea li za c u aj uto r u l p ro ced ur ii


tripuls, c are ar e fo r ma: Им п ул ьсы тр е уг о ль но й фо р м ы с е д и н ич но й ам п л и т удо й м о ж но р еа л и зо ва ть
с по м о щь ю пр о це д ур ы tripuls, аргументы которой 𝑦, 𝑡, 𝑤, им е ю т то т ж е см ыс л, что и в ыше :

y= trip ul s( i,w ,s).


A r g u m e n t e l e y, t, w, a u a c e l a ş i sens c a ş i m a i sus. Ar g u me n t ul S ( - 1 ≤ S≤ 1 ) d ete r mi n ă î nc l in are a
tri u n g h i ul u i. D acă S=0, sa u d acă n u e ste i nd ica t, at u nc i i mp ul s ul tr i u n g h iu lar e ste s i me tri c.
F u n cţi a y =t r ip u ls( t ,w ) fo r mea ză u n i mp u l s si me tr ic d e a mp li t ud i n e u n ita te w c e ntr at faţ ă d e
t=0 . P re ze nt ă m u n e xe m p lu d e fo r ma r e a p ro c es ul u i, care co n stă d i n tre i i mp ul s ur i:
Аргумент 𝑆 (−1 ≤ 𝑆 ≤ 1) определяет наклон треугольника. Если 𝑆 = 0 или не указано, то
треугольный импульс является симметричным.
Функция 𝑦 = 𝑡𝑟𝑖𝑝𝑢𝑙𝑠 (𝑡, 𝑤) образует симметричный импульс единичной амплитуды w с центром
в t = 0. Мы даем пример процесса формирования, который состоит из трех импульсов:

» t=0:0.01:10;
»y=0.8*tripuls(t-1,0.5)+1.4*tripuls(t-3,0.8,1)+0.5*tripuls(t-5,0.5,-1);
» plot(t,y); grid
» xlabel('timpul(s)')
» ylabel('y(t)')

Fig.2 Impulsuri triunghiulare.

12
Fo r mar ea i mp u l s ul u i car e es te s i n u so id a mo d u la t ă d e fu n cţi a Ga u s s s e e xe cu tă c u p ro c ed ura gauspuls,
ad re sare a că tre ea ar e fo r ma:
Формирование импульса, представляющего собой синусоиду, модулированную функцией
Гаусса, выполняется с помощью процедуры gauspuls, обращение к ней имеет вид:
yi=gauspuls(t,fc,bw)
yi=gauspuls(t,fc,bw,bwr)
|yi,yq|=gauspuls(...)
|yi,yq,ye|=gauspuls(...)
tc=gauspuls('cutoff',fc,bw,bwr,tpe)
F u nc ţia yi=gauspuls(t,fc,bw) fo r mea ză se cv e nţa e şa nt io a n elo r se mn a l u l ui, cal c ul ate î n
mo me n te le d e ti mp d a te în vec to r u l t ; f c d e ter mi nă frec v e nţ a si n u so id ei ; bw - l ăr gi me a r el at i vă a benzii
de f r e c ve n ţ ă a se mn a l ul ui . D e e xe mp l u, s e p o a t e l ua fc= 1 0 0 0 1 H z ş i b w = 0 . 5 ( b w = ∆ f/ f c ) .
Функция yi = gauspuls (t, fc, bw) формирует последовательность отсчетов сигнала, рассчитанную
в данный момент времени в векторе 𝑡; 𝑓𝑐 определяет частоту синусоидальной волны; 𝑏𝑤 - относительная
ширина полосы пропускания сигнала. Например, можно взять fc = 10001 Гц и bw = 0,5 (bw = ∆f / fc).

F u nc ţia yi=gauspuls(t,fc,bw,bwr) calc u lea ză se c ve nţ a e şa n tio a ne lo r se mn a l u l ui c u ur mă to r ii


p ara me tri : a mp li t ud i ne a =l, l ăţ i mea b e nzi i d e fre c ve n ţă=1 0 0 b w . Gra n i ţ el e b e n z i i d e fre c ve nţ ă se
d eter mi n ă d e ni v el u l d e ate n ua r e b wr ( d B ) î n r a p o r t cu a mp li t ud i ne a no r ma tă a se mn a l u l ui. P a ra me tr u l
b wr t r e b u i e s ă fi e ne g at i v , d e e xe mp l u b wr = - 6 d B .
Функция yi = gauspuls (t, fc, bw, bwr) вычисляет последовательность выборок сигнала со следующими
параметрами: амплитуда = l, ширина полосы = 100 bw. Границы полосы частот определяются уровнем
ослабления bwr (дБ) по отношению к нормированной амплитуде сигнала. Параметр bwr должен быть
отрицательным, например, bwr = -6dB.

F u nc ţia [yi,yq]=gauspuls(...) cal c ul eaz ă d o i vec to ri . V ecto r ul y i c o nţ i ne e ş a n t i o a n e l e se mn al ul u i


in iţ ia l, i ar ve cto r u l yq co n ţ i n e e ş a n t i o a n e l e s e m n a l u l u i î n care f a z a si n u so id ei e s te sc h i mb a tă c u 9 0 d e
grad e. Функция [yi, yq] = gauspuls (. . . ) вычисляет два вектора. Вектор yi содержит отсчеты
исходного сигнала, а вектор yq содержит отсчеты сигнала, в котором фаза синусоидальной волны
изменяется на 90 градусов.
F u nc ţia
[yi,yq,ye]=gauspuls(...) ca lc u lea ză ad ă u gă to r s e mn a l ul ye =e xp ( -a t 2 ) - a n ve lo p a
i mp ul s ul u i. Функция [yi, yq, ye] = gauspuls (. . . ) дополнительно вычисляет сигнал
ye = exp (−at2) - импульсная шина.
F u ncţ ia tc=gauspuls('cutoff,fc,bw,bwr,tpe) calc u lea ză t i mp u l tc, co r e sp u nză to r mo me nt u l ui
d e ti mp î n c ar e a mp li t u d in ea s e mn a l u l u i sc ad e p î n ă l a tp e d B . Mă ri me a tp e treb u ie să fi e n e ga t i vă , d e
ex e mp l u t p e = - 6 0 d B . E x e mp l u: Функция tc = gauspuls (′cutoff, fc, bw, bwr, tpe) вычисляет время
tc, соответствующее времени, когда амплитуда сигнала уменьшается до tpe дБ. Размер tpe должен
быть отрицательным, например, tpe = -60dB. пример:
» t =0 :0 .0 1 : 1 0 ;
» yi=0.8*gauspuls(t-4,1,0.5);
» plot(t,yi),grid
» xlabel('timpul(s)')
» ylabel('yi(t)')
P ro ced u ra sinc p er mi te d e a c a lc u la va lo are a ve cto r u l ui fu n cţ iei sinc(t), care se d et er mi n ă d e
fo r mu l e le:
Процедура 𝑠𝑖𝑛𝑐 позволяет рассчитать векторное значение функции 𝑠𝑖𝑛𝑐(𝑡) = 𝑠𝑖𝑛𝑥/𝑥, которое
определяется по формулам:

care p re zi n t ă o tr a n s fo r ma r e i n v er să Fo urie r a i mp ul s ul u i d rep t u n g hi u l ar c u î n ăl ţi me a 1 şi lăţ i me a 2


и описывает обратное преобразование Фурье прямоугольного импульса с высотой 1 и шириной 2

13
Fig.3. Impuls Gaussian.

Exemplu:

» t=0:0.01:50;
» yi=0.9*sinc(pi*(t-25)/5);
» plot(t,yi); grid
» xlabel('timpul(s)')
» ylabel('yi(t)')

Fig.4. Transformata Fourier a impulsului dreptunghiular.

14
Generarea secvenţei impulsurilor dreptunghiulare (последовательность прямоугольных импульсов) se
face cu ajutorul procedurii square. Adresarea către ea are forma:
y=square(t)
y=square(t,duty)
Funcţia 𝐬𝐪𝐮𝐚𝐫𝐞(𝐭) formează oscilaţii dreptunghiulare cu perioada 2π şi amplitudinea ±1.
Funcţia 𝐲 = 𝐬𝐪𝐮𝐚𝐫𝐞(𝐭, 𝐝𝐮𝐭𝐲) formează o secvenţă de impulsuri cu durata semiundei
pozitive, care se determină de parametrul duty în procente de la perioadă. De obicei se ia 𝑑𝑢𝑡𝑦 =
50. Să dăm un exemplu de utilizare a acestei proceduri (fig.6):

» t=-20:0.1:20;
» y=square(t,20);
» plot(t,y),axis([min(t),max(t),-2,2]),grid

Fig.6 Secvenţă de impulsuri rectangulare.

Formarea semnalelor "dinte de ferestrău" şi triunghiulare cu amplitudinea ±1 şi perioada


2π se face cu procedura sawtooth: Формирование «зубьев пилы» и треугольных сигналов с
амплитудой ± 1 и периодом 2π осуществляется с помощью пилообразной процедуры:

x=sawtooth(t)
x=sawtooth(t,width)
Funcţia x=sawtooth(t) formează semnal de forma "dinte de ferestrău", care ia valoarea -l
în momente multiple cu 2π şi crescînd liniar pe intervalul 2π cu panta 1/π.
Funcţia x=sawtooth(t,width) formează semnalul "dinte de ferestrău" modificat. Parametrul
width se dă în diapazonul de la 0 la 1 şi determină o parte a perioadei, în care semnalul creşte.
Semnalul creşte de la -l pînă la 1, pe intervalul de la 0 pînă la 2π ∗ width, iar pe urmă scade de
la 1 pînă la -l pe intervalul de la 2π*width pînă la 2π. Dacă width=0.5, atunci se formează o
undă simetrică. Funcţia 𝐬𝐚𝐰𝐭𝐨𝐨𝐭𝐡(𝐭, 𝟏) este echivalentă cu funcţia 𝐬𝐚𝐰𝐭𝐨𝐨𝐭𝐡(𝐭). Aducem un
exemplu de generare a unui semnal de tip „dinte de ferestrău" pe intervalul 0-6π (fig.7):
» t=0:0.1:6*pi;
» x=sawtooth(t);
» plot(t,x)
Procedura pulstran permite de a forma oscilaţii, care sunt secvenţe a impulsurilor
dreptunghiulare, triunghiulare sau gaussiene. Adresarea către ea are forma:

15
Fig.7. Crearea semnalelor "dinte de ferestrău ".
y =pulstran(t,d,'func')
y=pulstran(t,d,'func',p1,p2,...)
y=pulstran(t,d,p,F s )
y=pulstran(t,d,p)
Aici d determină valoarea vectorului acelor momente de timp unde trebuie să fie centrele impulsurilor
corespunzătoare; parametrul func determină forma impulsului şi poate avea una din următoarele sensuri: rectpuls
(pentru impuls dreptunghiular), tripuls(pentru impuls triunghiular). 𝑔𝑎𝑢𝑠𝑝𝑢𝑙𝑠(sinusoidă modulată cu funcţia
gauss). Semnalul de ieşire 𝑦 se calculează pentru valorile argumentului, date în vectorul t, după formula:
𝐲 = 𝐟𝐮𝐧𝐜(𝐭 − 𝐝(𝟏)) + 𝐟𝐮𝐧𝐜(𝐭 − 𝐝(𝟐))+. ..
Numărul impulsurilor în diapazonul dat a argumentelor este length(d). Parametrii p 1 , p2... determină
parametrii necesari a impulsului în dependenţă de forma de adresare către procedura, care determină acest impuls.
Funcţia 𝐲 = 𝐩𝐮𝐥𝐬𝐭𝐫𝐚𝐧(𝐭, 𝐝, 𝐩, 𝐅𝐬) permite de a determina impulsul cu secvenţa eşantioanelor date în vectorul
p . Frecvenţa de discretizare este dată de parametrul F s . La folosirea funcţiei 𝐲 = 𝐩𝐮𝐥𝐬𝐭𝐫𝐚𝐧(𝐭, 𝐝, 𝐩), frecvenţa de
discretizare se ia egală cu 1Hz. Mai jos sunt prezentate trei exemple de utilizare a procedurii pulstran:
Pentru o consecutivitate de impulsuri dreptunghiulare:
» t=0:0.01:50;
» d=[0:10:50];
» y=0.6*pulstran(t,d,'rectpuls',3);
» plot(t,y),grid

Fig. 8. Utilizarea funcţiei pulstran la semnale dreptunghiulare.

16
Pentru o consecutivitate de impulsuri triunghiulare: Для последовательности треугольных импульсов:
» t=0:0.01:50;
» d=[0:10:50];
» yl=0.8*pulstran(t,d,'tripuls',5);
» plot(t,yl),grid

Fig. 9. Utilizarea funcţiei pulstran la semnale triunghiulare.

Pentru o consecutivitate de impulsuri gaussiene:


» t=0:0.01:50; d=[0:10:50];
» y2=0 .7 *pulstran(t,d,'gauspuls',l,0.5); plot(t,y2),grid

Fig. 10. Utilizarea funcţiei pulstran la semnale gaussiene.

Formarea cosinusoidei frecvenţa căreia se schimbă liniar în timp (фазовая или частотная модуляция), se
face cu ajutorul procedurii chirp:
y=chirp(f , f 0 ,t1,f1)
Ea formează eşantioanele din semnalul cosinusoidal cu frecvenţa schimbată liniar pentru
momentele de timp date în vectorul t; f 0 -frecvenţa instantanee în momentul de timp t=0; f 1 -

17
frecvenţa instantanee în momentul de timp t=l. Frecvenţele f 0 şi f 1 se dau în Hz. De exemplu
f 0 =0, t 1 =l, f 1 = 100.
Exemplu:
» t=0:0.001:l;
» y=0.8*chirp(t);
» plot(t,y),grid

Fig. 1 1 Formarea unei cosinusoide cu frecvenţa variabilă

1.7. Lucrul pentru acasă


După literatura recomandată şi indicaţiile îndrumarului de laborator la lucrarea dată, să se
facă cunoştinţă cu metodele de formare a semnalelor tipice descrise mai sus în punctul 2.
После того, как рекомендованная литература и указания лабораторного руководства приведены в
данной работе, ознакомьтесь с методами формирования типичных сигналов, описанными выше в
пункте 2.

1.8. Lucrul în laborator


Trebuie de efectuat formarea semnalelor descrise în exemplele de mai jos şi de asemenea a
unor semnale adăugătoare la indicaţia profesorului. De verificat cum se schimbă forma
semnalului generat la schimbarea unor parametri caracteristici ai lui. De înregistrat şi de
prezentat în darea de seamă la fiecare punct forma de adresare la procedura corespunzătoare şi
oscilograma semnalului format.
În afară de semnalele standarde realizate în SP Toolbox, folosind mijloacele limbajului
Matlab este posibil de creat practic un număr nelimitat de semnale diferite.
Сигналы, описанные в примерах ниже, также должны быть сформированы, и дополнительные
сигналы должны быть добавлены по указанию учителя. Необходимо проверить, как изменяется
форма генерируемого сигнала при изменении его характерных параметров. Для записи и
представления в отчете в каждой точке формы адреса к соответствующей процедуре и
осциллограммы формируемого сигнала.
Помимо стандартных сигналов, сделанных в SP Toolbox, с помощью средств языка Matlab можно
практически создавать неограниченное количество различных сигналов.

Exemplul 1. Să se creeze din 256 eşantioane o oscilaţie armonică cu amplitudinea unitate şi


perioada de 50 eşantioane.
Pentru aceasta în regiunea de comandă MATLAB trebuie de cules următoarea serie de
comenzi:
» k=0:255;
18
» x=sin(2*pi*k/50);
» plot(x); grid on; title('sinusoida');
» xlabel('numărul eşantion'); ylabel('Amplitudine')

Prima comandă creează vectorul k=[0,l,...255]. Următoarea comandă generează vectorul x


care conţine mărimea eşantioanelor oscilaţiei sinusoidale la un număr corespunzător k. Comanda
plot împreună cu comenzile următoare afişează graficul oscilaţiei formate sub forma unui semnal
continuu şi nu a unei succesiuni de eşantioane discrete datorită unirii eşantioanelor vecine cu
segmente de dreaptă. Dacă ar fi fost necesară prezentarea graficului sub forma de eşantioane
discrete, atunci în loc de comanda plot trebuie de folosit comanda stem.

Fig.12
Exemplul 2. Să se creeze un semnal ce conţine 1024 eşantioane a unui proces tranzitoriu a
unui sistem oarecare, descris de următoarea relaţie:
Intervalul de timp între eşantioanele vecine T=0,001s. Formarea unui aşa tip de semnal este
posibilă cu ajutorul următoarei serii de comenzi:
» t=0:0.001:1.023;
» T=0.001;
» k=101:1024;
» Z=zeros(l,100);
» x = [ Z exp(-(k*T-0.1)/0.2).*sin(2*pi*(k*T-0.1)/0.16 )];
» plot(t ,x); grid on; title('Proces tranzitoriu');
» xlabel ('Time (s)'); ylabel ('Amplitudine')
Prima comandă generează vectorul valorilor argumentelor timpului care conţine 1024 de
elemente: 0, 0.001, 0.002, ...1.023. În rândul al treilea se instalează vectorul k din 924 de numere
ale eşantioanelor în domeniul de timp unde x(t)≠0. Vectorul [X k ] se creează prin unirea
(concatenarea) vectorului [Zk ] ce conţine 100 de eşantioane nule, creat cu comanda a patra şi
vectorul valorilor nenule ale eşantioanelor X(t) calculate în corespundere cu relaţia dată x(t).
Aducem aminte că operatorul ".*" este operatorul înmulţirii element cu element a vectorilor
"sin" şi "exp". Comanda plot are aici două argumente arătând că se construieşte graficul x funcţie
de l.

19
Fig.13
Exemplul 3. Să se creeze un semnal în intervalul de timp 0≤ t≤1s care constă din suma unei oscilaţii armonice cu
amplitudinea de 1 V şi frecvenţa 50Hz, unei oscilaţii sinusoidale cu amplitudinea de 2V şi frecvenţa de 120Hz şi a unui
semnal de zgomot distribuit normal cu valoarea medie zero şi valoarea medie pătratică 0.5V, folosind o frecvenţă de
discretizare de 1000Hz, adică intervalul de discretizare T=0.001s.
Setul de comenzi necesar pentru crearea unui astfel de semnal are forma:
» t=0:0.001:1;
» y=sin(2*pi*50*t)+2*sin(2*pi*120*t);
» randn('state',0);
» yn=y+0.5*randn(size(t));
» plot(t(1:50), yn(1:50));grid

Conform comenzii plot pe ecran sunt afişate primele 50 de eşantioane ale semnalului.

Fig.14

Exemplul 4. Să se creeze în intervalul 0≤t≤ls semnale exponenţiale de forma: a) 5exp(-6t); b) exp(5t),


folosind frecvenţa eşantioanelor f d =1000Hz. Succesiunea comenzilor poate fi următoarea:
a) »B =5;

20
» a =6;
» t =0:0.001 :l;
» x=B*exp(-a*t);
» plot(t,x), grid

Fig.15

b)» B =1;
» a =5;
» t=0:0.001:1;
» x=B*exp(a*t);
» plot(t,x), grid

Fig.16

Exemplul 5. Să se creeze un impuls exponenţial discret de forma x(n)=Br n , unde B=l, r=0.8 pe intervalul
- 1 0 ≤ n ≤ 1 0 . Pentru aceasta pot fi folosite următoarele comenzi:
» B=l;
» r=0.8;
» n=-10:10;
» x =B*r.^n;
» stem(n,x)

21
Fig.17

Observăm că, operatorul ".^ " înseamnă ridicarea la putere element cu element, iar comanda stem reprezintă
graficul sub forma unei serii de valori discrete, şi nu un semnal continuu ca la comanda plot. \
Exemplul 6. Să se creeze un semnal sinusoidal discret cu perioada de 12 eşantioane şi amplitudinea d e
2V:
, -10≤n≤10

Pentru aceasta poate fi folosit următorul s e t d e comenzi:


» A =1;
» o me g a =2 * pi /12;
» n =-10:10;
» y = A * s i n( o me g a* n) ;
» s t e m (n , y )

Fig.18

E x e mp l u l 7. Să se creeze un semnal discret exponenţial atenuat, pe baza înmulţirii exponentei atenuatoare


formate în exemplul 5 şi a semnalului sinusoidal creat în exemplul 6 , ambele primitei pentru intervalul -10≤ n
≤10.
Soluţie: notând rezultatul înmulţirii cu Z(n) putem folosi următoarele comenzi pentru generarea şi
vizualizarea semnalului:
» Z=x.*y;
» stem ( n ,Z)

22
Fig.19
Remarcăm că aici nu este necesar de a da regiunea de modificare a lui n, deoarece ea este
în comenzile pentru formarea semnalelor x şi y.
Exemplul 8. Să se creeze următoarele serii de impulsuri δ, care se descriu, după cum se ştie,
de relaţia:

a) x 1 =2δ(k-3), 1 ≤ k ≤ 1 0 ;
b) x 2 =0.6δ(k), - 10≤ k ≤ 10 ;
c) x 3 =1.5δ(k+7), - 10≤ k ≤ 0

Soluţie: a) » k=1:10;
» x1=zeros(size(k));
» x1(3)=2;
» figure;stem(k,xl);grid;xlabel('k');ylabel('xl(k)')

Fig.20
b ) » k = - 10:10;
» x2=zeros(size(k));
» x2( 1 1 )=0.6;
» figure;stem(k,x2); grid;
» xlabel('k');ylabel('x2(k)')

23
Fig.21

c) » k=-10:0;
» x3 =zeros(size(k));
» x3(4)=1.5;
» figure;stem(k,x3 );grid;
» xlabel('k');ylabel('x3 (k)')

Fig.22
Exemplul 9. Cr e ar ea impulsului dreptunghiular de amplitudine unitate şi durata 1s, amplasat simetric
în originea de coordonate t=0 (-0.5s ≤ t ≤ 0 . 5 s ) descris în intervalul dc timp -1s ≤ t ≤ 1 s cu pasul T = 2 ms .
Soluţie: impulsul dreptunghiular p o at e fi creat cu ajutorul diferenţei a două funcţii de tip "treaptă" deplasate
în timp cu un interval egal cu durata impulsului. Acest semnal poate fi format cu ajutorul următorului set de
comenzi:
» t=-l:0.002:l;
» U1=[zeros(1,250), ones(1,751)];
» U2=[zeros(1,751), ones(1,250)];
» U=U1-U2;
» plot(t,U)
» grid

24
Fig.23
Exemplul 10. Crearea unui şir discret de impulsuri dreptunghiulare cu amplitudinea A=l şi viteza unghiulară
ω =π/4 în intervalul. - 1 0 ≤ n ≤ 1 0 se efectuează cu ajutorul următoarelor comenzi: Создание дискретной
струны прямоугольных импульсов с амплитудой A = l и угловой скоростью ω = π/4 в диапазоне.
−10 ≤ 𝑛 ≤ 10 производится с помощью следующих команд:

» A=l;
» omega=pi/4;
» rho =0.5; %parametrul rho determina partea perioadei in care semnalul e pozitiv
» n= -10:10;
» x=A*square(omega*n*rho);
» stem(n,x)
» grid

Fig.24
C u to at e c ă î n r ea li ta te fo lo s i m se mn a l e re ale , fo arte u ti l î n t eo ri a se mn ale lo r e s te fap t ul că a ve m
p o sib il it ate a d e a p r eze nt a s e mn a l ul r ea l ca p ar tea re ală sa u i ma g i n ară a u n u i se mn a l co mp le x. Vo m
arăt a ma i j o s e xe mp le d e cr e ar e a u no r se mn a le co mp le x e e u sep arar ea p ărţi i lo r re ale ş i i ma gi n a re.
E xe mp l ul 1 1 . Cr ear e a s e mn a l ul u i e xp o ne n ţi a l co mp le x
P o ate fi fo lo s it ur mă to r ul s et d e co me n z i:
» n =0 :2 5 ;
» x =e x p( j * n /3 ) ;
» s u b plo t ( 2 , l,l ) ;
» s te m(n ,rea l( x) ) ;
» titl e(' rea l pa rt ') ; x la b e l( ' i nd e x(n) ');
» s ub plo t ( 2 ,1 ,2 ) ;
» ste m( n, i ma g ( x) ) ;
» titl e(' i ma g pa rt ') ; x la bel ( ' in de x( n) ')

25
E x e mp lu l 1 2 . Cr ear e a s e mn a l ul u i e xp o ne n ţi al co mp l e x
x( n ) = exp (( - 0.1+j 0.3)n) p e i nte r val u l - 10 ≤ n ≤ 1 0:
» n=[ - 1 0 : 1 : 1 0 ] ; a l pha = - 0 .1 +0 .3 j ;
» x =e x p( a l p ha * n) ;

Fig.25
» subplot(2,2,1); stem(n,real(x)); title('real part'); xlabel('n');grid
» subplot(2,2,2); stem(n,imag(x)); title('imaginare part');grid
» xlabel('n');
» subplot(2,2,3); stem(n,abs(x)); title('magnitudine');
» xlabel('n');grid
» subplot(2,2,4); stem(n,(180/pi)*angle(x)); title('phase');
» xlabel('n')
» grid

Fig.26
26
Lucrare de laborator nr. 2
Tema: ANALIZA SPECTRALĂ A SEMNALELOR
Scopul lucrarii: studiul semnalelor periodice prin dezvoltare în serie
Fourier şi a semnalelor aperiodice prin aplicarea transformatei Fourier.
исследование периодических сигналов с помощью разложения в ряд Фурье и апериодических
сигналов с применением преобразования Фурье.

CONSIDERAŢII TEORETICE

Pentru a înțelege cât mai bine modul în care circuitele electronice prelucreaza semnalele electrice (de
tensiune sau de curent), este importantă în primul rând studierea semnalelor. Studierea semnalelor în
domeniul timp, de exemplu cu ajutorul osciloscopului, poate fi completată cu o metoda complet diferită:
studiul în domeniul frecvențelor (analiza spectrală). Studiul în frecvenţă a semnalelor și circuitelor s-a
dovedit a fi o abordare extrem de productivă în electronică și automatizări. Metoda are ca punct de
pornire constatarea că semnalele periodice pot fi descompuse în sume de componente armonice cu
ajutorul dezvoltării în serie Fourier. Чтобы лучше понять, как электронные схемы обрабатывают
электрические сигналы (напряжение или ток), важно сначала изучить сами сигналы. Исследование сигналов
во временной области, например, с помощью осциллографа, может быть дополнено совершенно другим
методом: исследование в области частот (спектральный анализ). Частотное исследование сигналов и
электрических цепей оказалось чрезвычайно продуктивным подходом в электронике и автоматизации. Этот
метод имеет отправную точку для понимания того, что периодические сигналы можно разложить на
гармонические составляющие с помощью разложения их в ряды Фурье.

Semnale periodice. Serii Fourier. Периодические сигналы. Ряды Фурье

Pentru a putea fi dezvoltat în serie Fourier semnalul s(t) trebuie să fie uniform, finit și să aibă un număr
finit de discontinuități și de maxime într-o perioadă.
Semnale periodice sunt acele semnale pentru care
Чтобы разложить сигнал в ряд Фурье, такой сигнал 𝑠(𝑡) должен быть равномерным, конечным и иметь
конечное число разрывов и максимумов за период. Периодические сигналы - это те сигналы, для которых

s(t )  s(t  T0 ) () t  R ,


unde T0 o constantă numită perioadă. , где константа 𝑇0 называется периодом. Ряд Фурье имеет
следующие формы^ Seria Fourier are următoarele forme.
Forma trigonometrică. . Тригонометрическая форма в виде суммы sin и cos различных частот и Ам

a 
s(t )  0   [a cos n t b sin n t ] ,
2 n 1 n 0 n 0
1 0
unde f 0   reprezintă frecvenţa de repetiţie a semnalului periodic (frecvenţa fundamentală).
T0 2
Coificienții a0 , an , bn se calculează cu relațiile
t 0  T0 t 0  T0 t 0  T0
2 2
 s(t )dt,  s(t ) cos n0t dt ,
a0  2
an  bn   s(t ) sin n0t dt .
T t0
T0 t0
T0 t0

27
Forma armonică. Este o formă mai compactă, utilizând numai funcţii cosinusoidale.
a0 
s(t )    An cos( n0t   n ) ,
2 n 1
b
An  an2  bn2 ;  n  arctg n . (см. формулы для тригонометрической формы)
an
Deci, seria Fourier armonică dă o descompunere a semnalului periodic s (t ) într-o sumă de semnale
cosinusoidale ale căror frecvenţe sunt multipli frecvenţei de repetiţie a semnalului periodic. Aceste
componente se mai numesc armonici.
Таким образом, гармонический ряд Фурье дает разложение периодического сигнала в виде суммы
косинусоидальных сигналов с различными начальными фазами, а частоты которых кратны частоте
исходного периодического сигнала. Эти компоненты также называются гармониками.

Forma complexă sau exponenţială.



s(t )   Cne jn t , 0

n  
t 0  T0
1  jn 0 t
Cn 
T0  s(t ) e dt .
t0
Coeficienţii C n sunt mărimi complexe şi deci pot fi reprezentaţi prin modul şi fază

Cn  C (n0 )  Cn e j n
.
Relaţiile de legătură dintre coeficienţii C n şi coeficienţii seriilor trigonometrică şi armonică sunt
an  jbn
Cn  C (n0 )  ;
2
a  jbn
C n  C (n0 )  n ;
2
A a
Cn  C n  n ; C0  0 ;
2 2
b
 n  n  arctg n .
an
Alegerea limitelor de integrare în evaluarea coeficienţilor seriilor Fourier este arbitrară, esenţial este ca
integrarea să se se facă pe durata unei perioade (de la  T0 / 2 la T0 / 2 sau de la 0 la T etc.). Pentru semnale
pare seria trigonometrică coincide cu cea armonica, deoarece bn  0 . Pentru semnale impare, respectiv
a0  an  0 .
Caracterizarea în domeniul frecvenţă a semnalului periodic se face prin reprezentarea spectrelor de
amplitudini şi faze. Se pot reprezenta fie diagramele spectrale asociate seriei armonice, An (n0 ) şi
 n (n0 ) , fie diagramele spectrale asociate seriei complexe, Cn (n0 ) şi n (n0 ) . Deoarece semnalele
periodice sunt exprimate prin sume discrete de semnale elementare, rezultă că spectrele de amplitudini şi
faze vor fi discrete. La spectrele asociate seriei armonice, liniile spectrale vor fi localizate la frecvenţele:
0, 0 , 20 , 30 , ... etc., în timp ce la spectrele asociate seriei exponenţiale liniile spectrale vor fi localizate
la: 0,  0 ,  20 ,  30 , ...

28
Teoretic spectrele semnalelor periodice se întind de la f  0 la f   . Practic, spectrele sunt limitate
din cauza descreşterii amplitudinilor componentelor, ceea ce permite limitarea seriei la un termen, începând
cu care amplitudinea componentelor este neglijabilă. Trunchierea seriei la un anumit termen depinde de
cerinţele impuse tipului de comunicaţie care utilizează semnalul respectiv. Prin urmare analiza spectrală a
unui semnal ne permite să stabilim lăţimea benzii de frecvenţe efectiv ocupată de semnal.
Частотная характеристика периодического сигнала производится путем построения амплитудного и
фазового спектров. Можно представить либо спектральные диаграммы, связанные с гармоническим рядом
An (n0 ) и  n (n0 ) , либо спектральные диаграммы, связанные с комплексным рядом, Cn (n0 ) и
n (n0 ) . Поскольку периодические сигналы выражаются дискретными количествами элементных
сигналов, оказывается, что амплитудные и фазовые спектры будут дискретными. В спектрах, связанных с
гармоническим рядом, спектральные линии будут расположены на частотах 0, 0 , 20 , 30 , ... и т. д., В то
время как в спектрах, связанных с экспоненциальным рядом, спектральные линии будут расположены в:
0,  0 ,  20 ,  30 , ...
Теоретически спектры периодических сигналов варьируются от f  0 до f   . В основном, спектры
ограничены из-за уменьшения амплитуд их компонентов, что позволяет ограничивать ряды членами,
начиная с которых амплитуда компонентов уже незначительна. Усечение ряда в определенное время зависит
от требований, предъявляемых к типу связи, в которой используется соответствующий сигнал. Поэтому
спектральный анализ сигнала позволяет установить ширину полосы полосы, фактически занятой сигналом.

Semnale aperiodice. Transformata Fourier. Апериодические сигналы. Преобразование Фурье.

Trecerea la limită, T0   aduce ultima relație la forma (прямое преобразование Фурье)




 s(t )e
 jt
S ( )  dt

Cunoscută ca transformata Fourier directă a semnalului s(t), de data aceasta aperiodic. Integrala este
convergentă dacă semnalul satisface condițiile Dirichlet pe orice interval finit. Există și transformarea
inversă, analogă seriilor Fourier pentru semnalele periodice

1
s (t )  
2 
S ( )e jt d (обратное преобразование Фурье)

Care reconstituie semnalul în domeniul timp, s(t), din exprimarea lui absolute echivalentă informațional
din domeniul frecvențelor, S ( ) .
Atît pentru semnalele periodice cît și pentru cele aperiodice prin tratarea Fourier se obțin spectrele
semnalelor, care sunt proiecții ale acestor semnale pe baze în spațiul semnalelor alcătuite din sinusoide.
Переход к пределу T0   приводит последние отношения к форме (прямое преобразование


 s(t )e
 jt
Фурье) S ( )  dt известной как прямое преобразование Фурье сигнала 𝑠(𝑡), на этот раз

апериодического. Интеграл сходится, если сигнал удовлетворяет условиям Дирихле на любом
конечном интервале. Существует также обратное преобразование, аналогичное ряду Фурье для

1
2 
периодических сигналов. s (t )  S ( )e jt d (обратное преобразование Фурье), которое

восстанавливает сигнал во временной области 𝑠(𝑡) по его абсолютному информационному


эквивалентному выражению в частотной области S ( ) . Как для периодических, так и для
апериодических сигналов с помощью обработки Фурье, получают спектры сигналов, которые
являются проекциями этих сигналов на основе пространства синусоидальных сигналов.

29
Ход работы Mersul lucrării
1. Descompunerea unui semnal periodic s(t) in serie Fourier.
Se vor analiza mai multe semnale:
 semnale armonice și combinații liniare de semnale armonice:
 semnale dreptunghiulare;
 semnale de tip dinte de ferestrău.
La execuţie, programul cere următoarele argumente: T-perioada, N-numarul de armonici pentru
aproximare precum şi tipul semnalului s(t): sinusoidal, dreptunghiular sau dinte de ferestrău. Timpul este
modelat printr-un vector de dimensiunea 1024.
Rezultatele se obțin prin intermediul a patru diagrame:
 semnalul s(t);
 descompunerea în armonici;
 fazele fiecărei armonici;
 recompunerea semnalului s(t) prin însumarea armonicilor calculate. Această diagramă permite
compararea semnalului recompus cu cel inițial și validarea rezultatelor obținute.
1. Разложение периодического сигнала s(t) в ряд Фурье.
Проанализировать следующие сигналы:
• гармонические сигналы и линейные комбинации гармонических сигналов:
• прямоугольные сигналы;
• сигналы типа зубьев пилы.
При выполнении программы потребуются следующие аргументы: T-период, N-число гармоник
для аппроксимации, а также тип сигнала s(t): синусоидальный, прямоугольный или зуб пилы.
Время моделируется вектором размером 1024.
Результаты представлятся с помощью четырех диаграмм:
• сигнал s (t);
• гармоническое разложение;
• фазы каждой гармоники;
• перекомпоновать сигнал s (t) путем суммирования рассчитанных гармоник. Эта
диаграмма позволяет сравнить перекомпонованный сигнал с исходным и подтверждает
полученные результаты.

%Descompunerea unui semnal periodic s(t) in serie Fourier:


%T=perioada [sec], N=nr. de armonici
T = input('Setati perioada T [sec]: ');
N = input('Setati nr. de armonici: ');
tip = input('Alegeti tipul semnalului (sin[s], dreptunghiular[d], sau ferestrau[f]):
', 's');
W=2*pi/T; %pulsatia fundamentala
t=0:T/1022:T+T/1022;
if strcmp(tip,'s')
s=sin(W*t); % semnal s(t) sinusoidal)
else
for j=1:1024
if strcmp(tip,'d')
if j<512 %semnal dreptunghiular
s(j)=1;
else
s(j)=-1;
end
elseif strcmp(tip,'f')
s(j)=j/500-1; %semnal s(t) dinte de ferestrau
end
end
end

val_medie=trapz(t,s)/T; %valoarea medie

30
val_efectiva=sqrt(trapz(t,s.^2)/T); %valoarea efectiva
timp=t-T/2;
for i=1:N
a(i)=2*trapz(t,s.*cos(i*W*t))/T; %primii N coef. trigonometrici
b(i)=2*trapz(t,s.*sin(i*W*t))/T;
A(i)=sqrt(a(i)^2+b(i)^2); %coeficientii formei armonice
F(i)=atan2(b(i),a(i)); %defazajele formei armonice
f(i)=i/T;
end
r=val_medie;
for j=1:N
r=r+A(j)*cos(j*W*t-F(j));
end

subplot(223); plot(t,r);
title('semnalul reconstruit (verificare)');
xlabel('t [sec]');
axis([min(t) max(t) (min(r)-0.02*(max(r)-min(r))) (max(r)+0.02*(max(r)-min(r)))]);
grid;

subplot(221); plot(t,s);
title('semnalul s(t)'); xlabel('t [sec]'); grid;
axis([min(t) max(t) (min(r)-0.02*(max(r)-min(r))) (max(r)+0.02*(max(r)-min(r)))]);

subplot(222); stem(f,A);
title('Armonicile A(n)*cos[n*2*pi*f*t-Fi(n)]');
xlabel('f [Hz]'); grid;

subplot(224); stem(f,F/(pi));
title('defazajele Fi(f)'); xlabel('f [Hz]'); ylabel('x pi [rad]'); grid;

end

Pentru exemplificarea execuției funcției au fost construite reprezentările grafice pentru semnalul
reprezentat printr-o succesiune de impulsuri dreptunghiulare de perioadă T=7s, aproximat prin 20 și prin
60 armonici.

31
semnalul s(t) Armonicile A(n)*cos[n*2*pi*f*t-Fi(n)]
1.5
1

0.5 1
0

-0.5 0.5

-1
0
0 2 4 6 0 1 2 3
t [sec] f [Hz]
semnalul reconstruit (verificare) defazajele Fi(f)
0.5
1

0.5 x pi [rad] 0
0

-0.5 -0.5

-1
-1
0 2 4 6 0 1 2 3
t [sec] f [Hz]

Fig.1. Descompunerea în serie Fourier a unui semnal dreptunghiular


aproximat prin 20 de armonici.

32
semnalul s(t) Armonicile A(n)*cos[n*2*pi*f*t-Fi(n)]
1.5
1

0.5 1
0

-0.5 0.5

-1
0
0 2 4 6 0 5 10
t [sec] f [Hz]
semnalul reconstruit (verificare) defazajele Fi(f)
0.5
1

0.5
x pi [rad]
0
0

-0.5 -0.5

-1
-1
0 2 4 6 0 5 10
t [sec] f [Hz]

Fig.2. Descompunerea în serie Fourier a unui semnal dreptunghiular


aproximat prin 60 de armonici.

2. Studiaţi spectrul unui tren de impulsuri pentru diferite valori ale parametrilor:

clear all; clg;


%parametrii trenului de impulsuri
T=3;tau=0.5;Amplit=5;
% Numarul de armonici pentru aproximarea initiala
Ni=8;
% Pasul de selectare a numarului de armonici
n=Ni;
% numarul de armonici pentru aproximarea finala
Nf=3*n;
w0=2*pi/T;
f0=1/T;
B=Nf+1;
% calculul parametrilor modelului spectral
A=zeros(1,B);phi=zeros(1,B);
for i=1:B,
alf=(i-1)*w0*tau/2;
alf=alf/pi;
A(1,i)=abs(Amplit*tau*sinc(alf)/T);
phi(1,i)=-angle(sinc(alf));
end;
%se calculeaza vectorul ind, necesar în reprezentarea grafica a spectrului

33
for i=1:B,
ind(i)=(i-1)*f0;
end;
%reprezentarea spectrului SFC (numai pentru frecvenţe pozitive)
subplot(221);
stem(ind,A(1,:));
title('spectrul SFC al trenului de impulsuri');
xlabel('f [Hz]');
grid;
subplot(222);
stem(ind,phi(1,:));
title('defazajele Fi(f)');
xlabel('f [Hz]'); ylabel('x pi [rad]');
grid;
%generarea trenului de impulsuri si reprezentarea lui grafica
x1=zeros(1,((T*1000/2)-(tau*1000/2)));
x2=Amplit*ones(1,(tau*1000));
x3=zeros(1,((T*1000/2)-(tau*1000/2)));
x=[x1 x2 x3];
dt=0.001;t=[-T/2+dt:dt:T/2];
subplot(223);
h=plot(t,x); %set(h,'LineWidth',T);
axis([-T/2 T/2 -1.5 1.2*Amplit]);grid;hold on;
%calculul semnalelor deduse pe baza spectrului determinat
%se utilizeaza Ni, 2*Ni si 3*Ni armonici in spectru;
%aceste semnale se reprezinta pe un grafic comun
%cu cel al trenului de impulsuri
for j=Ni:n:Nf,
xy=A(1)*ones(1,(T*1000));
for i=1:j,
xy=xy+2*A(1,i+1)*cos(i*w0*t+phi(1,i+1));
end;
plot(t,xy,'k');grid;
title('semnalul initial si reconstruit');
xlabel('t [sec]');
axis([-T/2 T/2 -1.5 1.2*Amplit]);
end;grid;

3. Pentru câteva semnale aperiodice au fost pregătite câteva script-uri Matlab: FRECT, FTRIUNGHI, FSINUS,
FCOSINUS, FSINUSFI, FTRENSIN.

FRECT
% Scriptul FRECT calculeaza transformata Fourier a
% semnalului rectangular, simetric fata
% de origine, de durata a si de arie unitara
%parametrii impulsului rectangular
tau=1;Amplit=1/tau;
%generarea impulsului rectangular
a=tau;
tm=6;
x1=zeros(1,((tm*1000/2)-(tau*1000/2)));
x2=Amplit*ones(1,(tau*1000));
x3=zeros(1,((tm*1000/2)-(tau*1000/2)));
x=[x1 x2 x3];
dt=0.001;t=[-tm/2+dt:dt:tm/2];

34
subplot(211);
h=plot(t,x); %set(h,'LineWidth',T);
title('impuls rectangular s(t)');
xlabel('t [sec]');
axis([-tm/2 tm/2 -0.1 1.2*Amplit]);
grid;hold on;
syms x w % sunt declarate variabilele simbolice
% se calculeaza integrala Fourier
wmax=30;
int(Amplit*exp(-j*w*x),-a/2,a/2);
subplot(212);
ezplot(ans,[-wmax wmax]) % se reprezinta grafic
title('transformata Fourier a impulsului rectangular s(w)');
xlabel('w');
axis([-wmax wmax -0.5 1]);
grid;hold on
u=-wmax:wmax:wmax;
y=0.0*u;
plot(u,y) % se traseaza orizontala y=0
hold off;

35
FTRIUNGHI
% Scriptul FTRIUNGHI calculeaza transformata Fourier a
% semnalului triunghiular, simetric fata
% de origine, de durata a si de pante b si -b
a=0.5;
b=2;
syms x w f f1 f2 % sunt declarate variabilele simbolice
wmax=50;
f1=int(b*(x+a/2)*exp(-j*w*x),-a/2,0); % se calculeaza
%integrala Fourier pentru jumatatea stanga
f2=int(b*(-x+a/2)*exp(-j*w*x),0,a/2); % se calculeaza
%integrala Fourier pentru jumatatea dreapta
z=strcat(char(f1),char(f2)); % se concateneaza cele doua
%expresii f1 si f2
if strncmp(char(f2),'-',1)
z=strcat(char(f1),char(f2));
else
z=strcat(char(f1),'+',char(f2));
end
f=sym(z); % se revine la simbolic f='z'
ezplot(f,[-wmax wmax]) % se reprezinta grafic
hold on
u=-wmax:wmax:wmax;
y=0.0*u;
plot(u,y) % se traseaza orizontala y=0
hold off

36
FSINUS
% Scriptul FSINUS calculeaza transformata Fourier a unui
%puls sinusoidal de durata unei
% perioade, centrat pe origine, de durata a si de arie
%totala unitara
a=6;
w0=2*pi
syms x w % sunt declarate variabilele simbolice
int(pi/(4*a)*sin(w0*x/a)*exp(-j*w*x),-a/2,a/2); % se
%calculeaza integrala Fourier
ezplot(real(ans),[-5 5]) % se reprezinta grafic partea
%reala a transformatei Fourier
hold on
ezplot(imag(ans),[-5 5]) % se reprezinta grafic partea
%imaginara a transformatei Fourier
hold on
u=-5:1:5;
y=0.0*u;
plot(u,y) % se traseaza orizontala y=0
grid;
hold off

37
FCOSINUS
% Scriptul FCOSINUS calculeaza transformata Fourier a unui
%puls sinusoidal, simetric fata
% de origine, de durata a si de arie unitara
a=7;
syms x w % sunt declarate variabilele simbolice
int(pi/(2*a)*cos(pi*x/a)*exp(-j*w*x),-a/2,a/2); % se
%calculeaza integrala Fourier
ezplot(ans,[-5 5]) % se reprezinta grafic
hold on
u=-5:1:5;
y=0.0*u;
plot(u,y) % se traseaza orizontala y=0
hold off

38
FSINUSFI
% Scriptul FSINUSFI calculeaza transformata Fourier a unui
%puls sinusoidal de durata unei
% perioade, deplasat fata de origine cu b, de durata a si
%de arie totala unitara
a=3;
b=2;
syms x w % sunt declarate variabilele simbolice
int(pi/(4*a)*sin(2*pi*(x-b)/a)*exp(-j*w*x),-a/2-b,a/2-b);
% se calculeaza integrala Fourier
ezplot(real(ans),[-5 5]) % se reprezinta grafic partea
%reala a transformatei Fourier
hold on
ezplot(imag(ans),[-5 5]) % se reprezinta grafic partea
%imaginara a transformatei Fourier
hold on
u=-5:1:5;
y=0.0*u;
plot(u,y); % se traseaza orizontala y=0
grid;
hold off

39
FMODTIMP
Programul dat serveşte pentru identificarea proprietăţi de modificare în timp a transformatei DTFT.

% Program P3_2
% Proprietatea DTFT de modificare în timp
clf;
w=-pi:2*pi/255:pi;
wo=0.4*pi;
D=10;
num=[1 2 3 4 5 6 7 8 9];
h1=freqz(num,1,w);
h2=freqz([zeros(1,D) num],1,w);
subplot(2,2,1);
plot(w/pi,abs(h1));
grid
title('Spectrul valorilor a secvenţei iniţiale');
subplot(2,2,2);
plot(w/pi,abs(h2));
grid
title('Spectrul valorilor secvenţei modificate în timp');
subplot(2,2,3);
plot(w/pi,angle(h1));
grid
title('Spectrul de faze a secvenţei iniţiale');
subplot(2,2,4);
plot(w/pi,angle(h2));
grid
title('Spectrul de faze a secvenţei modificate în timp');

Rezultatul programului 3_2:

40
Spectru de valori a secvenţei iniţialeSpectru de valori a unei secvenţe modificate în timp
60 60

40 40

20 20

0 0
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1

Spectrul de faze a secvenţei iniţiale Spectrul de faze a secvenţei modificate în timp


4 4

2 2

0 0

-2 -2

-4 -4
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1

FMODFRECV
Programul dat serveşte pentru identifcarea proprietăţii de modificare a frecvenţei a DTFT.

% Program P3_3
% Proprietatea de modificare a frecvenţei a DTFT
clf;
w=-pi:2*pi/255:pi; wo=0.4*pi;
num1=[1 3 5 7 9 11 13 15 17];
L=length(num1);
h1=freqz(num1,1,w);
n=0:L-1;
num2=exp(wo*i*n).*num1;
h2=freqz(num2,1,w);
subplot(2,2,1);
plot(w/pi,abs(h1)); grid
title('Spectrul valorilor secvenţei iniţiale');
subplot(2,2,2);
plot(w/pi,abs(h2)); grid
title('Spectrul valorilor secveţei cu frecvenţa modificată');
subplot(2,2,3);
plot(w/pi,angle(h1)); grid
title('Spectrul de faze a secvenţei iniţiale');
subplot(2,2,4);
plot(w/pi,angle(h2)); grid
title('Spectrul de faze a secvenţei cu frecvenţa modificată');

Rezultatul programului 3_3:

41
Spectrul de valori a secvenţei iniţiale
Spectrul de valori a secveţelor cu frecvenţa modificată
100 100

50 50

0 0
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1

Spectrul de faze a secvenţei iniţiale


Spectrul de faze a secvenţelor cu frecvenţa modificată
4 4

2 2

0 0

-2 -2

-4 -4
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1

42
LUCRAREA 3
INTERPOLAREA SEMNALELOR ÎN DOMENIU TIMP

1. Obiectivele lucrării

Eşantionarea semnalelor de bandă limitată. Reconstituirea semnalelor din eşantioanele lor.

2. Breviar theoretic

Teorema eşantionării uniforme stabileşte că un semnal de bandă limitată este univoc determinat de
valorile sale considerate la momente de timp echidistante, dacă distanţa T dintre două momente succesive
satisface relaţia:
1
T ,
2 fm
unde f m reprezintă frecvenţa maximă din spectrul semnalului.
Valorile semnalului la momentele kT se numesc valori de analiză sau eşantioane. T se numeşte
perioadă de eşantionare (discretizare), iar   2 / T reprezintă frecvenţa de eşantionare.
Intervalul maxim permis pentru eşantionare este T  1 / 2 f m şi poartă denumirea de interval Nyquist.
F  1 / T  2 f m reprezintă frecvenţa Nyquist.
Reconstituirea semnalului s(t) în domeniul timp se realizează cu relaţia de interpolare:

s(t )   s[nT ] s i n c m (t  nT ) ,
n  
unde funcţia sinc se defineşte
sin( x)
s i n c ( x) 
x
cu argumentul x  m (t  nT ) . Graficul acestei funcţii este prezentat în figura de mai jos.
. Цели работы
Выборка сигналов с ограниченной полосой пропускания. Восстановление сигналов из их выборок.

2. Краткая теоретическая часть


Теорема о равномерной выборке гласит, что сигнал ограниченной полосы пропускания однозначно
определяется его значениями, рассматриваемыми в равноудаленные моменты времени, если
расстояние между двумя последовательными моментами удовлетворяет соотношению:
1
T , где f m представляет максимальную частоту в спектре сигнала.
2 fm
Значения сигнала в моменты kT иногда называются значениями анализа или выборками. T
называется периодом дискретизации (выборки) и представляет частоту дискретизации   2 / T .
Максимальный диапазон, разрешенный для выборки T  1 / 2 f m , также называется диапазоном
Найквиста. Величина F  1 / T  2 f m представляет частоту Найквиста.
Восстановление сигнала 𝑠(𝑡) во временной области выполняется с интерполяционным
соотношением:

sin( x)
s(t )   s[nT ] s i n c m (t  nT ) , где определена функция 𝑠𝑖𝑛𝑐 : s i n c ( x)  с аргументом
n  
x
x  m (t  nT ) . График этой функции показан на рисунке ниже.

43
Fig.1. Reprezentarea grafică a funcţiei s i n c (x) .

După cum este cunoscut, un semnal de bandă limitată are în mod necesar o durată infinită. Invers, un
semnal de durată finită are un spectru de frecvenţe infinit. Formula de interpolare de mai sus se utilizează
totuşi pentru semnale foarte diverse: periodice şi aperiodice, pe suport finit sau de durată infinită. Ultima
afirmaţie contrazice clar teorema eşantionării. Atunci, cum se poate utiliza o relaţie stabilită în anumite
condiţii, în condiţii diferite de cele de bază? Este vorba, evident, de reprezentări aproximative. Dacă, de
regulă, semnalele sunt definite pe support compact nu rămâne decât ca o parte a spectrului de frecvenţe să
fie ignorat şi, pe această cale, să se reducă artificial spectrul la o bandă finită. Efectele acestei tratări
reprezintă unul din obiectele lucrării prezente. Din eşantioanele unui semnal să se reconstituie semnalul, nu
importă de ce tip, din eşantioanele sale prelevate mai frecvent sau mai puţin frecvent.
Figura care urmează este o ilustrare a modului cum se poate recupera un semnal rectangular din
eşantioanele sale prelevate cu o anumită periodicitate.
Как известно, сигнал с ограниченной полосой пропускания (спектра) обязательно имеет бесконечную
длительность во времени. Наоборот, сигнал конечной длительности имеет бесконечный частотный спектр.
Однако приведенная выше формула интерполяции с функцией 𝑠𝑖𝑛𝑐 используется для очень разных сигналов:
периодических и апериодических, с конечной или бесконечной длительностью. Последнее утверждение явно
противоречит теореме отсчетов. Тогда как же можно использовать отношения, установленные в
определенных условиях, в условиях, отличных от основных? Это явно приблизительные представления.
Если, как правило, сигналы определены на компактной среде, остается только то, что часть частотного
спектра игнорируется и, таким образом, искусственно сокращает спектр до конечной полосы. Эффекты этого
облегчения задачи (упрощения, лечения) являются одним из объектов настоящей работы. Из выборок
сигнала сам сигнал восстанавливается, причём независимо от его типа, из его выборок, взятых чаще или
реже.
На следующем рисунке показано, как прямоугольный сигнал можно восстановить из его выборок, взятых с
определенной периодичностью.

Fig.2. Reconstituirea unui semnal rectangular din eşantioanele sale.

44
Sunt luate în considerare cinci eşantioane nenule prelevate pe durata semnalului, alte eşantioane fiind,
evident, nule deoarece sunt situate în afara suportului compact al semnalului rectangular. Însumarea celor
cinci funcţii sinc multiplicate cu valorile eşantioanelor [...,0,1,1,1,1,1,0,...] produce “caricatura” (curba cu
linie plină) din figură a semnalului rectangular eşantionat. Semnalul “reconstituit” este nenul acolo und ar
trebuie să fie nul, este ondulat acolo unde ar trebuie să fie constant, are creşteri şi descreşteri în timp finit
acolo unde ar trebui să varieze brusc. Dar această aproximare sau una întrucîtva mai bună ar putea fi
satisfăcătoare sub aspect practic-ingineresc sau ar putea fi corectată pentru a fi utilizată practic.
Dincolo de aspectul aproximativ comentat mai este de discutat non-cauzalitatea funcţiilor sinc din
formula de interpolare. Funcţia sinc ataşată unui eşantion “există” prin valori nenule încă înainte ca
eşantionul să fie prelevat/măsurat. Ceea ce este, desigur, absurd. De aceea, în operaţiile practice de
reconstituire a unui semnal din eşantioanele sale există o lipsă de informaţie la începutul secvenţei de
eşantioane şi la finalul ei, lipsă care traduce în aproximări şi mai grosiere în zonele apropiate capetelor
intervalului finit pe care semnalul este evaluat. Erorile de aproximare pentru zonele extreme se numesc
chair aşa: “efecte de capăt”. O şansă de a obţine efecte de capăt mai reduse o oferă aşa-numitele ferestre.
Ferestrele sunt ele înseşi nişte semnale care intervin multiplicativ pe lângă funcţia (funcţiile) eşantion.
Рассматриваются пять дискретных отсчетов, взятых во время действия сигнала, тогда как другие
отсчеты, очевидно, являются нулевыми, поскольку они расположены вне компактной опоры
прямоугольного сигнала. Суммирование пяти функций sinc, умноженных на значения выборок [...,
0,1,1,1,1,1,0, ...], дает «карикатуру» (сплошная линия) фигуры дискретизированного
прямоугольного сигнала. «Восстановленный» сигнал - это ноль там, где он должен быть нулевым,
он гофрирован там, где он должен быть постоянным, он увеличивается и уменьшается за конечное
время, где он должен резко меняться. Но это или несколько лучшее приближение может быть
удовлетворительным с практической точки зрения или может быть исправлено для практического
использования. Помимо обсуждаемого приближенного аспекта обсуждается не причинность
функций sinc в формуле интерполяции. Функция синхронизации, прикрепленная к образцу,
«существует» через нулевые значения даже до того, как образец будет взят / измерен. Что, конечно,
абсурдно. Следовательно, в практических операциях восстановления сигнала из его отсчетов
отсутствует информация в начале последовательности отсчетов и в конце ее, что приводит к еще
более грубым приближениям в областях вблизи концов конечного интервала, на котором
оценивается сигнал. Ошибки аппроксимации для экстремальных областей называются так:
«конечные эффекты». Шанс достичь более низких конечных эффектов предлагают так называемые
окна. Окна сами по себе являются сигналами, которые мультипликативно вмешиваются в
дополнение к функциям выборки.

Прямоугольное окно: Fereastră rectangulară:


1 pentru x   ,
R e c t a n g u l a r ( x,  )  
0 în rest ,
anulează în cvasitotalitate valorile funcţiei eşantion mai depărtate decât cu cel mult  de momentul propriu
eşantionului. Fereastra rectanghulară nu este cea mai potrivită alegere. Din cauza variaţiei bruşte la anularea
din capetele suportului său, ea introduce propriile ei efecte de capăt care pot fi importante. De aceea, de la
caz la caz, sunt utilizate ferestre de forme variate, dintre care câteva sunt definite (în ordine alfabetică) în
continuare, fără alte comentarii.

Fereastra Bartlett este o funcţie “cort”, adică


 x
1  pentru x   ,
Bartlett ( x, )   
0
 în rest .
Fereastra Blackman este definitivă astfel:

45
 x x
0.42  0.50 cos( )  0.08 cos(2 ) pentru x   ,
Blackman ( x,  )    

0 în rest .
Fereastra gaussiană are forma generală:
  x 2
  
Gauss( x, , )  2    pentru x   ,

0 în rest ,

cu  numită şi deviaţia standard. Cu cât  este mai mare cu atît mai largă este fereastra şi cu atât mai puţin
severă trunchierea.
Ferestrele Hann şi Hamming sunt foarte asemănătoare. Ele diferă numai printr-un parametru,  .
 x
  (1   ) cos( ) pentru x   ,
H ( x,  ,  )   

0 în rest .
Pentru  =0.5 este vorba de fereastră Hann, pentru  =0.54 fereastra poartă numele lui Hamming.
Fereastra Kaiser are un parametru ajustabil  care controlează cât de rapid se apropie de zero laturile
ei. Se defineşte astfel:
 I  1  ( x /  ) 2 
 o 
   pentru x   ,
Kaiser ( x,  ,  )  
I 0 ( )


0 în rest ,
cu I 0 (x) fucţia Bessel modificată de ordinul zero. Cu cât  este mai mare cu atât mai îngustă este fereastra.
Fereastra Lanczos este lobul centra al funcţiei sinc întins pe un interval dat:
 x
 sin(   )
 pentru x   ,
Lanczos ( x,  )   x

 
0
 în rest .
Fereastra Parzen este o aproximare cubică pe porţiuni a ferestrei Gauss de întindere doi:
(2  x) 3 pentru  2  x  1,

4  6 x 2  3 x 3 pentru  1  x  0,
1 
Parzen( x)  4  6 x 2  3x 3 pentru 0  x  1,
4
(2  x) pentru 1  x  2,
3

0 în rest .

Fereastra Welch este simplă ca formă şi anume este un polinom de gradul al doilea:
  x 2
1    pentru x   ,
Welch ( x,  )     

0 în rest .
Pachetul de programme Matlab are el însuşi implimentate câteva ferestre, bartlett, blackman, boxcar
- o fereastră rectangulară, chebwin - o fereastră Cebîsev, care nu apare în lista de mai sus, hamming,
hanning, kaiser şi triang - o fereastră triunghiulară.

3. Modul de lucru
46
1. Obiectivul lucrării este perceperea corectă a problemelor eşantionării semnalelor de bandă limitată şi
a reconstituirii semnalelor din această clasă, din eşantioanele lor. În script-ul următor se propune
eşantionarea şi apoi reconstituirea unui semnal, sumă a doua sinusoide:
s(t )  a1 cos(1t )  a2 cos(2t   )
care este, evident, de bandă limitată.
Introducerea în calculator, cu editorul Matlab , a script-ului care urmează.
% optiune de reprezentare (rep=0) grafic unic, (rep>0) grafice separate
tmax=10; % timpul maxim de reprezentare
fi=pi/2; % faza componentei secundare
f1=1; % frecventa componentei primare
f2=2; % frecventa componentei secundare
pasmic=0.001; % pasul utilizat la reprezentarea grafica
fes=4.1; % frecventa de esantionare
rep=1;
tes=1/fes; % perioada esantioanelor
a1=2;
a2=1;
t=0:pasmic:tmax;
y=a1*cos(2*pi*f1*t)+a2*cos(2*pi*f2*t-fi); % pregatirea graficului 1 (semnal original)
t1=0:tes:tmax;
n=round(tmax/tes)+1;
y1=a1*cos(2*pi*f1*t1)+a2*cos(2*pi*f2*t1-fi); % pregatirea graficului 2
(esantionarea)
y2=y1(1)*sinc(t/tes); % pregatirea graficului 3 (reconstituire)
for k=1:(n-1)
y2=y2+y1(k+1)*sinc(t/tes-k);
end
if rep>0
subplot(4,1,1)
plot(t,y) % trasarea graficului 1 (semnal)
hold on
ylabel('Original')
title('ESANTIONAREA SEMNALELOR')
plot([0 tmax],[0 0])
for i=1:n
subplot(4,1,2)
plot([t1(i) t1(i)],[0 y1(i)],'b:') % trasarea graficului 2 (esantionarea)
hold on
ylabel('Esantionat')
plot([0 tmax],[0 0])
end
subplot(4,1,3)
plot(t,y2,'k') % trasarea graficului 3 (reconstituire)
hold on
plot([0 tmax],[0 0])
for i=1:n
plot([t1(i) t1(i)],[0 y1(i)],'b:')
end
ylabel('Reconstituire')
subplot(4,1,4)
plot(t,y-y2,'r') % trasarea graficului 4 (diferente)
hold on
plot([0 tmax],[0 0])
ylabel('Diferente')
xlabel('Timp(s)')
else
plot(t,y) % trasarea graficului 1 (semnal)
hold on
plot([0 tmax],[0 0])
for i=1:n
plot([t1(i) t1(i)],[0 y1(i)],'b:') % trasarea graficului 3 (reconstituire)

47
end
plot(t,y2,'k')
plot(t,y-y2,'r') % trasarea graficului 4 (diferente)
plot([0 tmax],[0 0])
title('ESANTIONAREA SEMNALELOR')
ylabel('Semnal(albastru)/Reconstituire(negru)/Diferente(rosu)')
xlabel('Timp(s)')
end
ESANTIONAREA SEMNALELOR
2
Semnal(albastru)/Reconstituire(negru)/Diferente(rosu)

1.5

0.5

-0.5

-1

-1.5

-2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Timp(s)

a) Executarea calculelor cu valorile recomandate în antetul script-ului, reprezentarea semnalelor în


forma originară şi după reconstituire precum şi a diferenţelor dintre ele, în spaţii grafice diferite
sau în acelaşi spaţiu.
b) Executarea de calcule cu valorile diferite pentru frecvenţele f1 şi f 2 , pentru faza  , eventual
pentru amplitudini diferite ale sinusoidelor componente, utilizând pentru fiecare caz trei valori ale
frecvenţei de eşantionare: mai mică, egală şi mai mare ca frecvenţa Nyquist.

Chestiuni de studiu
a) Se apreciază vizual şi/sau cantitativ modificările semnalului reconstituit, calitatea reconstituirii
semnalului în zona de început şi de final a intervalului de timp observat.
b) Studenţii sunt îndemnaţi a studia şi alte semnale de bandă limitată, la libera alegere. O sugestie
uşor de implimentat un semnal asemănător celui prezentat mai sus dar cu sinusoidele componente
de frecvenţe al cărui raport nu este un număr raţional.

48
Lucrare de laborator Nr.4

Tema: Modulaţia în amplitudine cu purtător sinusoidal.


Scopul lucrăii: De studiat formele de undă şi spectrele semnalelor modulate în amplitudine cu
purtător armonic.

Noţiuni teoretice
Prin modulaţie se înţelege transferarea proprietăţilor unui semnal, numit semnal de bază sau semnal
modulator x(t), către alt semnal, numit purtător xp(t). În urma acestui transfer rezultă semnalul modulat
xM(t).

Fig. 1. Modulaţia în amplitudine.

Purtătorul xp(t) cu oscilaţie sinusoidală în timp se descrie prin următoarea relaţie:


x p (t )  Ap cos( p t   p ) .

Amplitudinea instantanee A(t) a semnaluli modulat în amplitudine trebuie sa fie într-o relaţie de
dependenţă liniară faţă de semnalul modulator x(t). A(t) poate fi o funcţie de timp de forma:
A(t )  Ap  kx(t ) .

Expresia în domeniul timp a semnaluli modulat in amplitudine va fi :


xMA (t )  A(t ) cos( p t   p )  [ Ap  kx(t )] cos( p t   p ) .

Se face ipoteza că semnalul modulator este un semnal sinusoidal de forma:


x(t )  A cos(0t  0 ) .

Amplitudinea instantanee şi expresia analitică a semnalului modulat în amplitudine devin în acest caz:
A(t )  Ap  ks(t )  Ap  kA cos(0t  0 )  Ap [1  m cos(0t  0 )] ,

49
xMA (t )  Ap [1  m cos(0t  0 )] cos( p t   p ) ,

în care m  kA / Ap , se numeşte grad de modulaţie. Formele semnalelor x(t), xp(t) şi xMA(t) sunt ilustrate în

fig. 1.
Utilizând notaţiile din această figură, gradul de modulaţie se determină cu relaţia:
AM  A0 A0  Am AM  Am
m   .
A0 A0 AM  Am
Teoretic, m aparţine intervalului [0; 1]. În telefonie, m aparţine intervalului [0.5; 0.6].
Se pune problema să determinăm spectrul semnalului modulat în amplitudine, relaţia căruia se
transformă succesiv:
mAp mAp
xMA (t )  Ap cos( p t   p )  cos[( p  0 )t   p  0 ]  cos[( p  0 )t   p  0 ].
2 2
Spectrele semnalelor x(t) şi xp(t) constau din câte o singură armonică, la frecvenţele 0 şi, respectiv,

 p ( p  0 ) . Spectrul semnalului modulat conţine 3 componente: purtătoarea de amplitudine Ap şi două

componente laterale, la frecvenţele  p  0 , cu amplitudinile egale cu mAp / 2 (fig 2).

Fig. 2. Spectrul semnalelor x(t) , xp(t) şi xMA(t).

Semnalul util este conţinut în cele două componente laterale (în exces, pentru că ar fi suficientă o
singură componentă laterală). Deci modulaţia în amplitudine nu este economică, în sensul că ocupă o bandă
de frecvenţă dublă faţă de cea necesară. Purtătoarea este mult mai mare decât componentele laterale,
rezultând unele dezavantaje, precum saturaţia amplificatoarelor şi performanţe energetice slabe ale
modulaţiei de amplitudine.
Considerăm acum că semnalul util x(t) din componenţa semnalului modulator este periodic
nesinusoidal. În acest caz, semnalul x(t) se poate reprezenta prin seria Fourier armonică, cu următoarea
expresie:

50
N
x(t )   Ai  cos(i0t  i ) ,
i 1

unde N este numărul de armonici din spectrul semnalului modulator. Expresia semnalului modulat în amplitudine
este:
N
xMA (t )  Ap [1   mi cos(i0t  i )] cos( pt   p ) ,
i 1

unde mi  Ai / Ap este gradul de modulaţie aferent armonicii i. Se observă că fiecare armonică realizează

modulaţia purtătorului cu un grad de modulaţie mi proporţional cu amplitudinea Ai a armonicii ( mi ~ Ai ).


Deci gradele de modulaţie sunt mai mari sau mai mici, după cum amplitudinile armonicilor sunt mai mari
sau mai mici.
După unele transformări se obţine:
N mi Ap
xMA (t )  Ap cos( p t   p )   {cos[(  p  i0 )t   p  i ]  cos[( p  i0 )t   p  i ]}.
i 1 2
Spectrele semnalelor x(t ) şi xMA (t ) sunt reprezentate în fig. 3.

Fig. 3. Spectrele semnalelor x(t ) şi xMA (t ) .

În spectrul semnalului xMA (t ) există purtătoarea şi două benzi laterale: inferioară şi superioară. Fiecare
bandă laterală are spectrul identic cu spectrul amplitudinilor semnalului de bază, numai că scara este redusă
cu coeficientul 1/2. De asemenea se observă că este necesar să fie îndeplinită condiţia:  p   N   N sau

 p  2 N , pentru ca diagramele spectrale ale semnalelor x(t ) şi xMA (t ) să nu se suprapună.

51
Programul 4_1
Este destinat pentru generarea şi vizualizarea formei de undă şi spectrului semnalului modulator.

Am=1; % Amplitudinea
% semnalului modulator
w0=20; % Frecventa unghiulara
Fi0=0; % Faza initiala
Fm=(w0+0.00001)*100; % Frecventa de discretizare
t=-10/(w0+0.00001):1/Fm:10/(w0+0.00001); % Timpul discret
X=Am*cos(w0*t+Fi0); % Semnalul modulator
w=1:(w0+1);
A=zeros(size(w));
A(w0)=Am;
subplot(211);
plot(t,X);
title('Semnalul modulator');
xlabel('t [sec.]');
ylabel('x(t)');
grid;
subplot(212);
stem(w,A(w));
title('Spectrul de amplitudini');
xlabel('w');
ylabel('A(w)');
grid;

Programul 4_2
Este destinat pentru generarea şi vizualizarea formei de undă şi a spectrului semnalului purtător.
Ap=1; % Amplitudinea
% semnalului purtator
wp=100; % Frecventa unghiulara
Fip=0; % Faza initiala
Fm=(wp+0.00001)*100; % Frecventa de discretizare
t=-100/(wp+0.00001):1/Fm:100/(wp+0.00001); % Timpul discret
Xp=Ap*cos(wp*t+Fip); % Semnalul purtator
w=1:(wp+1);
A=zeros(size(w));
A(wp)=Ap;
subplot(211);
plot(t, Xp);
title('Semnalul purtator');
xlabel('t [sec.]');
ylabel('Xp(t)');
grid;
subplot(212);
stem(w,A);
title('Spectrul de amplitudini');
xlabel('w');
ylabel('A(w)');
grid;

52
Programul 4_3
Este destinat pentru generarea şi vizualizarea formei de undă şi a spectrului semnalului modulat în
amplitudine cu grad de modulaţie m  0,5 .

Am=1; % Amplitudinea semnalului modulator


Ap=1; % Amplitudinea purtatorului
w0=20; % Frecventa semnalului modulator
wp=100; % Frecventa purtatorului
Fi0=0;
Fip=0;
Fm=(w0+0.00001)*100; % Frecventa de discretizare
t=-10/(w0+0.00001):1/Fm:10/(w0+0.00001); % Timpul discret
X=Am*cos(w0*t); % Semnalul modulator
Xp=Ap*cos(wp*t); % Semnalul purtator
m=0.5; % Gradul de modulatie
A_MA=Ap*(1+m*cos(w0*t+Fi0));
X_MA=A_MA.*cos(wp*t+Fip); % Semnalul modulat in amplitudine
w=(1):(wp+w0+1);
A=zeros(size(w));
A(wp-w0)=m*Ap/2;
A(wp)=Ap;
A(wp+w0)=m*Ap/2;
subplot(211);
plot(t, X_MA, t, abs(A_MA));
title('Semnalul modulat in amplitudine');
xlabel('t [sec.]');
ylabel('X_M_A(t)');
grid;
subplot(212);
stem(w,A(w));
title('Spectrul de amplitudini');
xlabel('w');
ylabel('A(w)');
grid;

Programul 4_4
wp1=30; % frecventa purtatorului I
wp2=70; % frecventa purtatorului II
w=-wp2-20:0.1:wp2+20;% valoarea frecventei pentru calcul
S_A=1./(1+w.^2); % spectrul semnalului modulator
S_AM1=0.5./(1+(w+wp1).^2)+0.5./(1+(w-wp1).^2);
%spectrul semnalului modulat I
S_AM2=0.5./(1+(w+wp2).^2)+0.5./(1+0.5*(w-wp2).^2);
%spectrul semnalului modulat II
plot(w, S_A, w, S_AM1, w, S_AM2)

Programul 4_5
Demodulaţia semnalului MA. Poate fi efectuată prin imitarea funcţionării unui detector dublă alternanţă.
Iniţial se calculează modulul semnalului MA de intrare, iar mai apoi impulsurile unipolare cosinusoidale
obţinute se netezesc cu ajutorul unui FTJ.

Am=1; % Amplitudinea semnalului modulator


Ap=1; % Amplitudinea purtatorului
w0=20; % Frecventa semnalului modulator
wp=100; % Frecventa purtatorului

53
Fi0=0;
Fip=0;
Fm=(w0+0.00001)*100; % Frecventa de discretizare
t=-10/(w0+0.00001):1/Fm:10/(w0+0.00001); % Timpul discret
X=Am*cos(w0*t); % Semnalul modulator
Xp=Ap*cos(wp*t); % Semnalul purtator
m=0.5; % Gradul de modulatie
A_MA=Ap*(1+m*cos(w0*t+Fi0));
X_MA=A_MA.*cos(wp*t+Fip); % Semnalul modulat in amplitudine
y=abs(X_MA); % modulul semnalului MA
[b,a]=butter(5, 2*w0/pi/Fm); % netezirea cu un FTJ
z=filtfilt(b,a,y); % filtrarea
subplot(211);
plot(t, X_MA, t, abs(A_MA));
title('Semnalul modulat in amplitudine');
xlabel('t [sec.]');
ylabel('X_M_A(t)');
grid;
subplot(212);
plot(t(1:2000),y(1:2000),'--',t(1:2000),z(1:2000))
title('Semnalul demodulat');
grid

Programul 4_6
Modulaţia în amplitudine cu purtător suprimat.

Am=1; % Amplitudinea semnalului modulator


Ap=1; % Amplitudinea purtatorului
w0=10; % Frecventa semnalului modulator
wp=100; % Frecventa purtatorului
Fi0=0;
Fip=0;
Fm=(w0+0.00001)*100; % Frecventa de discretizare
t=-10/(w0+0.00001):1/Fm:10/(w0+0.00001); % Timpul discret
X=Am*cos(w0*t+Fi0); % Semnalul modulator
Xp=Ap*cos(wp*t+Fip); % Semnalul purtator
X_MA_PS=X.*Xp; % Semnalul MA-PS
plot(t, X_MA_PS);
title('Semnalul MA-PS');
xlabel('t [sec.]');
ylabel('X_M_A_P_S(t)');
grid;

Programul 4_7
Modulaţia în amplitudine cu banda laterala unică.

Am1=1; % Prima amplitudine a modulatiei


Am2=1; % A doua amplitudine a modulatiei
w1=20; % Prima frecventa a modulatiei
w2=40; % A doua frecventa a modulatiei
wp=100; % Frecventa purtatorului
Fi1=0; % Prima faza a modulatiei
Fi2=0; % A doua faza a modulatiei
Fm=(w1+w2+0.00001)*100; % Frecventa de discretizare
t=-50/(w1+w2+0.00001):1/Fm:50/(w1+w2+0.00001); % Timpul discret

% semnalul modulator
X=Am1*cos(w1*t+Fi1)+Am2*cos(w2*t+Fi2);
% Semnalul MA cu banda laterala superioara
X_MA_BLS=Am1*cos((wp+w1)*t+Fi1)+Am2*cos((wp+w2)*t+Fi2);
% Semnal MA cu banda laterala inferioara

54
X_MA_BLI=Am1*cos((wp-w1)*t+Fi1)+Am2*cos((wp-w2)*t+Fi2);
subplot(3,1,1)
plot(t,X)
ylabel('X(t)')
title('Semnalul modulator')
grid
subplot(3,1,2)
plot(t,X_MA_BLS)
ylabel('X_M_A_-_B_L_S(t)')
title('Semnalul MA cu Banda Laterala Superioara')
grid
subplot(3,1,3)
plot(t,X_MA_BLI)
ylabel('X_M_A_-_B_L_I(t)')
title('Semnalul MA cu Banda Laterala Inferioara'); grid

Programul 4_8
Demodulaţia semnalului MA în amplitudine cu bandă laterala unică.
Am1=1; % Prima amplitudine a modulatiei
Am2=1; % A doua amplitudine a modulatiei
w1=20; % Prima frecventa a modulatiei
w2=40; % A doua frecventa a modulatiei
wp=100; % Frecventa purtatorului
Fi1=0; % Prima faza a modulatiei
Fi2=0; % A doua faza a modulatiei
Fm=(w1+w2+0.00001)*100; % Frecventa de discretizare
t=-50/(w1+w2+0.00001):1/Fm:50/(w1+w2+0.00001); % Timpul discret

% semnalul modulator
X=Am1*cos(w1*t+Fi1)+Am2*cos(w2*t+Fi2);
% Semnalul MA cu banda laterala superioara
X_MA_BLS=Am1*cos((wp+w1)*t+Fi1)+Am2*cos((wp+w2)*t+Fi2);
% Semnal MA cu banda laterala inferioara
X_MA_BLI=Am1*cos((wp-w1)*t+Fi1)+Am2*cos((wp-w2)*t+Fi2);

% inmultirea la frecventa de referinta


y=X_MA_BLS.*cos(wp*t);
[b,a]=butter(5,wp/(Fm*2)); % FTJ de netezire
z=filtfilt(b, a, y); % filtrarea
subplot(2,1,1)
plot(t, y); grid
title('Semnalul MA-BLU inmultit la frecventa de referinta')
subplot(2,1,2)
plot(t, z);
title('Semnalul demodulat filtrat')
grid

Lucrare de laborator Nr.5


Tema: Sisteme discrete în timp continuu sau discret
Scopul lucrării: De a învăţa cum să creăm diferite sisteme în conformitate cu sistemul iniţial.

Noţiuni teoretice
Sistemele discrete în timp convertesc semnalul de intrare în domeniul de timp cu scopul de a obţine
la ieşire un semnal cu proprietăţi dorite. Asupra semnalului de intrare se aplică diferiţi, care constau în
operaţii simple. Scopul acestei lucrări de laborator constă în prezentarea cîtorva tipuri simple de discrete,
cu prorprietăţile lor.

55
Într-un sistem liniar în timp discret pentru un semnal de intrare x[n]=αx1[n]+βx2[n] ca răspuns vom
avea y[n]=αy1[n]+βy2[n] unde y1[n] şi y2[n] sunt răspunsuri la secvenţele corespunătoare x1[n] и x2[n].
Într-un sistem discret în timp continuu ca răspuns la semnalul de intrare x[n]=x1[n-n0] va fi semnalul
y[n]=y1[n-n0] unde n0 –număr intreg nenul şi y1[n] raspuns la x1[n].
Sistemul continuu după valori şi în timp cotinuu (system continuu ,Linear Time-Invariant-LTI)
satisfice ambele criterii de liniaritate şi continuitate.
Dacă y1[n] şi y2[n] sunt răspunsuri ale unui sistem discret cauzal la intrările corespunzătoare u1[n] şi
u2[n], atunci u1[n]= u2[n] cînd n<N, implică y1[n]=y2[n] cînd n<N.

Comenzile MATLAB utilizate:


Comenzi de uz general
disp
Operatori şi simboluri speciale
: . + - * / ; %

Construcţii sintactice
break end for if input

Matrici elementare şi operaţiile asupra lor


ones pi zeros

Funcţii elementare
cos abs

Funcţii de interpolare şi poliomiale


conv

Grafică bidimensională
axis plot stem title xlabel ylabel

Funcţii grafice de uz general


clf subplot

Funcţii de lucru cu şirui


num2str
Funcţii pachetului de prelucrare a semnalelor
filter impz

Programul 5_1
Prezentarea unui filtru simplu cu M-vîrfuri, numărul cărora se introduce de către utilizator.
% Programul P2_1
% Simularea filtrului FIR de o lungime arbitrara
% generarea semnalului de intrare
clf; n=0:100;
s1=cos(2*pi*0.05*n); % semnal de o frecventa joasa
s2=cos(2*pi*0.47*n); % semnal de o frecventa inalta
x=s1+s2;
% Realiyarea filtrului FIR
M=input('Lungimea dorita a filtrului = ');

56
num=ones(1,M);
y=filter(num,1,x)/M;
% Afisarea semnalelor de intare si de isire
subplot(2,2,1);
plot(n,s1);
axis([0, 100, -2, 2]);
xlabel('Timpul n'); ylabel('Amplituda');
title('semnal #1');
subplot(2,2,2);
plot(n,s2);
axis([0, 100, -2, 2]);
xlabel('Timpul n'); ylabel('Amplituda');
title('semnal #2');
subplot(2,2,3);
plot(n,x);
axis([0, 100, -2, 2]);
xlabel('Timpul n'); ylabel('Amplituda');
title('Semnalul de intrare');
subplot(2,2,4);
plot(n,y);
axis([0, 100, -2, 2]);
xlabel('Timpul n'); ylabel('Amplituda');
title('Semnalul de iesire');
axis;
semnal #1 semnal #2
2 2

1 1
Amplituda

Amplituda

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Timpul n Timpul n
Semnalul de intrare Semnalul de iesire
2 2

1 1
Amplituda

Amplituda

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Timpul n Timpul n

Programul 5_2
Programul de mai jos poate fi folosit pentru generarea semnalului de intrare x[n], compus ditr-o
secenta sinusoidala.
% Programul P2_2
% generarea semnalului sinusoidal de intrare
clf;
n=0:200;
x=cos(2*pi*0.05*n);
% Calcularea semnalului de iesire
x1 = [x 0 0]; % x1[n] = x[n+1]
x2 = [0 x 0]; % x2[n] = x[n]
57
x3 = [0 0 x]; % x3[n] = x[n-1]
y=x2.*x2 + x1.*x3;
y=y(2:202);
% Vizualizarea semnalului de intre si a celui de iesire subplot(2,1,1);
plot(n,x);
xlabel(‘Timpul n’); ylabel(‘Amplituda’);
title(‘semnalul de intrare ‘);
subplot(2,1,2);
plot(n,y);
xlabel(‘Timpul n’); ylabel(‘Amplituda’);
title('Semnalul de iesire');

semnalul de intrare
1

0.5
Amplituda

-0.5

-1
0 20 40 60 80 100 120 140 160 180 200
Timpul n
Semnalul de iesire
2

1.5
Amplituda

0.5

-0.5
0 20 40 60 80 100 120 140 160 180 200
Timpul n

Programul 5_3
În programul acesta este realizat sistemul reprezentat prin următoarea expresie:
y[n]-0.4y[n-1]+0.75y[n-2]=2.2403x[n]+2.4908x[n-1]+2.2403x[n-2].
Se generează trei secvenţe de intrare x1[n], x2[n] и x[n]=a*x1[n]+b*x2[n]. Se calculează trei
secvenţe de ieşire y1[n], y2[n] и y[n], cu reprezentarea lor grafică.

% Programul P2_3
% Generarea secvenţelor de iesire
clf;
n=0:40;
a=2; b=-3;
x1=cos(2*pi*0.1*n);
x2=cos(2*pi*0.4*n);
x=a*x1+b*x2;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
ic=[0 0]; % initializarea
y1=filter(num,den,x1,ic); % Calcularea semnalului de iesire y1[n]
y2=filter(num,den,x2,ic); % Calcularea semnalului de iesire y2[n]
y=filter(num,den,x,ic); % Calcularea semnalului de iesire y[n]

58
yt=a*y1+b*y2;
d=y-yt; % calcularea abaterii d[n]
%Vizualizarea semnalelor de iesire si a semnalului de abatere
subplot(3,1,1);
stem(n,y);
ylabel('Amplituda ');
title('Semnalul de iesire, conform semnalului de intrare incarcat : a
\cdot x_{1}[n] + b \cdot x_{2}[n]');
subplot(3,1,2);
stem(n,yt);
ylabel('Amplituda');
title('semnalul de iesire incarcat : a \cdot y_{1}[n] + b \cdot y_{2}[n]');
subplot(3,1,3);
stem(n,d);
xlabel('Timpul n'); ylabel('Amplituda');
title('semnalul diferential ');

Semnalul de iesire, conform semnalului de intrare incarcat : a  x 1[n] + b  x 2[n]


20
Amplituda

-20

-40
0 5 semnalul
10 de iesire 20 : a  y25
15 incarcat 1
[n] + b 30
y 2[n] 35 40
20
Amplituda

-20

-40
0 -15 5 10 15
semnalul20
diferential25 30 35 40
x 10
5
Amplituda

-5
0 5 10 15 20 25 30 35 40
Timpul n

Programul 5_4
Pentru această expresie se crează sistemul ce o simulează:
y[n]-0.4y[n-1]+0.75y[n-2]=2.2403x[n]+2.4908x[n-1]+2.2403x[n-2]. Două secvenţe de intrare
diferite x[n] şi x[n-D]. Se calculează şi se vizualizează corespunzător doua secvenzede ieşire şi abaterea
y1[n] – y2[n+D].
% Programul P2_4
% Generarea secventelor de intrare
clf; n=0:40; D=10; a=3.0; b=-2;
x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
xd=[zeros(1,D) x];
num=[2.2403 2.4908 2.2403]; den=[1 -0.4 0.75];
ic=[0 0]; % setarea conditiilor initiale
%Calcularea semnalului de iesire y[n]
y=filter(num,den,x,ic);

59
% Calcularea semnalului de iesire yd[n]
yd=filter(num,den,xd,ic);
% Calcularea semnalului deabatere d[n]
d=y-yd(1+D:41+D);
%Afisarea graficelor semnalelor de iesire
subplot(3,1,1);
stem(n,y);
ylabel('Amplituda');
title('Semnalul de iesire y[n]'); grid;
subplot(3,1,2);
stem(n,yd(1:41));
ylabel('Amplituda');
title(['iesirea,la intirzierea semnalului la intrare
x[n',num2str(D),']']); grid;
subplot(3,1,3);
stem(n,d);
xlabel('Timpul n'); ylabel('Amplituda');
title('semnalul de abatere'); grid;

Semnalul de iesire y[n]


20
Amplituda

-20

-40
0 5 10 15 20 25 30 35 40
iesirea, la intirzierea semnalului la intrare x[n 10]
20
Amplituda

-20

-40
0 5 10 15 20 25 30 35 40
semnalul de abatere
1
Amplituda

-1
0 5 10 15 20 25 30 35 40
Timpul n

Programul 5_5
Aici se calculează şi se afişează la ecran impulsul răspunsului sistemului, corespunzător expresiei:
y[n]-0.4y[n-1]+0.75y[n-2]=2.2403x[n]+2.4908x[n-1]+2.2403x[n-2].
% Programul P2_5
% calcularea impulsului de raspuns y
clf;
N=40;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
y=impz(num,den,N);
% Reprezentareagrafică a impulsului de raspuns
stem(y);
xlabel('Timpul n'); ylabel('Amplituda');
title('Impulsul de raspuns'); grid;

60
Impulsul de raspuns
4

1
Amplituda

-1

-2

-3
0 5 10 15 20 25 30 35 40
Timpul n

Programul 5_6
Programul acesta realizează sistemul de 4 conditii: y[n]+1.6y[n-1]+2.28y[n-2]+1.325y[n-3]+0.68y[n-
4] = 0.06x[n]-0.19x[n-1]+0.27x[n-2]-0.26x[n-3]+0.12x[n-4] şi Sisteme cascade :
Etapa 1: y1[n]+0.9y1[n-1]+0.8y1[n-2]=0.3x[n]-0.3x[n-1]+0.4x[n-2];
Etapa 2: y2[n]+0.7y2[n-1]+0.85y2[n-2]=0.2y1[n]-0.5y1[n-1]+0.3y1[n-2];

% Programul P2_6
% Realizarea cascadelor
clf;
x=[1 zeros(1,40)]; % Generarea semnalului de intrare
n=0:40;
% Coeficientii sistemului de gradul 4
den=[1 1.6 2.28 1.325 0.68];
num=[0.06 -0.19 0.27 -0.26 0.12];
% calcularea semnalului de ieasire asistemului de gradul 4 y=filter(num,den,x);
% Coefocoentii sistemelordegradul 2
num1=[0.3 -0.2 0.4]; den1=[1 0.9 0.8];
num2=[0.2 -0.5 0.3]; den2=[1 0.7 0.85];
% Semnalul de iesire y1[n] a primei etape a cascadei
y1=filter(num1,den1,x);
% Semnalul deiesire y2[n] etapei a doua a cascadei
y2=filter(num2,den2,y1);
% abaterea dintre y[n] si y2[n]
d=y-y2;
% Graficele semnalelor de iesire si a abaterii
subplot(3,1,1);
stem(n,y);
ylabel('Amplituda');
title('afisarea realizării de gradul 4'); grid;
subplot(3,1,2);
stem(n,y2);
ylabel('Amplituda');
title('Afisarea realizarii cascada'); grid;

61
subplot(3,1,3);
stem(n,d);
xlabel('Timpul n'); ylabel('Amplituda ');
title('semnalul abaterii'); rid;

afisarea realizarii de gradul 4


1
Amplituda
0.5

-0.5
0 5 10 15
Afisarea 20 cascada
realizarii 25 30 35 40
1
Amplituda

-1
0 5 10 15semnalul
20abaterii25 30 35 40
1
Amplituda

-1
0 5 10 15 20 25 30 35 40
Timpul n

Programul 5_7
Operaţiunea de convoluţie se realizează în MATLAB cu comanda conv. Pentru aceasta se folosesc
două secvenţe finite şi de aceeaşi lungime.

% Programul P2_7
clf;
h=[3 2 1 -2 1 0 -4 0 3]; % raspuns de impuls
x=[1 -2 3 -4 3 2 1]; % secventa deintrare
y=conv(h,x);
n=0:14;
subplot(2,1,1);
stem(n,y);
xlabel('Timpul n'); ylabel('Amplituda');
title('Semnalul de iesire,obtinut in urma convolutiei'); grid;
x1=[x zeros(1,8)];
y1=filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Timpul n'); ylabel('Amplituda');
title('Semnalul de iesire obtinut in urma filtrarii'); grid;

62
Semnalul de iesire,obtinut in urma convolutiei
20

10

Amplituda
0

-10

-20
0 2 4 6 8 10 12 14
Timpul n
Semnalul de iesire obtinut in urma filtrarii
20

10
Amplituda

-10

-20
0 2 4 6 8 10 12 14
Timpul n

Programul 5_8
Programul calculează suma valorilor absolute ale raspunsului inpuls
% Programul P2_8
% Testarea stabilitatii bazat pe suma valorilor absolute ale elementelor
raspuns impuls
clf;
num=[1 -0.8]; den=[1 1.5 0.9];
N=200;
h=impz(num,den,N+1);
parsum=0;
for k=1:N+1;
parsum=parsum+abs(h(k));
if abs(h(k))<10^(-6), break, end
end
% Afisarea răspuns impuls
n=0:N;
stem(n,h);
xlabel('Timpul n'); ylabel('Amplituda');
disp('Valoarea='); disp(abs(h(k))); %Afisarea valorilor

63
3

1
Amplituda

-1

-2

-3
0 20 40 60 80 100 120 140 160 180 200
Timpul n

Programul 5_9
Aici se prezintă două sisteme:
y[n] = 0.5x[n]+0.27x[n-1]+0.77x[n-2]
şi y[n] = 0.45x[n] +0.5x[n-1]+0.45x[n-2]+0.53y[n-1]-0.46y[n-2].

% Programul P2_9
% Generarea semnalului deintare
clf;
n=0:299;
x1=cos(2*pi*10*n/256);
x2=cos(2*pi*100*n/256);
x=x1+x2;
% Calcularea secvenţelor de iesire
num1=[0.5 0.27 0.77];
y1=filter(num1,1,x); % Iesirea sistemului #1
den2=[1 -0.53 0.46];
num2=[0.45 0.5 0.45];
y2=filter(num2,den2,x); % Iesirea sistemului #2
% Graficele secventelor de iesire
subplot(2,1,1);
plot(n,y1); axis([0 300 -2 2]);
ylabel('Amplituda');
title('semnalul de iesire #1'); grid;
subplot(2,1,2);
plot(n,y2); axis([0 300 -2 2]);
xlabel('Timpul n'); ylabel('Amplituda');
title(semnalul de iesire#2'); grid;

64
semnalul de iesire #1
2

Amplituda 0

-1

-2
0 50 100 150 200 250 300

semnalul de iesire#2
2

1
Amplituda

-1

-2
0 50 100 150 200 250 300
Timpul n

65
Lucrare de laborator Nr.6
Tema: Sisteme discrete liniare în timp continuu cercetate în domeniul de frecvenţă
Scopul lucrăii: De studiat proprietăţile de bază ale sistemelor discrete în timp continuu în domeniul
de frecvenţă.

Noţiuni teoretice
Orice sistem discret liniar în timp continuu este complet caracterizat de domeniul de frecvenţă în
secvenţa de impulsuri de raspuns. Astfel semnalul de ieşire poate fi obţinut pentru orice sistem de aşa tip
prin convoluţia secvenţei de intrare cu secvenţa impulsului de raspuns al ei. Anumite categorii de astfel de
sisteme, de asemenea, pot fi caracterizate printr-o ecuaţie (de diferenţiere) liniară cu coefcienţi constanţi.
Pentru aceste categorii de sisteme semnalul de ieşire poate fi calculat recursiv pentru orice secvenţă de
intrare. Aplicînd DTFT sau transformata-z la rezultatul convolutiei sau la ecuaţia de diferenţiere, sistemele
discrete liniare şi continue în timp pot fi carcterizate şin domeniul de frecvenţă. Acest tip de specificarea
sistemelor furnizează informaţii suplimentare despre comportamentul sistemului, pe lîngă faptul că o astfel
de specificare a sistemelor acordă posibilităţi mai uşoare de proiectări, realizări şi utilizări în diferite
aplicaţii.

Comenzile MATLAB utilizate:


Comenzi de uz general
disp
Operatori şi simboluri speciale
: . + - * / ; %

Construcţii sintactice
function pause

Matrici elementare şi operaţiile asupra lor


fliplr pi

Funcţii elementare
cos abs angle imag log10 real

Grafică bidimensională
axis plot stem title xlabel ylabel grid

Funcţii grafice de uz general


clf subplot

Funcţii pachetului de prelucrare a semnalelor


filter impz filtfilt fregz grpdelay poly2rc sinc zplane

Programul 6_1
În acestprogram se calculează aproximarea de sus. Se foloseşte funcţia sinc din sistemul MATLAB
%Programul P4_1
% raspunsul impuls filtrului ideal
clf;
fc=0.25;
n=[-6.5:1:6.5];
y=2*fc*sinc(2*fc*n);
k=n+6.5;
stem(k,y); title('N=13'); axis([0 13 -0.2 0.6]);
xlabel('Timpul n'); ylabel('Amplituda'); grid

66
Rezultatul programului:
N=13
0.6

0.5

0.4

0.3
Amplituda

0.2

0.1

-0.1

-0.2
0 2 4 6 8 10 12
Timpul n

Programul 6_2
Programul calculează răspunsul propriu al filtrului de frecvenţă joasă.

% Programul P4_2
% Rspunsul propriu al filtrului de frecvenţă joasă.
clf;
M=2;
num=ones(1,M)/M;
w=0:pi/255:pi;
h=freqz(num,1,w);
g=20*log10(abs(h));
plot(w/pi,g); grid
axis([0 1 -50 0.5]);
xlabel('\omega /\pi'); ylabel('Adaugare');
title(['M = ',num2str(M)]);

67
Rezultatul programului:
M=2
0

-5

-10

-15

-20
Adaugare

-25

-30

-35

-40

-45

-50
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
 /

Programul 6_3
Cu ajutorul programul dat putem analiza proprietăţile celor patru tipuri de funcţii de transfer care
caracterizează filtrele:
Tipul 1: Răspunsul impuls simetric de lungime impară;
Tipul 2: Răspunsul impuls simetric de lungime pară;
Tipul 3: Răspunsul impuls asimetric de lungime impară;
Tiplu 4: Răspunsul impuls asimetric de lungime pară.
% Programul P4_3
% Punctele zero FIR filtrelor in faza liniara
clf;
b=[1 -8.5 30.5 -63];
num1=[b 81 fliplr(b)];
num2=[b 81 81 fliplr(b)];
num3=[b 0 -fliplr(b)];
num4=[b 81 -81 -fliplr(b)];
n1=0:length(num1)-1;
n2=0:length(num2)-1;
subplot(2,2,1); stem(n1,num1);
xlabel('Timpul n'); ylabel('Amplituda'); grid
title('Tipul 1 FIR filtrului');
subplot(2,2,2); stem(n2,num2);
xlabel('Timpul n'); ylabel('Amplituda'); grid
title('Tip 2 FIR filtrului');
subplot(2,2,3); stem(n1,num3);
xlabel('Timpul n'); ylabel('Amplituda'); grid
title(' Tip 3 FIR filtrului ');
subplot(2,2,4); stem(n2,num4);
xlabel('Timpul n'); ylabel('Amplituda'); grid

68
title('Tip 2 FIR filtrului');
pause
subplot(2,2,1); zplane(num1,1);
title(' Tip 1 FIR filtrului ');
subplot(2,2,2); zplane(num2,1);
title(' Tip 2 FIR filtrului ');
subplot(2,2,3); zplane(num3,1);
title('Tip 3 FIR filtrului');
subplot(2,2,4); zplane(num4,1);
title('Tip 4 FIR filtrului');
disp('Zeroul FIR filtrului de Tip 1');
disp(roots(num1));
disp(' Zeroul FIR filtrului de Tip 2');
disp(roots(num2));
disp(' Zeroul FIR filtrului de Tip 3');
disp(roots(num3));
disp(' Zeroul FIR filtrului de Tip 4');
disp(roots(num4));

Rezultatul programului:
Tipul 1 FIR filtrului Tip 2 FIR filtrului
100 100

50 50
Amplituda

Amplituda

0 0

-50 -50

-100 -100
0 2 4 6 8 0 5 10
Timpul n Timpul n
Tip 3 FIR filtrului Tip 2 FIR filtrului
100 100

50 50
Amplituda

Amplituda

0 0

-50 -50

-100 -100
0 2 4 6 8 0 5 10
Timpul n Timpul n

69
Tip 1 FIR filtrului Tip 2 FIR filtrului

1 2

Imaginary Part

Imaginary Part
1
8 9
0 0
-1
-1 -2

-1 0 1 2 3 -2 0 2 4
Real Part Real Part
Tip 3 FIR filtrului Tip 4 FIR filtrului

2 1
Imaginary Part

Imaginary Part
8 9
0 0

-2 -1

-2 0 2 4 6 -1 0 1 2 3
Real Part Real Part

b = 1.0000 -8.5000 30.5000 -63.0000

Zeroul FIR filtrului de Tip 1 Zeroul FIR filtrului de Tip 3


2.9744 4.7627
2.0888 1.6279 + 3.0565i
0.9790 + 1.4110i 1.6279 - 3.0565i
0.9790 - 1.4110i -1.0000
0.3319 + 0.4784i 1.0000
0.3319 - 0.4784i 0.1357 + 0.2549i
0.4787 0.1357 - 0.2549i
0.3362 0.2100
Zeroul FIR filtrului de Tip 2
3.7585 + 1.5147i Zeroul FIR filtrului de Tip 4
3.7585 - 1.5147i 3.4139
0.6733 + 2.6623i 1.6541 + 1.5813i
0.6733 - 2.6623i 1.6541 - 1.5813i
-1.0000 -0.0733 + 0.9973i
0.0893 + 0.3530i -0.0733 - 0.9973i
0.0893 - 0.3530i 1.0000
0.2289 + 0.0922i 0.3159 + 0.3020i
0.2289 - 0.0922i 0.3159 - 0.3020i
0.2929

70
Programul 6_4
Acest program prezintă cercetarea stabilităţii a filtrului numeric IIR. Stabilitatea filtrului−
ereprezintă o calitate foarte importantă a filtrului. Filtrul numeric IIR este stabil dacă polii funcţiei de
transfer se află în interiorul cercului unitate.

% Programul P4_4
% Test de verificare a stabilitatii
clf;
den=input('Introduceti coeficientii de numitor:');
ki=poly2rc(den);
disp('Parametrii testului de stabilitate: ');
disp(ki);

Exemplu:
Introduceti coeficientii de numitor:10
Parametrii testului de stabilitate:
>>

71
Lucrare de laborator Nr.7
Tema: Prelucrarea digitală a semnalelor continue în timp.
Sarcina: De a studia restabilirea unui semnal continuu dintr-un semnal discret dat, cu o cantitate
minimă de pierderi.

Consideraţii teoretice
Algoritmii de prelucrare a semnalelor discrete sunt adesea aplicate asupra semnalelor continue în
timp. Această lucrare de laborator permite studierea algoritmilor principali de transformare a semnalelor
continue în semnale discrete, mai apoi, după aplicarea corespunzătoare a algoritmilor de transformare,
va avea loc transformarea semnalului într-un semnal continuu echivalent lui, după posibilitate cu
cantităţi minime de cheltuieli.
Restabilirea semnalului discret: sarcina – de găsit condiţiile necesare, cu ajutorul cărora semnalul
poate fi restabilit conform eşantioanului discret. Înainte de toate:
cos(2 w0 t )  [ ( w  w0 )   ( w  w0 )] / 2 .
Transformata Fourier a secvenţei
Fie avem un semnal x(t), şi este ales un pas de discretizare S. Funcţia este înlocuită printr-o secvenţă
y[n]  x(nS ) .
Definiţie. Transformata Fourier a unei secvenţe este numită funcţia

Y ( w)   y[n]e
n  
 2 wiSn
(4).
Funcţia Y (w) este o funcţie periodică. Deseori, pentru simplitate, vom presupune S=1, şi în acest
caz perioada funcţiei este egală cu 1. Aceasta este diferenţa fundamentală între transformatele Fourier a
funcţiilor şi a secvenţelor. În acelaşi timp, ambele transformate sunt strîns legate între ele. Fie avem
 
u (t )    (t  nS ) , atunci Y (w)   u (t ) x(t )e 2 wit dt
n  
(5),

adică, este transformata Fourier a produsului a două funcţii, dintre care una este funcţie
generalizată. Conform teoriei generale, transformata Fourier a produsului a două funcţii este egală cu

 u(t )e
 2 wit
convoluţia de imagini ale factorilor. Pentru simplificarea notaţiilor S=1. Găsim U (w)  dt .

 N N
Punem U N ( w)     (t  n)e 2iwt dt = e  2 iwn
. Atragem atenţia la faptul că, aceasta este o funcţie
 n   N n N

periodică cu perioada egală cu 1, prezentată ca suma progresiei geometrice.


e 2 iNw  e 2 i ( N 1) w
Avem U N ( w)  2 iw
. Înmulţim numărătorul şi numitorul la e iw .
1 e
sin( 2 ( N  1 / 2) w)
Obţinem U N ( w)  .
sin( w)
c c
 ( w) sin( 2 ( N  1 / 2)w)
În apropierea la   (w)U N (w)dw 
c

c
iw
dw se pretinde către N   la

n
 (0) . Pentru orice S se poate de scris formula:   (t  Sn)    (w  S ) / S (6).
Relaţiile dintre transformatele Fourier de tip discret şi continue. Frecventa Nyquist.
Utilizînd formulele (5) şi (6) şi, presupunînd adevărată declaraţia despre transformarea Fourier de
la produsul a două funcţii, primim relaţiile:
Y ( w)  U ( w) * X ( w)
unde x(t )  X ( w) ,
de unde reiese:

72
n
Y ( w)   X ( w  ) / S (7)
S
Această formulă stabileşte legătura între transformata Fourier de tip continuu şi cea de tip discret.
După cum urma de aşteptat, Y (w) are perioada 1/ S , ceea ce este în concordanţă cu (4).

Comenzile MATLAB utilizate


Comenzi de uz general
Length size
Operatori şi simboluri speciale
: . + - * / ; % == ~ & |
Matrici elementare şi operaţiile asupra lor
ones linspace pi
Funcţii elementare
abs cos exp
Grafică bidimensională
axis grid plot stem title xlabel ylabel
Funcţii grafice de uz general
clf grid plot stem subplot
Funcţii ale pachetului de prelucrare a semnalelor
butter buttord cheb1ord cheb2ord cheby1 cheby2 ellip
ellipord freqz sinc

73
Program 7_1
Aici vom transforma condiţionat un semnal continuu într-un semnal discret corespunzător, cu
redarea ambelor grafice.
% Program P5_1
% Ilustrarea procesului de discretizare în domeniul de timp
clf;
t=0:0.0005:1;
f=13;
xa=cos(2*pi*f*t);
subplot(2,1,1);
plot(t,xa); grid;
xlabel('Timpul, msec');
ylabel('Amplitudinea');
title('Semnal continuu în timp x_{a}(t)');
axis([0 1 -1.2 1.2]);
subplot(2,1,2);
T=0.1;
n=0:T:1;
xs=cos(2*pi*f*n);
k=0:length(n)-1;
stem(k,xs); grid;
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Semnal discret în timp x[n]');
axis([0 (length(n)-1) -1.2 1.2]);

Rezultatul programului:
Semnal continuu în timp x a(t)

1
Amplitudinea

0.5

-0.5

-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Timpul, msec
Semnal discret în timp x[n]
1
Amplitudinea

0.5

-0.5

-1
0 1 2 3 4 5 6 7 8 9 10
Timpul n

Program 7_2
Aici vom restabili semnalul continuu din semnalul discret deja existent. În ambele cazuri vom
primi o secvenţă cu o valoare finită de elemente, dar secvenţa semnalului continuu rezultată va fi mai
aproape de continuitate. Restabilirea are loc în timp.

74
%Program P5_2
% Demonstrarea efectului de „imaginaţie” în domeniul de timp
clf;
T=0.1; f=13;
n=(0:T:1)';
xs=cos(2*pi*f*n);
t=linspace(-0.5,1.5,500)';
ya=sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')*xs;
plot(n,xs,'o',t,ya);
grid;
xlabel('Timpul, msec');
ylabel('Amplitudinea');
title('Semnalul continuu restabilit y_{a}(t)');
axis([0 1 -1.2 1.2]);

Rezultatul programului:
Semnalul continuu restabilit y a(t)

0.8

0.6

0.4
Amplitudinea

0.2

-0.2

-0.4

-0.6

-0.8

-1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


Timpul, msec

Program 7_3
Programul dat deasemenea restabilişte semnalul continuu dintr-un semnal discret existent, dar
utilizează alt algoritm care lucrează cu frecenţa.
% Program P5_3
% Demonstrarea efectului de „imaginaţie” în domeniul de frecvenţă
clf;
t=0:0.005:10;
xa=2*t.*exp(-t);
subplot(2,2,1);
plot(t,xa); grid;
xlabel('Timpul, msec');
ylabel('Amplitudinea');
title('Semnal continuu x_{a}(t)');
subplot(2,2,2);
wa=0:10/511:10;
ha=freqs(2,[1 2 1],wa);
plot(wa/(2*pi),abs(ha)); grid;

75
xlabel('Frecvenţa, KHz');
ylabel('Amplitudinea');
title('|X_{a}(j/Omega)|');
axis([0 5/pi 0 2]);
subplot(2,2,3);
T=1;
n=0:T:10;xs=2*n.*exp(-n);
k=0:length(n)-1;
stem(k,xs); grid;
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Semnal discret în timp x[n]');
subplot(2,2,4);
wd=0:pi/255:pi;
hd=freqz(xs,1,wd);
plot(wd/(T*pi),T*abs(hd)); grid;
xlabel('Frecvenţa, KHz');
ylabel('Amplitudinea');
title('|X(e^{j/omega})|');
axis([0 1/T 0 2]);

Rezultatul programului:
Semnal continuu x a(t) |Xa(j/Omega)|
0.8 2

0.6 1.5
Amplitudinea

Amplitudinea

0.4 1

0.2 0.5

0 0
0 5 10 0 0.5 1 1.5
Timpul, msec Frecvenţa, KHz
Semnal discret în timp x[n] |X(ej/omega)|
0.8 2

0.6 1.5
Amplitudinea

Amplitudinea

0.4 1

0.2 0.5

0 0
0 5 10 0 0.5 1
Timpul n Frecvenţa, KHz

Program 7_4
Aici se demostrează lucrul filtrului analogic, utilizat la restabilirea semnalului continuu.
% Program P5_4
% Proiectarea filtrului analogic
clf;
Fp=3500; Fs=4500;
Wp=2*pi*Fp; Ws=2*pi*Fs;
[N,Wn]=buttord(Wp,Ws,0.5,30,'s');
[b,a]=butter(N,Wn,'s');
wa=0:(3*Ws)/511:3*Ws;
h=freqs(b,a,wa);

76
plot(wa/(2*pi),20*log10(abs(h))); grid;
xlabel('Frecvenţa, Hz');
ylabel('Adăugare');
title('Răspunsul de creştere');
axis([0 3*Fs -60 5]);

Rezultatul programului:
Răspunsul de creştere

-10

-20
Adăugare

-30

-40

-50

-60
0 2000 4000 6000 8000 10000 12000
Frecvenţa, Hz

77
Lucrare de laborator Nr.8
Tema: Structura filtrelor numerice
Scopul lucrării: De a învăţa cum se construiesc diferite structuri a filtrelor în dependenţă de
proprietăţile dorite a viitoarelor structuri.

Noţiuni generale
În această lucrare de laborator se analizează diferite structuri de filtre (paralelă şi cascadă).
Structura definită a filtrelor permite căpătarea relaţiilor corespunzătoare (convenabile ) între variabilele
interne, şi, în consecinţă, semnalul de ieşire corespunzător.
Orice cauzalitate IIR(Infinite Impulse Response – filtru cu caracteristică infinită a impulsului)
filtrul se caracterizează prin funcţia de transformare:
∑𝑁
𝑘=0 𝑝𝑘 𝑧
−𝑘
𝐻(𝑧) =
1 + ∑𝑁
𝑘=1 𝑑𝑘 𝑧
−𝑘

Filtrele numerice sunt cazuri particulare ale sistemelor liniare invariante. Limitarea semnificativă
datorată realizării fizice a sistemului.
Definiţie: Sistema este numită fizic realizabilă, dacă semnalul la ieşire în momentul de timp t
depinde de semnalul de intrare în momentul de timp ≤ t .
Fie un SLI (sistem liniar invariant) T. Să analizăm întrun punct al secvenţei
 : [0]  1, [t ]  0, t  0 .
Fie T {}  {h[n]} , şi prin definiţie  k [t ]  [t  k ] . Pentru secvenţa arbitrară {x[ n]} este validă
extinderea {x[n]}   x[k ] k . De liniaritate T {x[n]}   x[k ]T { k }, iar de invariantităţii
k k

T { k }  {h[n  k ]} . În cele din urmă, în cazul în care { y[n]}  T {x[n]} , atunci y[n]   x[k ]h[n  k ]
k
(9).
Cu alte cuvinte, reacţia la orice secvenţă se obţine prin convoluţia acestei secvenţe şi secvenţa
{h[ n]} , numită impuls de raspuns sau funcţia de răspuns.

Comenzile MATLAB utilizate:


Comenzi de uz general
Disp length
Operatori şi simboluri speciale
: . + - * / ; %

Matrici elementare şi operaţiile asupra lor


ones pi

Funcţii pachetului de prelucrare a semnalelor


residue latc2tf poly2rc residuez tf2latc zp2sos
Programul 8_1
Cu ajutorul funcţiei din MATLAB zp2sos programul calculează coeficienţii H(z) apelînd funcţia
de tranziţie.
% Programul P6_1
% Tratarea funcţiei de tranziţie în forma coeficienti
num=input('Vectorul coeficientilor numaratorului:');

78
den=input('Vectorul coeficientilor numitorului: ');
[z,p,k]=tf2zp(num,den); sos=zp2sos(z,p,k);
Exemplu:
Vectorul coeficientilor numaratorului:[10,20,30]
Vectorul coeficientilor numitorului: [12,34,45]
sos = 0.8333 1.6667 2.5000 1.0000 2.8333 3.7500

Programul 8_2
Există două forme paralele de realizare funcţiei de conversie cauzale IIR. Prima forma se bazează
pe porţiuni de spaţiu dat, în funcţie de z-1. Ea se realizează cu ajutorul funcţiei MATLAB residuez. Iar
forma a doua depinde de z şi se realizează cu ajutorul funcţiei MATLAB residue.

% Programul P6_2
% Realizarea in forma paralela a functiei de tranzitie IIR
num=input('Vectorul coeficientilor numaratorului ');
den=input('Vectorul coeficientiloe numitorului ');
[r1,p1,k1]=residuez(num,den);
[r2,p2,k2]=residue(num,den);
disp('Forma paralela 1')
disp('Ramasite: '); disp(r1);
disp('Polii: '); disp(p1);
disp('Constanta: '); disp(k1);
disp('Forma paralela 2')
disp('Ramasite: '); disp(r2);
disp('Polii: '); disp(p2);
disp('Constanta: '); disp(k2);

Rezultatul rularii programului:


Vectorul coeficientilor numaratorului [10,20,30]
Vectorul coeficientiloe numitorului [12,34,45]
Forma paralela 1 Forma paralela 2
Ramasite: Ramasite:
0.0833 + 0.1736i -0.3472 - 0.1359i
0.0833 - 0.1736i -0.3472 + 0.1359i

Polii: Polii:
-1.4167 + 1.3202i -1.4167 + 1.3202i
-1.4167 - 1.3202i -1.4167 - 1.3202i

Constanta: Constanta:
0.6667 0.8333

Programul 8_3
În acest program se realizează algoritmul Gray-Markel. Realizarea grilaj cascadă Gray-Markel
funcţiei de taranziţie H(z) de ordinul – N, se bazează pe realizarea grilaj cascadă funcţiei intermediare
de tranzacţie AN(z), avînd acelaşi numitor, ca şi funcţia H(z).
% Programul P6_3
% Structura grilaj cascada Gray-Markel
% k – vectorul parametrilor grilajului
% alpha – vectorul mutiplicatorilor de legatura directa
format long
% introducerea coeficientilor
num=input('Vectorul coeficientilor numaratorului: ');
den=input('Vectorul coeficientilor numitorului: ');
N=length(den)-1; % Gradul polinomului de la numitor

79
k=ones(1,N);
a1=den/den(1);
alpha=num(N+1:-1:1)/den(1);
for ii=N:-1:1,
alpha(N+2-ii:N+1)=alpha(N+2-ii:N+1)-alpha(N-ii+1)*a1(2:ii+1);
k(ii)=a1(ii+1);
a1(1:ii+1)=(a1(1:ii+1)-k(ii)*a1(ii+1:-1:1))/(1-k(ii)*k(ii));
end
disp('Parametrii grilajului: '); disp(k)
disp('Multiplicatorii legaturii directe: '); disp(alpha)
subplot(1,2,1); title('Parametrii grilajului');
bar(k);
subplot(1,2,2); title('Multiplicatorii legaturii directe');
bar(alpha);

Rezultatul rulării programului:


Vectorul coeficientilor numaratorului: [10,20,30]
Vectorul coeficientilor numitorului: [12,34,45]
Parametrii grilajului:
0.596491228070175 3.750000000000000

Multiplicatorii legaturii directe:


2.500000000000000 -5.416666666666667 -5.310672514619883

4 3

3.5 2

1
3

0
2.5
-1
2
-2
1.5
-3

1
-4

0.5 -5

0 -6
1 2 1 2 3

80
Bibliografia
1. Сергиенко A. Б. , Цифровая обработка сигналов, изд. Питер, 2003
2. S.Haykin, B.V. Veen, Signals and Sistems, New Yorc, 1999
3. D.M.Etter, Engineering Problem Solving with MATLAB, Matlab Curriculum Series, 1996

81

S-ar putea să vă placă și