连贯matlab的虚构部分

时间:2017-01-29 17:16:16

标签: matlab signal-processing

我想根据以下说明计算IMC

How calculate Imaginary part of coherence

我在matlab中写了下面的代码,但结果并不是我所期待的。 该代码是上述说明的有效实现吗? 有人可以用更好的代码帮助我吗?

override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? {
    var holder: ViewHolder
    var retView: View

    if(convertView == null){
        retView = vi.inflate(resource, null)
        holder = ViewHolder()

        holder.image = retView.findViewById(R.id.myImage) as ImageView?

        retView.tag = holder

    } else {
        holder = convertView.tag as ViewHolder
        retView = convertView
    }

    return retView
}

1 个答案:

答案 0 :(得分:0)

xcorr实际上计算所计算的频谱之间的互相关(所有频率上的和贡献),而不是那些频谱的逐点乘法(即对于给定的固定频率)的期望。后者是你提供的一致性定义。

假设生成xy的流程为ergodic,则可以通过计算多个数据块的平均值来估算期望值。考虑到这一点,您的定义中描述的一致性实现可能如下所示:

function [ result ] = coherency( x,y,N )
  % divide data in N equal length blocks for averaging later on
  L  = floor(length(x)/N);
  xt = reshape(x(1:L*N), L, N);
  yt = reshape(y(1:L*N), L, N);

  % transform to frequency domain
  Xf = fft(xt,L,1);
  Yf = fft(yt,L,1);

  % estimate expectations by taking the average over N blocks
  xy = sum(Xf .* conj(Yf), 2)/N;
  xx = sum(Xf .* conj(Xf), 2)/N;
  yy = sum(Yf .* conj(Yf), 2)/N;

  % combine terms to get final result
  result=xy./sqrt(xx.*yy);
end

如果您只想要虚部,那么计算imag(coherency(x,y,N))只是一个简单的问题。