如何将傅立叶变换概率密度函数提高到分数幂?

时间:2014-05-28 10:57:09

标签: matlab function fft characteristics

通过假设,我测得的概率密度函数(PDF)来自基本分布(E)的 n 卷积。

我有两个分布,其中第一个(F)应该经历比第二个(G)(m_2个卷积)更多的卷积(m_1)。

在傅立叶空间:

F' = E'^m_1
G' = E'^m_2

由于这两个PDF是由相同的基本分布构成的,我应该能够从F计算G的PDF

G' = F'^{m_1/m_2}

采取IFFT我应该有一个与G重叠的分布。

一种天真的方法是简单地计算F的FT并将其提高到1 /整数并测试整数范围。

我的问题是否有任何技巧可以将傅里叶变换后的PDF提升为分数幂。我这样做了,但IFFT的分布远远超出了预期。奇怪的别名错误。

如果他们要对两个PDFS进行卷积,我可能会包含一个填充向量。

我的归一化基于以下事实:k = 0 [ProbF(1,1)]波矢给出了PDF的积分,它应该等于1。

当然,这个假设可能是错误的,但它有世界上所有的理由都是有效的。

我的代码

Inc  = INC1 ;                           % BINS 
null = zeros(1,length(Inc));            % PADDED PROB
Inc  = [ Inc.*-1 (Inc)  ];              % PADDED INC VECTOR
Prob = [ null heightProb1  ]       ;    % PADDED PROB VECTOR

ProbF     = (fft(Prob))         ;
ProbFnorm = ProbF./ProbF(1,1) ;         % NORMALIZED BY K=0 COMPONENT (integral of PDF =1)

m=.79                                   % POWER TO RAISE

ProbFtrans = ((ProbFnorm).^(m));        % 'DECONVOLUTION' IN FOURIER SPACE
ProbIF     = (ifft((ProbFtrans)).*(ProbF(1,1)));    % RETURN TO PROBABILITY SPACE

figure(2);
plot(Inc,ProbIF,'rs')    

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

傅里叶系数通常是复数(除非你的函数是对称的)。

当您将复数提升到分数幂时,您应该非常小心。

例如,考虑

z=1.2 + i*0.65;

然后将z提升为4

>> z^4

ans =

     -1.398293750000001e+00 + 3.174599999999999e+00i

并致电8

>> z^8

ans =

     -8.122859748710933e+00 - 8.878046677500002e+00i

然后尝试获取z^4作为(z^8)^(1/2)

>> (z^8)^(1/2)

ans =

      1.398293750000001e+00 - 3.174600000000000e+00i

惊喜!你没有得到z^4! (错误的标志)

如果您通过z^8潜水而避免使用分数功率和“倒回”z,则可以正确返回z^4

>> (z^8)/z/z/z/z

ans =

     -1.398293750000000e+00 + 3.174599999999998e+00i  

原因在于复平面中分数幂的定义。分数幂是多值函数,通过在复平面中引入分支剪切来使其成为单值函数。第n根z^(1/n)具有n个可能的值,以及
matlab通过将复杂函数z^(1/n)解释为所谓的主分支来挑出其中一个。主要含义是复数^1/n世界中的并不总是反转^n

如果这对你没有任何意义,你应该回顾一些基本的复杂分析,但最重要的是复数的分数幂是棘手的动物。在任何可能的情况下,您都应该尝试使用除法来解决分数幂(如上所示)。

我不确定这会解决你所有的问题,但从你的描述来看,这肯定是你遇到的一个问题。