'dan vDSP_conv ile otomatik korelasyon gerçekleştirin Bir dizinin (vektör) otomatik korelasyonunu gerçekleştirmem gerekiyor, ancak bunu yapmak için doğru yolu bulmakta zorlanıyorum. Accelerate Framework'den "vDSP_conv" yöntemine ihtiyacım olduğuna inanıyorum, ancak başarılı bir şekilde nasıl kurulacağımı takip edemiyorum. Beni en çok üzen şey, 2 girdiye duyulan ihtiyaç. Belki yanlış fonksiyona sahibim, ama tek bir vektör üzerinde çalışan birini bulamadım.Apple Accelerate Framework
belgeleri
here sitesinden kopyalanan bulunabilir
vDSP_conv
gerçekleştirir iki vektör bağıntı veya kıvrım ya; Tek hassas.
void vDSP_conv (const şamandıra __vDSP_signal [], vDSP_Stride __vDSP_signalStride const yüzer __vDSP_filter [], vDSP_Stride __vDSP_strideFilter, yüzer __vDSP_result [], vDSP_Stride __vDSP_strideResult, vDSP_Length __vDSP_lenResult, vDSP_Length __vDSP_lenFilter);
Parametreler
__vDSP_signal
Input vector A. The length of this vector must be at least __vDSP_lenResult + __vDSP_lenFilter - 1.
__vDSP_signalStride
The stride through __vDSP_signal.
__vDSP_filter
Input vector B.
__vDSP_strideFilter
The stride through __vDSP_filter.
__vDSP_result
Output vector C.
__vDSP_strideResult
The stride through __vDSP_result.
__vDSP_lenResult
The length of __vDSP_result.
__vDSP_lenFilter
The length of __vDSP_filter.
Örneğin, yalnızca bir dizi float x = [1.0, 2.0, 3.0, 4.0, 5.0]
olduğunu varsayalım. Bunun otokorelasyonunu nasıl alırdım?
çıkış otokorelasyon gerçekleştiren float y = [5.0, 14.0, 26.0, 40.0, 55.0, 40.0, 26.0, 14.0, 5.0] //generated using Matlab's xcorr(x) function
Ben sadece örnekle çalıştı. Ama biraz yanlış veri çıkışı veriyor. Neyi yanlış yapıyorum? x = 1 ila 5 ve sonuç 9 (5 * 2 -1) vDSP_conv (x, 1, x, 1, sonuç, 1, 9, 5); -> çıktılar -> 55.0, 40.0, 26.0, 14.0, 5.0, 0.0, 0.0, 0.0, 294.0 – MrHappyAsthma
Sanırım bir hata yaptım, x'i sıfır ile doldurmanız gerekebilir ... Önümdeki Mac'im yok benden, ama daha sonra çıktı (yani en az söylemek için garip) çıktı daha uzun olması gerektiği görünüyor. – Rasman
Blah: P O kokuyor. Onunla uğraşmayı deneyeceğim. Eğer emin olmak için bir yolla karşılaşırsanız o zaman lütfen gönderin: D – MrHappyAsthma