我想根据以下说明计算IMC
我在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
}
答案 0 :(得分:0)
xcorr
实际上计算所计算的频谱之间的互相关(所有频率上的和贡献),而不是那些频谱的逐点乘法(即对于给定的固定频率)的期望。后者是你提供的一致性定义。
假设生成x
和y
的流程为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))
只是一个简单的问题。