Skip to main content
LibreTexts - Ukrayinska

32.10.1: Аналіз Фур'є в Matlab

  • Page ID
    26775
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Аналіз Фур'є охоплює широкий спектр математики з частинами, які, на перший погляд, можуть здатися зовсім іншими. У науках і техніці процес розкладання функції на більш прості шматки часто називають аналізом. Відповідна операція відновлення функції з цих частин відома як синтез. У цьому контексті термін синтез Фур'є описує акт перебудови, а термін аналіз Фур'є описує процес розбиття функції на суму більш простих частин. У математиці термін аналіз Фур'є часто відноситься до вивчення обох операцій.

    Вступ

    У аналізі Фур'є термін перетворення Фур'є часто відноситься до процесу, який розкладає задану функцію на основні частини. Цей процес призводить до іншої функції, яка описує, скільки кожного основного фрагмента знаходиться в оригінальній функції. Загальноприйнятою практикою є також використання терміну перетворення Фур'є для позначення цієї функції. Однак перетворенню часто дається більш конкретна назва залежно від області та інших властивостей трансформується функції, як описано нижче. Більше того, оригінальна концепція аналізу Фур'є була розширена з часом, щоб застосовуватися до все більш абстрактних та загальних ситуацій, а загальне поле часто називають гармонічним аналізом.

    (Безперервне) перетворення Фур'є

    Найчастіше некваліфікований термін перетворення Фур'є відноситься до перетворення функцій неперервного дійсного аргументу, наприклад часу (t). У цьому випадку перетворення Фур'є описує функцію ƒ (t) через основні комплексні експоненціальні показники різних частот. У терміні звичайної частоти ν перетворення Фур'є задається комплексним числом.

    Оцінювання цієї величини для всіх значень ν дає функцію частотної області.

    Матлаб і БПФ

    Функція БПФ Matlab є ефективним інструментом для обчислення дискретного перетворення Фур'є сигналу.Наступні приклади коду допоможуть вам зрозуміти деталі використання функції БПФ.

    Приклад 1

    Типовим синтаксисом для обчислення БПФ сигналу є БПФ (x, N), де x - сигнал, x [n], який ви хочете перетворити, а N - кількість точок у БПФ. N має бути не менше

    як велика кількість зразків у x [n]. Щоб продемонструвати ефект зміни значення N,

    синтезувати косинус з 30 зразками по 10 зразків за період.

    • n = [0:29];
    • х = cos (2* пі* н/10);

    Визначте 3 різні значення для N. Потім візьміть перетворення x [n] для кожного з 3 значень, які були

    визначено. Функція abs знаходить величину перетворення, оскільки ми не стурбовані розрізненням реальних і уявних компонентів.

    • Н1 = 64;
    • N2 = 128;
    • N3 = 256;
    • Х1 = абс (фут (х, Н1));
    • Х2 = абс (фут (х, Н2));
    • Х3 = абс (фут (х, Н3));

    Шкала частот починається з 0 і поширюється на N - 1 для N-точки БПФ. Потім нормалізуємо масштаб так, щоб він простягався від 0 до 1 - 1/N

    • F1 = [0: N1 - 1] /N1;
    • F2 = [0: N2 - 1] /N2;
    • F3 = [0: N3 - 1] /N3;

    Ділянка кожної з перетворень одна над іншою

    • ділянка (3,1,1)
    • сюжет (F1, X1, '-x'), назва ('N = 64'), вісь ([0 1 0 20])
    • ділянка (3,1,2)
    • сюжет (F2, X2, '-x'), назва ('N = 128'), вісь ([0 1 0 20])
    • ділянка (3,1,3)
    • сюжет (F3, X3, '-x'), назва ('N = 256'), вісь ([0 1 0 20])

    Розглянувши сюжет, видно, що кожна з перетворень дотримується однієї форми, відрізняючись лише кількістю зразків, використовуваних для наближення цієї форми. Що станеться, якщо N збігається з кількістю зразків у x [n]? Щоб це з'ясувати, встановіть N1 = 30. Як виглядає отриманий змову? Чому це виглядає так?

    Приклад 2

    В останньому прикладі довжина x [n] була обмежена 3 періодами в довжину. Тепер давайте виберемо велике значення для N (для перетворення з багатьма точками), і варіюємо кількість повторень основного періоду.

    • n = [0:29];
    • x1 = cos (2*пі*н/10);% 3 періоди
    • x2 = [x1 x1];% 6 періодів
    • x3 = [x1 x1 x1];% 9 періодів
    • N = 2048;
    • Х1 = абс (фут (х1, Н);
    • Х2 = абс (БФ (х2, Н);
    • Х3 = абс (фут (х3, Н);
    • F = [0: N-1] /Н;
    • ділянка (3,1,1)
    • сюжет (F, X1), назва ('3 періоди'), вісь ([0 1 0 50])
    • ділянка (3,1,2)
    • сюжет (F, X2), назва ('6 періодів'), вісь ([0 1 0 50])
    • ділянка (3,1,3)
    • сюжет (F, X3), назва ('9 періодів'), вісь ([0 1 0 50])

    Попередній код видасть три сюжети. Перший сюжет, перетворення 3 періодів косинуса, виглядає як величина 2 sincs з центром першого sinc в 0.1fs, а другий - 0.9fs.

    Другий сюжет також має схожий на sinc-подібний вигляд, але його частота вища, і він має більшу величину при 0:1 fs і 0:9 fs. Аналогічно третій сюжет має більшу синк частоту і величину.

    Оскільки x [n] поширюється на велику кількість періодів, sincs почнуть все більше і більше нагадувати імпульси.

    Але я думав, що синусоїда перетворюється на імпульс, чому ми маємо sincs в частотній області? Коли БПФ обчислюється з N більшим за кількість зразків у x [n], він заповнює зразки після x [n] нулями. Приклад 2 мав x [n], який був довжиною 30 зразків, але БПФ мав N = 2048. Коли Matlab обчислює БПФ, він автоматично заповнює пробіли від n = 30 до n = 2047 нулями. Це як взяти синусоїду і помножити її прямокутною коробкою довжиною 30. Множення коробки і синусоїди в часовій області має призвести до згортки sinc з імпульсами в частотній області. Крім того, збільшення ширини коробки у часовій області має збільшити частоту sinc у частотній області. Попередній експеримент Matlab підтримує цей висновок.

    Визначення сигналів у шумі за допомогою БПФ

    Поширеним використанням перетворень Фур'є є пошук частотних компонентів сигналу, похованого в галасливому сигналі часової області. Розглянемо дані, вибіркові на частоті 1000 Гц. Сформувати сигнал, що містить синусоїду 50 Гц амплітудою 0,7 і 120 Гц амплітудою 1 і пошкодити його деяким середнім нульовим випадковим шумом:

    • Fs = 1000;% Частота дискретизації
    • T = 1/Fs;% Час вибірки
    • L = 1000;% Довжина сигналу
    • t = (0: L-1) * T;% Вектор часу
    • x = 0.7* sin (2* pi* 50* t) + гріх (2* pi* 120* t);
      % Сума синусоїди 50 Гц і синусоїди 120 Гц
    • y = х + 2* ранд (розмір (t));% синусоїдів плюс шум
    • ділянка (ФС*т (1:50), у (1:50))
    • title («Сигнал пошкоджений випадковим шумом нульового середнього»)
    • xlabel ('час (мілісекунди) ')

    Важко визначити частотні компоненти, дивлячись на вихідний сигнал. Перетворення в частотну область, дискретне перетворення Фур'є шумного сигналу y знайдено шляхом прийняття швидкого перетворення Фур'є (БПФ):

    • NFFT = 2 ^ nextpow2 (L);% Наступна потужність 2 від довжини y
    • Y = фут (у, НПФ) /Л;
    • f = FS/2* Лінпростір (0,1, NFFT/2+1);% Ділянка одностороннього амплітудного спектра.
    • сюжет (F, 2* абс (Y (1: NFFT/2+1))
    • title («Односторонній амплітудний спектр y (t) ')
    • xlabel ('Частота (Гц) ')
    • мітка ('|Y (f) |')

    Основна причина, по якій амплітуди не знаходяться точно на 0,7 і 1 - через шум. Кілька виконань цього коду (включаючи переобчислення y) призведуть до різних наближень до 0,7 та 1. Інша причина полягає в тому, що у вас є сигнал кінцевої довжини. Збільшення L з 1000 до 10000 у наведеному вище прикладі дасть набагато кращі наближення в середньому.

    Зовнішні посилання

    Автори та атрибуція