其他分享
首页 > 其他分享> > 功率谱曲线

功率谱曲线

作者:互联网

1.计算功率谱

1.1 原理

幅度谱、相位谱、功率谱是把信号傅里叶变换后的其中的一个特征提取出来,进行可视化。对于二维图像而言:

频谱: F(u,v)=sum(sum( f(x,y)e^(-j2pi(ux/M+vy/N))))

功率谱: p(u,v)=|F(u,v)|^2

1.2 python代码实现

获得图像的功率谱,为一个二维数组。

Fk=np.fft.fftshift(np.fft.fft2(image))
ps=np.absolute((Fk))**2

在这里插入图片描述

2.计算功率谱的方位平均径向剖面

2.1 原理

对二维数组进行极坐标转换,通过np.bincount函数统计极坐标r相同处的功率的平均值。获得一个一维数组。通过matplotlib绘制曲线。

在这里插入图片描述

2.2 python代码实现

nxpix,nypix=float(image.shape[0]),float(image.shape[1])
YY,XX=np.indices((image.shape))#将网格的横纵坐标分别用一个二维数组记录
r=np.sqrt((XX-nxpix/2)**2+(YY-nypix/2)**2)#转化为极坐标
r_int=r.astype(np.int)#转化为整数
weight=np.bincount(r_int.ravel())#记录极坐标r值相同的数量
new_x= np.bincount(r_int.ravel(), r.ravel()) / weight #计算新的横坐标
new_y= np.bincount(r_int.ravel(), power_spectrum.ravel()) / weight #计算新的纵坐标
new_y=np.log(new_y)#对纵坐标取对数

对2011062_185414的HMI(红色)以及GST(蓝色)绘制azimuthally-averaged功率谱:
在这里插入图片描述

标签:int,曲线,np,功率,new,bincount,ravel
来源: https://blog.csdn.net/dengxiaolan_/article/details/118050803