Теорема Парсеваля



Под теоремой Парсеваля обычно понимают унитарность преобразования Фурье. То есть сумма (или интеграл) квадрата функции равна сумме (или интегралу) квадрата результата преобразования. Следует заметить, что общий вид теоремы Парсеваля часто называют Теоремой Планшереля или Обобщенной формулой Рэлея. Теорема была доказана для рядов Марком-Антуаном Парсевалем в 1799 году и была позднее применена к рядам Фурье.

Запись теоремы имеет вид

∫ − ∞ ∞ | x ( t ) | 2 d t = ∫ − ∞ ∞ | F { x ( t ) } | 2 d w , {displaystyle int limits _{-infty }^{infty }|x(t)|^{2}dt=int limits _{-infty }^{infty }|{mathcal {F}}{x(t)}|^{2}dw,}

где F { ⋅ } {displaystyle {mathcal {F}}{cdot }} обозначает непрерывное преобразование Фурье, которое связывает временной или пространственный сигнал x ( t ) {displaystyle x(t)} с его представлением в частотной области X ( f ) {displaystyle X(f)} .

Более общая и точная формулировка теоремы Парсеваля в теории интеграла Фурье выглядит так. Пусть функции f 1 ( x ) {displaystyle f_{1}(x)} и f 2 ( x ) {displaystyle f_{2}(x)} принадлежат пространству L 2 {displaystyle L^{2}} квадратично интегрируемых функций и пусть g 1 ( u ) {displaystyle g_{1}(u)} и g 2 ( u ) {displaystyle g_{2}(u)} соответственно являются их преобразованиями Фурье. Тогда:

∫ − ∞ ∞ g 1 ( u ) g 2 ( u ) d u = ∫ − ∞ ∞ f 1 ( x ) f 2 ( − x ) d x {displaystyle int _{-infty }^{infty }g_{1}(u)g_{2}(u)du=int _{-infty }^{infty }f_{1}(x)f_{2}(-x)dx}

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

∑ i = 0 N − 1 | x ( i ) | 2 = 1 N ∑ k = 0 N − 1 | X ( k ) | 2 {displaystyle sum _{i=0}^{N-1}|x(i)|^{2}={1 over N}sum _{k=0}^{N-1}|X(k)|^{2}} ,

где X ( k ) {displaystyle X(k)} представляет собой дискретное преобразование Фурье сигнала x ( k ) {displaystyle x(k)} , имеющего N {displaystyle N} отсчетов.

Теорема Парсеваля устанавливает равенство между энергией сигнала и энергией его спектра.

Пример кода на языке MATLAB, демонстрирующий теорему Парсеваля

N = 100; % количество отсчетов x = randn(1,N); % нормальное распределение Et = norm(x)^2; % или так: Et = sum(x.^2); fprintf('Энергия сигнала во временной области:%f ', Et); X = fftn(x); Ew = 1/N * norm(X)^2; % или так: Ew = 1/N * sum(abs(X).^2); fprintf('Энергия сигнала в частотной области:%f ', Ew); xnew = ifftn(X); Etn = norm(xnew)^2; % или так: Etn = sum(xnew.^2); fprintf('Энергия сигнала во временной области:%f ', Etn); Результат работы программы ----------------------------- Энергия сигнала во временной области: 94.236108 Энергия сигнала в частотной области: 94.236108 Энергия сигнала во временной области: 94.236108