Проверка выполнения теоремы Парсеваля при помощи Matlab

Под теоремой Парсеваля понимают: сумма квадрата функции равна сумме квадрата преобразования.

Т.е.

В дискретном виде теорему записывают таким образом:

Зададим количество отсчётов:

N = 100; 

 Заполним случайными числами:

x = randn(1,N); 

 Посчитаем сумму квадратов:

Et = norm(x)^2; % или так: Et = sum(x.^2);

 Теперь осуществим преобразование Фурье и посчитаем сумму квадратов полученных отсчётов:

X = fftn(x);
Ew = 1/N * norm(X)^2; % или так: Ew = 1/N * sum(X.^2);

 Теперь можно сравнить результаты:

fprintf('Энергия сигнала во временной области: %f \n', Et);
fprintf('Энергия сигнала в частотной области: %f \n', Ew);

 У меня всё получилось 😉

Энергия сигнала во временной области: 135.280954 
Энергия сигнала в частотной области: 135.280954 

 Можете осуществить обратное преобразование Фурье и проверить теорему ещё раз.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий