Tôi cần thực hiện tự tương quan của một mảng (vectơ) nhưng tôi gặp khó khăn khi tìm đúng cách để thực hiện điều đó. Tôi tin rằng tôi cần phương pháp "vDSP_conv" từ khung tăng tốc, nhưng tôi không thể làm theo cách thiết lập thành công nó. Điều ném tôi ra nhiều nhất là sự cần thiết cho 2 đầu vào. Có lẽ tôi có chức năng sai, nhưng tôi không thể tìm thấy một chức năng hoạt động trên một vector đơn lẻ.Thực hiện tự tương quan với vDSP_conv từ Khung tăng tốc của Apple
Các tài liệu có thể được tìm thấy here
sao chép từ trang web
vDSP_conv
Thực hiện một trong hai mối tương quan hoặc chập vào hai vectơ; duy nhất chính xác.
trống vDSP_conv (float const __vDSP_signal [], vDSP_Stride __vDSP_signalStride, float const __vDSP_filter [], vDSP_Stride __vDSP_strideFilter, nổi __vDSP_result [], vDSP_Stride __vDSP_strideResult, vDSP_Length __vDSP_lenResult, vDSP_Length __vDSP_lenFilter);
thông số
__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.
Ví dụ, giả sử bạn có một mảng float x = [1.0, 2.0, 3.0, 4.0, 5.0]
. Làm thế nào tôi có thể tự tương quan?
Đầu ra phải được một cái gì đó tương tự như 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
Tôi chỉ cố gắng này với ví dụ của tôi. Nhưng nó xuất ra dữ liệu hơi sai. Tôi đang làm gì sai? x = 1 đến 5 và kết quả là kích thước 9 (5 * 2 -1) vDSP_conv (x, 1, x, 1, kết quả, 1, 9, 5); -> kết quả đầu ra -> 55.0, 40.0, 26.0, 14.0, 5.0, 0.0, 0.0, 0.0, 294.0 – MrHappyAsthma
Tôi nghĩ rằng tôi đã mắc lỗi, bạn có thể cần phải x bằng zeroes ... Tôi không có máy Mac của tôi ở phía trước của tôi, nhưng có vẻ như là đầu vào nên được lâu hơn sau đó đầu ra (đó là lạ để nói rằng ít nhất) – Rasman
Blah: P đó stinks. Tôi cố gắng xáo trộn xung quanh với nó. Nếu bạn đi qua một cách để sửa chữa nó cho chắc chắn sau đó xin vui lòng gửi: D – MrHappyAsthma