Có lẽ bạn dùng cách tương tự của AN908, các lệnh chuyển đổi mất khoảng 200 chu kỳ máy. Sai lệch của chuyển đổi float sang fractional là hiển nhiên, vì fractional chỉ có độ phân giải là

. Do đó, sai lệch trung bình khi chuyển từ float sang fractional là khoảng

.
Theo tài liệu "16-bit Language Tools Libraries" của Microchip thì nhiều hàm thư viện DSP đặt chip vào chế độ làm việc đặc biệt, chúng sẽ đặt CORCON vào stack, điều chỉnh CORCON, sau đó lấy CORCON từ stack để trả về chương trình gọi khi đã thực hiện xong. Do đó bạn phải tìm hiểu xem các lệnh mà bạn dùng có xử lý thanh ghi CORCON hay không, nếu không thì bạn phải tự điều chỉnh thanh ghi CORCON cho thích hợp. Tài liệu đó cũng có đề cập đến việc hầu hết các chương trình con trong thư viện DSP sử dụng số dạng fractional 9.31 để đảm bảo độ chính xác khi tính toán, nhưng kết quả sẽ được trả về ở dạng 1.15. Cần chú ý là chương trình con tính ma trận đảo sẽ dùng số floating point ở cả đầu vào và đầu ra.
Theo tôi, tùy vào độ lớn của ma trận mà bạn thực hiện scaling thích hợp để tránh việc kết quả bị tràn đối với dạng fractional 1.15, tất nhiên làm vậy thì độ chính xác sẽ bị ảnh hưởng đôi chút. Có lẽ lấy ví dụ cụ thể sẽ dễ hình dung hơn, giả sử bạn có ma trận vuông cấp 4, nếu thực hiện cộng 2 ma trận với nhau thì độ lớn của mỗi phần tử phải dưới 0.5. Nếu nhân 2 ma trận với nhau thì bạn cộng 4 tích số với nhau, mỗi tích số phải dưới 0.25, nên mỗi phần tử cũng phải có độ lớn dưới 0.5.
Tôi cũng đang học dsPIC cùng với các bạn, nên không dám 'chỉ giáo' cho ai hết. Tôi rất cảm ơn nếu các bạn không dùng từ này.
Thân,