robust op• Data kinds: matrix × signal → table
• Call: import fullseye as fs; fs.ledger.residue_crt(residues, periods, weights=None, lo=0.0, hi=None, on_outside='warn') -> 'dict' (implementation को सीधे call करना हो तो import residue; residue.residue_crt(residues, periods, weights=None, lo=0.0, hi=None, on_outside='warn') -> 'dict', registry से लेना हो तो opsresidue.get("residue_crt"))
real periods पर weighted robust CRT -> dict।
[lo, hi) में v के लिए v ≡ residues[i] (mod periods[i]) हल करता है। residues में बैंड-अक्ष पहले है, आकार (N,) या (N, ...) — पीछे का हर तत्व स्वतंत्र रूप से हल होता है (एक पिक्सेल, एक नमूना)। weights (समान आकार, या (N,)) बताते हैं कि हर बैंड पर कितना भरोसा है — आमतौर पर उन दो आयामों का गुणनफल जिनसे फ़ेज़ आया; बिना कंट्रास्ट वाले बैंड का कोई वोट नहीं।
विधि: हर नमूने के लिए एक बैंड *संदर्भ* (reference) होता है (Wang & Xia 2010, खंड IV-A: सबसे कम शोर-प्रसरण वाला शेषफल; बैंड i का प्रसरण p_i^2 / w_i माना जाता है, यानी समान फ़ेज़-शोर जिसे भार से मापा गया; समान प्रसरण वाले बैंडों में वह जिसका शेषफल mod Γ साझा शेषफल के सबसे निकट है, समीकरण (55)/(58))। सीमा के भीतर हर उम्मीदवार v = r_ref + k p_ref को फ़ेज़र-सहमति sum_i w_i cos(2 pi (v - r_i)/p_i) (von Mises फ़ेज़-शोर के लिए अधिकतम-संभाविता मानदंड) से अंक दिए जाते हैं; सबसे अच्छे को चिह्नित अवशेषों के व्युत्क्रम-प्रसरण-भारित माध्य से परिष्कृत किया जाता है। उम्मीदवार संदर्भ की अपनी त्रुटि साथ लाता है, इसलिए [lo, hi) के बाहर Γ/4 तक के उम्मीदवार भी स्वीकार किए जाते हैं (इतना कभी नहीं कि एक मान दो बार आए)। 2026-10-15 तक हमेशा सबसे लंबा आवर्तकाल संदर्भ था: समान फ़ेज़-शोर में वह v की इकाइयों में *सबसे शोरयुक्त* शेषफल है, और अप्रत्यक्ष ToF (16/80/120 MHz, σ_φ 0.33 rad) में फ़ोल्डिंग-त्रुटि दर 0.556 थी, जबकि हर परिकल्पना आज़माने पर 0.116; अब यह 0.116 है (सार्वजनिक कच्चा डेटा, 10 फ़्रेम: 0.293 -> 0.131, संपूर्ण डिकोडर के बराबर)।
गारंटी (Wang & Xia 2010, समीकरण (47)): आवर्तकालों को Γ M_i लिखें (Γ उनका साझा गुणनखंड, M_i पूर्णांक)। यदि हर शेषफल-त्रुटि Γ/4 से कम है, तो फ़ोल्डिंग पूर्णांक सटीक हैं और |value - v| < Γ/4, चाहे कोई भी बैंड संदर्भ हो: गलत उम्मीदवार कम से कम एक बैंड को Γ के किसी शून्येतर गुणज से खिसकाता है, जिससे उस बैंड का फ़ेज़र-पद सख़्ती से घटता है (यदि केवल शून्य-भार वाले बैंड ही दो उम्मीदवारों में भेद करते हैं, तो margin 0 है)। फ़ेज़ के रूप में बैंड i की अनुमत त्रुटि 2 pi (Γ/4) / p_i है — सबसे लंबे आवर्तकाल पर सबसे कम। जिस नमूने के शेषफल mod Γ Γ/2 से छोटे चाप में नहीं समाते, वह सिद्ध रूप से उस सीमा के बाहर है (within_bound False; उल्टा निश्चित नहीं — ठीक एक Γ की त्रुटि पकड़ी नहीं जा सकती)। तब क्या हो, यह on_outside तय करता है: "warn" (डिफ़ॉल्ट, ResidueBoundWarning), "raise" (ValueError), "nan" (उन नमूनों का मान NaN, margin 0) या "flag" (केवल within_bound)। असमापवर्त्य आवर्तकालों (स्पष्ट hi) का न Γ है न गारंटी: हर नमूना बाहर है।
लौटाता है {"value", "score", "margin", "residual", "n_candidates", "unambiguous_range", "gamma", "error_bound", "phase_bound_rad", "reference", "within_bound"}: score [-1, 1] में (1 = सभी बैंड पूर्णतः सहमत), margin = सर्वश्रेष्ठ और दूसरे स्थान के अंकों का अंतर (छोटा = लगभग बराबरी — अविश्वसनीय मानें), residual हर बैंड का, v की इकाइयों में; gamma = Γ, error_bound = Γ/4, phase_bound_rad हर बैंड का, reference = हर नमूने में प्रयुक्त बैंड का क्रमांक। hi का डिफ़ॉल्ट lo + आवर्तकालों का लघुत्तम समापवर्त्य है (जब वे समापवर्त्य हों); उससे चौड़ी सीमा अस्वीकार की जाती है, क्योंकि उसमें दो मानों के शेषफल समान होंगे।
सटीकता: परस्पर सहअभाज्य पूर्णांक आवर्तकालों के पूर्णांक शेषफल residue_integer_crt को सटीक रूप से दोहराते हैं।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_itof_multifreq — py -3.11 examples/poc_itof_multifreq.py
• poc_residue_crt — py -3.11 examples/poc_residue_crt.py
table को input के रूप में लेते हैं)—
robust)*Provenance: residue.py — RESIDUE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.