Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Зміст роботи
Для виконання даної лабораторної роботи на ПК, повинен бути встановлений математичний пакет – Matlab 6 або пізнішої версії та додаток до математичного пакету для обробки сигналів – Signal Processing Toolbox. А також необхідно знати поняття одномірного та двомірного дискретного прямого та зворотнього перетворення Фур’є та вміти їх застосувати. В ході виконання лабораторної роботи потрібно згенерувати сигнал певної частоти, за допомогою якого передаються дані, даний сигнал повинен містити регулярні складові із певними частотами і випадкову адитивну компоненту з нульовим середнім. За допомогою перетворення Фур’є виділити частоти регулярних складових сигналу, зашумленого перешкодами. Нижче наведений опис та синтаксис функцій дискретних перетворень Фур’є в Matlab, з прикладом виконання роботи. Одномірне дискретне пряме й зворотне перетворення Фур'є: Синтаксис: Y=fft(X) X=ifft(Y) Y=fft(X, n) X=ifft(Y, n) Опис: Дискретні пряме й зворотне перетворення Фур'є для одномірного масиву x довжини N визначаються в такий спосіб:
Функція Y=fft(X) обчислює для масиву даних X дискретне перетворення Фур'є, використовуючи FFT -алгоритм швидкого Фур'є-перетворення. Якщо масив X двовимірний, обчислюється дискретне перетворення кожного стовпця. Функція Y=fft(X, n) обчислює n-крапкове дискретне перетворення Фур'є. Якщо length(X) < n, то відсутні рядки масиву X заповнюються нулями; якщо length(X) > n, те зайві рядки віддаляються. Функція X=ifft(Y) обчислює зворотне перетворення Фур'є для масиву Y. Функція X=ifft(Y, n) обчислює n-крапкове зворотне перетворення Фур'є для масиву Y.
Приклад: Основне призначення перетворення Фур'є – виділити частоти регулярних складових сигналу, зашумленого перешкодами. Розглянемо дані, що надходять із частотою 1000 Гц. Сформуємо сигнал, що містить регулярні складові із частотами 50 Гц й 120 Гц і випадкову адитивну компоненту з нульовим середнім. t=0: 0.001: 0.6; x=sin(2*pi*50*t)+sin(2*pi*120*t); y=x+2*randn(size(t)); plot(y(1: 50), ’red’), grid Рис. 2
На рис. 2 показаний цей сигнал. Дивлячись на нього, важко сказати, які частоти його регулярних складових. Реалізуючи одномірне перетворення Фур'є цього сигналу на основі 512 крапок і побудувавши графік спектральної щільності (рис. 3), можна виділити дві частоти, на яких амплітуда спектра максимальна. Це частоти 120 й 50 Гц.
Y=fft(y, 512); Pyy=Y.*conj(Y)/512; f=1000*(0: 255)/512; figure(2), plot(f, Pyy(1: 256), ’red’), grid Алгоритм: Якщо довжина послідовності вхідних даних є ступенем числа 2, то застосовується алгоритм швидкого перетворення Фур'є з підставою 2, що має максимальну продуктивність. Цей алгоритм оптимізований для роботи з дійсними даними; якщо дані комплексні, то реалізується комплексне перетворення Фур'є. Ефективність першого на 40 % вище другого. Якщо довжина вхідної послідовності не є ступенем числа 2, то застосовується перетворення зі змішаними підставами, які визначаються як прості множники довжини вхідної послідовності, що при необхідності піддається усіканню.
Рис. 3
Час розрахунку істотно залежить від значення довжини послідовності. Якщо значення довжини точно розкладається на прості множники, то обчислення для такої послідовності виконуються досить швидко; якщо ж не всі множники виявляються простими, і навіть їх буде менше, той час обчислення істотно зростає. Якщо порівнювати ефективність обчислень, то перетворення Фур'є з підставою 2 дійсні послідовності з 4096 крапок займає 2.1 з, а комплексної - 3.7 с. Звичайне перетворення Фур'є для послідовності з 4096 крапок займає 7 з, а для послідовності з 4098 крапок - 58 с.
|