• 离散傅里叶变换中的能量守恒公式(帕斯瓦尔定理)及其程序举例验证


    离散傅里叶变换中的能量守恒公式(帕斯瓦尔定理)及其程序举例验证

    一、 离散傅里叶变换中的能量守恒公式

    离散傅里叶变换中的能量守恒公式:

    ∑ n = 0 N − 1 ∣ x [ n ] ∣ 2 = 1 N ∑ k = 0 N − 1 ∣ X [ k ] ∣ 2 (1) \sum\limits_{n = 0}^{N - 1} {|x[n]{|^2}} = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {|X[k]{|^2}} \tag1 n=0N1x[n]2=N1k=0N1X[k]2(1)
    其中, x [ n ] x[n] x[n]原始信号的离散时间域表示, X [ k ] {X[k]} X[k]是信号离散傅里叶变换后的频域表示, N N N是信号的长度。

    该公式表示了信号在时间域和频率域中的能量之间的关系。

    左侧是原始信号的能量,通过计算每个样本值的平方后求和。

    右侧是信号的频率域表示的能量,通过计算每个频率分量的平方求和,并除以信号长度。两者之间存在一个归一化因子 1 N \frac{1}{N} N1,用于保持能量守恒。

    这个公式的意义在于,它表明信号在时间域和频率域中的能量总量是相等的,即信号的能量在傅里叶变换过程中保持不变。

    在该公式中暗含了 n ∈ [ 0 , N − 1 ] , k ∈ [ 0 , N − 1 ] n \in [0,N - 1],k \in [0,N - 1] n[0,N1]k[0,N1].

    二、基于短长度信号程序的验证

    2.1 问题描述

    通过编写matlab程序来简单验证,该能量守恒公式。假设时域信号x=[6,2,5],根据式(1)可得,时间域能量=6×6+2×2+5×5=65。

    2.2 通过matlab程序验证

    所编写的程序如下:

    clc
    clear all
    close all
    % 1.构建一个序列x
    x=[6,2,5];
    N=length(x);
    
    % 2.计算时间域能量energy_time
    energy_time=x*x'
    
    % 3.计算频率域能量energy_frequency
    X=fft(x,N);
    X_module=abs(X);
    energy_frequency=sum(X_module.^2)/N
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    运行结果:
    图1 运行结果比较
    图1 运行结果比较
    根据运行结果(图1),可以很看到时频域能量相等,公式准确。

    三、基于大长度信号程序的验证

    3.1 问题描述

    通过编写matlab程序来验证较长尺度信号的时频域能量守恒公式。
    比如长度为2001采样率为1000的信号:
    x = 10 sin ⁡ ( 2 π ⋅ 300 ⋅ t ) x = 10\sin (2\pi \cdot 300 \cdot t) x=10sin(2π300t)
    的时频域能量守恒。

    3.2 通过matlab程序验证

    clc
    clear all
    close all
    
    % 1.构建一个序列x
    fs=1000;
    dt=1/fs;
    t=0:dt:2;
    x=10*sin(2*pi*300*t)  ;
    
    % 2.计算时间域能量energy_time
    N=length(x);
    energy_time=x*x'
    
    % 3.计算频率域能量energy_frequency
    X=fft(x,N);
    X_module=abs(X);
    energy_frequency=sum(X_module.^2)/N
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    运行结果

    图2 运行结果比较
    图2 运行结果比较

    根据运行结果(图2),可以很看到时频域能量相等,公式准确。

  • 相关阅读:
    用一个例子理解拉格朗日乘数法解决等式约束优化问题
    LeetCode 2347. 最好的扑克手牌
    电脑屏幕录制:录制高清视频画面以及声音
    Python之正则表达式
    manjaro 记录 1 安装流程
    Selenium增加Chrome稳定性的参数
    Halcon实例转OpenCvSharp(C# OpenCV)实现--瓶口缺陷检测(附源码)
    ❤️新版Linux零基础快速入门到精通——第一部分❤️
    Kotlin File writeText appendText appendBytes readBytes readText
    SpringBoot集成Swagger
  • 原文地址:https://blog.csdn.net/qq_18937049/article/details/134170161