标题:如何在MATLAB中验证函数经fouier变换前后能量是否守恒
只看楼主
moonriver13
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-11
 问题点数:0 回复次数:0 
如何在MATLAB中验证函数经fouier变换前后能量是否守恒
我们知道,fourier变换属于幺正变换,因此其变换前后,空域(或时域)中的能量等于其相应频域中的能量。
以下一段小程序用于简单验证函数在fourier变换前后的能量关系,结果发现fourier变换前后能量不相等,请大侠们指正错误所在:

%%%%%%%%%
x=linspace(-10,10);
y=x.^2; %原函数
yabs=abs(y); %取模
Z=fft(y);
Z=fftshift(Z)./length(Z); %移动函数使能量集中在中央
Zabs=abs(Z);
d1=abs(yabs(2)-yabs(1)); %变换前函数的间隔
d2=abs(Zabs(2)-Zabs(1)); %变换后函数的间隔
E1=sum(yabs.^2.*d1) %变换前函数的总能量
E2=sum(Zabs.^2.*d2) %变换后函数的总能量

得到:
E1 = 8.3245e+005
E2 = 1.3354

补充:
1.程序里认为能量的表达是函数的模的平方的积分
2.认为一维函数的能量是离散后的函数值与相应采样距离的内积之和
3.fft变换时,length(Z)的使用是否正确?
4.变换前的函数自变量x为【-10,10】,而不是【-inf,inf】.

请帮忙指出程序或补充说明中的错误,谢谢,万分感谢!!!
搜索更多相关主题的帖子: MATLAB fouier 函数 能量 守恒 
2008-10-11 21:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-237685-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.311654 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved