МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЕОМ
ЗВІТ
з лабораторної роботи №3
з дисципліни: «ЦОС»
на тему: «ВИЗНАЧЕННЯ І ДОСЛІДЖЕННЯ
СПЕКТРАЛЬНИХ ХАРАКТЕРИСТИК СИГНАЛІВ»
Мета роботи: Визначити спектр заданого сигналу засобами системи SCILAB. Дослідити властивості сигналу, провівши фільтрацію в частотній області.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Для знаходження частотних характеристик сигналу в практиці ЦОС використовується Дискретне Перетворення Фур’є (ДПФ), а для відтворення сигналу за його спектром – Обернене Дискретне Перетворення Фур’є (ОДПФ).
Прямим та оберненим дискретним перетворенням Фур’є (ДПФ) називають пару взаємооднозначних лінійних перетворень виду (1), (2)
Пряме (ДПФ): (1)
Обернене (ОДПФ): (2)
де: , - послідовність відліків в часовій області;
, - дискретні коефіцієнти Фур’є - один період послідовності в частотній області;
- номер відліку послідовності , що відповідає частоті ;
, Т – тривалість сигналу;
- повертаючий множник , .
При цьому величина називається роздільною здатністю за частотою.
Пряме дискретне перетворення Фур’є (1) призначено для виконання Фур’є - аналізу, тобто визначає спектральні компоненти (складові) сигналу . Обернене перетворення Фур’є (2) забезпечує Фур’є - синтез сигналу за заданим набором спектральних компонент . У загальному випадку послідовності і - комплексні. Якщо ж - дійсна послідовність, то є комплексно спряженою: , . Для дійсних сигналів спектральні компоненти з номерами відповідають від’ємним частотам і не мають фізичного змісту.
Швидким перетворенням Фур’є (ШПФ) називають групу алгоритмів, що суттєво зменшують обчислювальні затрати при обчисленні прямого чи оберненого перетворень у порівнянні з безпосереднім способом, що ґрунтується на формулах (1) чи (2). Серед відомих алгоритмів ШПФ найпростішу структуру має алгоритм Кулі - Тьюкі за основою два (ШПФ2). Його основна ідея полягає в рекурсивному (при ) зведенні -точкових () перетворень до двох -точкових. При часовому проріджені з цією метою застосовується формула розкладу:
(3)
де , , . Якщо обчислюється - точкове перетворення комплексної послідовності, то кількість операцій комплексного множення і додавання в алгоритмі ШПФ рівні:, . У порівнянні з безпосереднім способом обчислення перетворень (1) чи (2), який потребує комплексних множень і комплексних додавань, обчислювальні затрати суттєво скорочуються - приблизно в раз (наприклад, при - в сотні раз).
Крім ноpмуючого постійного множника , в оберненому ДПФ маємо комплексно-спряжені повертаючі множники. Для розробки алгоритму швидкого оберненого ДПФ використовуємо рівність = , що отримується з (2) в результаті операції комплексного спряження. Інакше кажучи, для обчислення оберненого ДПФ послідовності за допомогою алгоритму прямого ШПФ достатньо: знайти комплексно спряжену послідовність ; обчислити її пряме ДПФ - ; виконати операції комплексного спряження і множення на нормуючий множник отриманої послідовності: * .
Фур’є- образ називають комплексним спектром або просто спектром дискретного сигналу.
Комплексну функцію можна виразити через її модуль і аргумент (як і довільне комплексне число): ,
де: називають амплітудним спектром
називають фазовим спектром.
Фільтрація сигналів. Математично процес фільтрації полягає у перетворенні спектру сигналу у відповідності з заданою функцією, що визначає спектральну характеристику фільтра. Залежно від призначення фільтру, а отже і загального виду його частотної характеристики, виділяють такі основні, найбільш розповсюджені, типи фільтрів частотної селекції (вибіркові фільтри):
НЧ- фільтри (low-passfilters) – фільтр низьких частот – пропускає всі частоти нижче заданої;
ВЧ- фільтри (high-passfilters) – фільтр високих частот пропускає всі частоти вище заданої;
смугові фільтри (band-passfilters) – пропускають лише визначену смугу частот;
режекторні фільтри (band-rejectfilters) – пригашають визначену смугу частот.
Апроксимація сигналів. Апроксимація передбачає наближення частотно-фільтрованого сигналу до оригіналу в часовій області, шляхом виконання оберненого перетворення Фур’є.
Теорема Парсеваля
Теорема встановлює зв’язок між енергією дискретного сигналу, обчисленою у часовій та у частотній областях:
,
де: - енергія сигналу, обчислена в часовій області
- енергія сигналу, обчислена в частотній області.
Тобто, якщо аналіз сигналу проводиться в частотній області, ця рівність дозволяє обчислити енергію сигналу безпосередньо за відліками ДПФ, не виконуючи ОДПФ.
1. Завдання
Варіант - 4
Сигнал задано наступним чином:
2.Аналітичний розрахунок кроку дискретизації та періоду сигналу
Виходячи із заданого графіка, сигнал описується фінітною функцією, тривалістю 15с. Перші 5с. (-5 до 0) сигнал має сталу амплітуду 4 од. Наступні 5 с. амплітуда – 0. Наступні 5с. (5 до 10) – амплітуда – 12 од.
Виходячи із заданого графіка, сигнал описується фінітною функцією, тривалістю 14с. Перші 7с. (0 до 7) сигнал має сталу амплітуду -3 од. Наступні 7с. (7-14) амплітуда 6.
3. Текст програми
clc
//очистка екрану
clear
//очистка пам’яті
close,close
//закриття всіх графічних вікон
T=15;m=8;N=2^m;
//задання параметрів вхідного сигналу
p=N/32;k1=N/2-p;k2=N/2+p;
//визначенн параметрів фільтрації
dt=T/N;
//знаходження кроку дискретизації
t1=-5:dt:0-dt;
//задання першого часового проміжку сигналу
t2=0:dt:5-dt;
//задання другого часового проміжку сигналу
t3=5:dt:10-dt;
//задання третього часового проміжку сигналу
t=[t1,t2,t3];
//об’єднання трьох часових проміжків
x1=4+0*t1;
//опис першої частини сигналу
x2=0+0*t2;
//опис другої частини сигналу
x3=12+0*t3;
//опис третьої частини сигналу
x=[x1,x2,x3];
//об’єднання трьох частин сигналу
dw=2*%pi/T;
//визначення роздільної здатності за частотою
w=1:1:N;
//знаходження вектора частот
Sx=fft(x)/(N);
//обрахунок спектральних коефіцієнтів за //алгоритмом ШПФ
figure(1,'BackgroundColor',[1,1,1]);
//відображення в першому графічному вікні вхідного //сигналу та дійсної і уявної частини його //частотного спектру
subplot(3,1,1),plot(t,x),title('Вхідний сигнал - x(n)','position',[T/2,max(x)/2]);
subplot(3,1,2),plot(w,real(Sx)),title('Дійсна частина ШПФ','position',[N/2,max(real(Sx))/2]);
subplot(3,1,3),plot(w,imag(Sx)),title('Уявна частина ШПФ','position',[N/2,max(imag(Sx))/2]);
Sx1=[Sx(1:k1)zeros(1,k2-k1)Sx(k2+1:N)];
//відкидання «p» високих частот спектру
Sx2=[zeros(1,p)Sx(p+1:N-p)zeros(1,p)];
//відкидання «p» низьких частот спектру
Sx3=[Sx(1:N/4-p/2),zeros(1,p),Sx((N/4+p/2)+1:3*N/4-p/2),zeros(1,p),Sx(3*N/4+p/2+1:N)];
//відкидання «p» середніх частот спектру
Sx4=[zeros(1,N/4-p/2),Sx((N/4-p/2)+1:N/4+p/2),zeros(1,N/2-p),Sx(3*N/4-p/2+1:3*N/4+p/2),zeros(1,N/4-p/2)];
//відкидання «p» низьких і «p» високих частот //спектру
figure(2,'BackgroundColor',[1,1,1]);
//відображення в другому графічному вікні //немодифікованого та модифікованих амплітудних //спектрів
subplot(5,2,1),plot(w,abs(Sx)),title('Амплітудний спектр X(k)','position',[N/4,max(abs(Sx))/2]);;
subplot(5,2,3),plot(w,abs(Sx1)),title('Фільтр низьких частот Xm1(k)','position',[N/20,max(abs(Sx1))/2]);
subplot(5,2,5),plot(w,abs(Sx2)),title('фільтр високих частот Xm2(k)','position',[N/20,max(abs(Sx2))/2]);
subplot(5,2,7),plot(w,abs(Sx3)),title('Режекторний фільтр Xm3(k)','position',[N/20,max(abs(Sx3))/2]);
subplot(5,2,9),plot(w,abs(Sx4)),title('Смуговий фільтр Xm4(k)','position',[N/20,max(abs(Sx4))/2]);
x1=N*ifft(Sx);
//відтворення вхідного сигналу за його //немодифікаваним спектром, шляхом знаходження //оберненого перетворення Фур’є
xm1=N*ifft(Sx1);
//відтворення вхідного сигналу за його //модифікаваними спектрами
xm2=N*ifft(Sx2);
xm3=N*ifft(Sx3);
xm4=N*ifft(Sx4);
subplot(5,2,2),plot(t,x1),title('Відновлений сигнал x1(n)','position',[T/4,max(abs(x1))/2]);
//відображення в другому графічному вікні сигналів, //відтворених за різними спектрами
subplot(5,2,4),plot(t,real(xm1)),title('Відновлений сигнал xm1(n)','position',[T/4,max(abs(xm1))/2]);
subplot(5,2,6),plot(t,real(xm2)),title('Відновлений сигнал xm2(n)','position',[T/4,max(abs(xm2))/2]);
subplot(5,2,8),plot(t,real(xm3)),title('Відновлений сигнал xm3(n)','position',[T/4,max(abs(xm3))/2]);
subplot(5,2,10),plot(t,real(xm4)),title('Відновлений сигнал xm4(n)','position',[T/4,max(abs(xm4))/2]);
onePr=100/(N*max(abs(12),abs(0)));
//обрахунок і відображення в консолі значення //похибок для різних типів проведеної фільтрації
bm1=onePr*(sum(abs(x-xm1)))
bm2=onePr*(sum(abs(x-xm2)))
bm3=onePr*(sum(abs(x-xm3)))
bm4=onePr*(sum(abs(x-xm4)))
disp(N,"N=")
disp(p,"p=")
disp(bm1,"bm1=")
disp(bm2,"bm2=")
4. Графіки вхідної послідовності для 256 точок та її частотного спектру
/
5,6. Графіки амплітудних спектрів та відновлених сигналів (для р =N/4)
/
7. Значення похибок відновлених сигналів (у відсотках)
N =256
ε (xm1), %
ε (xm2), %
ε (xm3), %
ε (xm4), %
p=N/4=64
1.3291815
45.042039
2.2920889
45.230073
p=N/8=32
0.9464892
45.12544
1.6297246
45.140129
p=N/16=16
0.7963805
45.502159
1.3504003
45.06616
p=N/32=8
0.6834395
45.833246
1.1346414
45.015155
Висновок:
В даній лабораторній роботі було отримано спектральну характеристику заданого фінітного сигналу. Це зроблено за допомогою системи SCILAB, а саме, шляхом використання вбудованої функцій fft(), яка дозволяє обчислювати швидке перетворення Фур’є N - точкової послідовності. Графік частотного складу сигналу приведено в п. 4.
Крім того, проводилась частотна фільтрація сигналу, тобто відкидання різних частин спектральних коефіцієнтів, а далі - відновлення сигналу за допомогою оберненого швидкого перетворення Фур’є.