Fortran 卷积与信号分辨率

Fortran 卷积与信号分辨率,fortran,convolution,Fortran,Convolution,我意识到输入信号的分辨率会极大地影响卷积的结果。我想知道是否有办法弥补这一点。让我举个例子: 让我们采用Sersic方程: 例如,使用 现在我们求解这个方程,R阶跃为0.1和0.01。例如,对于第一个点(R=0),我们得到\mu(0)=9.82 下一步是卷积数据,在将其转换为计数后(要将其转换为计数,我们可以使用这个简单的方程:data(R)=10^((\mu(R)-25)/(-2.5))。我使用了下面提到的我编写的子程序,但我尝试了其他子程序,得到了相同的结果(PSF为Moffat,半高宽=0

我意识到输入信号的分辨率会极大地影响卷积的结果。我想知道是否有办法弥补这一点。让我举个例子:

让我们采用Sersic方程: 例如,使用

现在我们求解这个方程,R阶跃为0.1和0.01。例如,对于第一个点(R=0),我们得到\mu(0)=9.82

下一步是卷积数据,在将其转换为计数后(要将其转换为计数,我们可以使用这个简单的方程:data(R)=10^((\mu(R)-25)/(-2.5))。我使用了下面提到的我编写的子程序,但我尝试了其他子程序,得到了相同的结果(PSF为Moffat,半高宽=0.5弧秒,其构造方式为总面积等于1):

因此,在这个例子中,对于卷积后分辨率为0.1的数据(以及将计数重新转换为\mu后),我得到\mu(0)*=13.52。对于分辨率为0.01的数据,我得到\mu(0)*=15.52。这是两个数量级的差异!!我做错了什么,或者我如何补偿这种影响


非常感谢您的帮助!

使用什么类型的内核进行卷积?结果的意义是什么?请注意,这看起来不像是编程问题。您可能在这方面运气更好,但不要交叉张贴。如果您在这里提问,请删除此处的问题。我投票将此问题作为离题题结束,因为它根本不是编程问题问题。@VladimirF在另一个网站上寻求帮助的建议是好的。实际上两者都有(数学和编程)。数学部分只用于绘制数据集。告诉我如何卷积数据集?也许另一个卷积例程可以解决问题。内核是moffat,半高宽=0.5(例如)意思是:如果我们观察的是一个椭圆星系,它的光分布由sersic方程给出。但是如果大气中有湍流或者你的望远镜不是很好,那么数据就会被卷积。通常在这种情况下,我们天文学家使用moffat作为PSF分布。我们的想法是对数据进行解算,以便恢复银河系的真实光轮廓。
  sum1 = 0
  DO i = 1,n
    sum1 = 0
    g = i
    DO f = 1,i
      sum1(f) = Data(f)*PSF(g)   
      g = i - f
    ENDDO
    convData(i) = sum(sum1)
  ENDDO 
  convData = convData(n:1:-1)