B(asic)-Spline Basics Carl de Boor
2005_Mesh Deformation using Radial Basis Function for Gradient-based Aerodynamic shape Optimization
FOI-R--1784--SE
Month year
Scientific report
Project number
December 2005
Research area code
A64011
Mobility and Space Technology, incl Materials
Sub area code
Air Vehicles
Sub area code 2
Air Vehicles Technologies
Author(s) Project manager
S. Jakobsson and O. Amoignon
Martin Berggren
Approved by
Monica Dahlen
Head, Systems Technology Scientifically and technically responsible
Forskningsomr˚ ade
A64011
Farkost- och rymdteknik, inkl material
Delomr˚ ade
Luftfarkoster
Delomr˚ ade 2
Flygfarkostteknik
F¨ orfattare Projektledare
S. Jakobsson och O. Amoignon
FOI-R--1784--SE ISSN-1650-1942
Systems Technology Scientific report
December 2005
Issuing organisation
Report number, ISRN
Report type
B-spline
B-splineFrom Wikipedia, the free encyclopediaIn the mathematical subfield of numerical analysis, a B-spline is a spline function that has minimal support with respect to a given degree, smoothness, and domain partition. B-splines were investigated as early as the nineteenth century by Nikolai Lobachevsky from Kazan State University, Russia. A fundamental theorem states that every spline function of a given degree, smoothness, and domain partition, can be represented as a linear combination of B-splines of that same degree and smoothness, and over that same partition.[1] The term B-spline was coined by Isaac Jacob Schoenberg and is short for basis spline.[2] B-splines can be evaluated in a numerically stable way by the de Boor algorithm. Simplified, potentially faster variants of the de Boor algorithm have been created but they suffer from comparatively lower stability.[3][4]In the computer science subfields of computer-aided design and computer graphics, the term B-spline frequently refers to a spline curve parametrized by spline functions that are expressed as linear combinations of B-splines (in the mathematical sense above). A B-spline is simply a generalisation of a Bézier curve, and it can avoid the Runge phenomenon without increasing the degree of the B-spline.Contents1 Definition1.1 Uniform B-spline1.2 Cardinal B-spline2 Notes3 Examples3.1 Constant B-spline3.2 Linear B-spline3.3 Uniform quadratic B-spline3.4 Cubic B-Spline3.5 Uniform cubic B-splines4 See also5 References6 External linksDefinitionGiven m real values t i, called knots, witha B-spline of degree n is a parametric curvecomposed of a linear combination of basis B-splines b i,n of degree n.The P i are called control points or de Boor points. There are m−n-1 control points, and they form a convex hull.The m-n-1 basis B-splines of degree n can be defined, for n=0,1,...,m-2, using the Cox-de Boor recursion formulaNote that j+n+1 can not exceed m-1, which limits both j and n.When the knots are equidistant the B-spline is said to be uniform, otherwise non-uniform. If two knots t j are identical, any resulting indeterminate forms 0/0 are deemed to be 0.Note that when one sums a run of adjacent n-degree basis B-splines one obtains, from this recursionfor any sum withWhen here, then this sum is, by this recursion, identically equal to 1, within the limited subrange, (since this interval excludes the supports of the two basis B-splines in the separate terms at the ends of this sum).Uniform B-splineWhen the B-spline is uniform, the basis B-splines for a given degree n are just shifted copies of each other. An alternative non-recursive definition for the m−n-1 basis B-splines iswithandwhereis the truncated power function.Cardinal B-splineDefine B 0 as the characteristic function of , and B k recursively as the convolution productthen B k are called (centered) cardinal B-splines. This definition goes back to Schoenberg.B k has compact support and is an even function. As the normalized cardinal B-splines tend to the Gaussian function.[5]NotesWhen the number of de Boor control points is one more than the degree and and(thus ), the B-Spline degenerates into a Bézier curve. In particular, the B-Spline basis function b i,n(t) coincides with the n-th degree univariate Bernstein polynomial.[6] The shape of the basis functions is determined by the position of the knots. Scaling or translating the knot vector does not alter the basis functions.The spline is contained in the convex hull of its control points.A basis B-spline of degree nis non-zero only in the interval [t i, t i+n+1] that isIn other words if we manipulate one control point we only change the local behaviour of the curve and not the global behaviour as with Bézier curves.Also see Bernstein polynomial for further details.ExamplesConstant B-splineThe constant B-spline is the simplest spline. It is defined on only one knot span and is not even continuous on the knots. It is just the indicator function for the different knot spans.Linear B-splineThe linear B-spline is defined on two consecutive knot spans and is continuous on the knots, but not differentiable.Uniform quadratic B-splineQuadratic B-splines with uniform knot-vector is a commonly used form of B-spline. The blending function can easily be precalculated, and is equal for each segment in this case.Put in matrix-form, it is:[7]forCubic B-SplineA B-spline formulation for a single segment can be written as:where S i is the i th B-spline segment and P is the set of control points, segment i and k is the local control point index. A set of control points would be where the w i is weight, pulling the curve towards control point P i as it increases or moving the curve away as it decreases.An entire set of segments, m-2 curves (S3,S4,...,S m) defined by m+1 control points (), as one B-spline in t would be defined as:where i is the control point number and t is a global parameter giving knot values. This formulation expressesa B-spline curve as a linear combination of B-spline basis functions, hence the name.There are two types of B-spline - uniform and non-uniform. A non-uniform B-spline is a curve where theintervals between successive control points is not, or not necessarily, equal (the knot vector of interior knot spans are not equal). A common form is where intervals are successively reduced to zero, interpolating control points.Uniform cubic B-splinesCubic B-splines with uniform knot-vector is the most commonly used form of B-spline. The blending function can easily be precalculated, and is equal for each segment in this case. Put in matrix-form, it is:for See alsoSpline (mathematics)Nonuniform rational B-splines (NURBS)De Boor algorithm M-spline I-splineReferences1. ^ Carl de Boor (1978). A Practical Guide to Splines . Springer-Verlag. pp. 113–114.2. ^ Carl de Boor (1978). A Practical Guide to Splines . Springer-Verlag. pp. 114–115.3. ^ Lee, E. T. Y. (December 1982). "A Simplified B-Spline Computation Routine". Computing (Springer-Verlag) 29 (4):365–371. doi:10.1007/BF02246763 (/10.1007%2FBF02246763) .4. ^ Lee, E. T. Y. (1986). "Comments on some B-spline algorithms". Computing (Springer-Verlag) 36 (3): 229–238.doi:10.1007/BF02240069 (/10.1007%2FBF02240069) .5. ^ Brinks R: On the convergence of derivatives of B-splines to derivatives of the Gaussian function, Comp. Appl. Math.,27, 1, 20086. ^ Prautzsch et al., Hartmut (2002). Bezier and B-Spline Techniques . Springer-Verlag. pp. 60–66. ISBN 3540437614.7. ^ Splitting a uniform B-spline curve (/education/CAGDNotes/Quadratic-Uniform-B-Spline-Curve-Splitting/Quadratic-Uniform-B-Spline-Curve-Splitting.html)External linksB-spline on MathWorld (/B-Spline.html)Module B-Splines by John H. Mathews (/mathews/n2003/B-SplinesMod.html)B-splines of third order on a non-uniform grid by Johannes Ruf (/~ruf/ruf_bspline.pdf)FORTRAN code for interpolation using B-splines (/doc/cmlib/doc/dtensbs/Summary.html)bivariate B-spline from numpyComparison between a uniform cubic B-spline (yellow) and a cubic Hermite spline (dark red).(/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html)Interactive B-splines with JSXGraph (http://jsxgraph.uni-bayreuth.de/wiki/index.php/B-splines) Retrieved from "/wiki/B-spline"Categories: Splines | InterpolationThis page was last modified on 18 March 2011 at 21:22.Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. See Terms of Use for details.Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.。
spline
splineSpline: A Comprehensive Guide to Curved InterpolationIntroductionSpline interpolation is a powerful mathematical technique used to create smooth curves or surfaces from a set of scattered data points. It has numerous applications across various fields, including computer graphics, computer-aided design (CAD), computer-aided manufacturing (CAM), and data analysis. In this document, we will explore the concept of splines, their types, algorithms, and applications.1. What is a Spline?A spline can be defined as a mathematical curve that passes through a set of control points or data points while maintaining smoothness. Unlike polynomial curves, splines are more flexible and can handle complex curves with varying degrees of curvature. They offer a higher degree of control and accuracy over the curve's shape and provide a natural representation of curves encountered in real-world applications.2. Types of SplinesThere are several types of splines commonly used in practice, including:a) B-splines: B-splines are piecewise-defined polynomial functions that join together smoothly. They are widely used in computer graphics due to their ability to create smooth curves with local control. B-splines offer advantages such as compact support, local influence, and efficient computation.b) NURBS: NURBS (Non-Uniform Rational B-splines) are an extension of B-splines that incorporate weights to control the influence of control points on the curve. This additional feature allows NURBS to represent complex shapes accurately. NURBS provide a powerful representation for designing and manipulating curves and surfaces.c) Bezier curves: Bezier curves are defined by a set of control points that determine the shape of the curve. They are easyto compute and often used in computer graphics and CAD applications. Bezier curves offer simplicity and intuitive control of the curve's shape.d) Catmull-Rom splines: Catmull-Rom splines are a type of interpolating spline used in computer graphics for creating smooth paths. They pass through each control point and automatically generate tangent vectors to ensure smoothness. Catmull-Rom splines are commonly used for 3D modeling and animation.3. Algorithms for Spline Interpolationa) De Boor's algorithm: De Boor's algorithm is a widely used method for B-spline interpolation. It recursively calculates the B-spline curve by evaluating the basis functions and control points. De Boor's algorithm is efficient and numerically stable, making it suitable for real-time applications.b) Bernstein polynomial: Bezier curves use Bernstein polynomials to calculate the curve's shape. The Bernstein polynomial algorithm is straightforward and only requires basic arithmetic operations. It is widely supported in graphics and CAD software.c) Least squares fitting: Spline interpolation can also be achieved through least squares fitting, where the curve isfitted to the data points by minimizing the sum of squared errors. This approach is often used when dealing with noisy or incomplete data.4. Applications of SplinesSplines find applications in various fields, including:a) Computer graphics: Splines are extensively used in computer graphics for modeling smooth curves and surfaces, character animation, and creating realistic 3D environments.b) CAD/CAM: Splines play a significant role in computer-aided design and manufacturing applications. They enable designers to create complex shapes, interpolate curves, and generate toolpaths for manufacturing processes.c) Data approximation: Splines can be used to approximate data points and recover missing or corrupt data. This is particularly useful in data analysis and signal processing.d) Image processing: Splines are employed in image processing for tasks such as image segmentation,interpolation, and denoising. They help in creating smooth boundaries and enhancing the visual quality of images.ConclusionSplines have revolutionized the way curves and surfaces are represented and interpolated in various domains. The versatility and flexibility they offer make them indispensable in computer graphics, CAD/CAM, data analysis, and image processing. From Bezier curves to B-splines and NURBS, each type of spline has its unique features and applications. Understanding the concepts and algorithms behind splines opens up a world of possibilities for creating smooth, accurate, and visually appealing curves and surfaces.。
IND560 weighing terminal和Fill-560应用软件商品说明书
2Industrial Weighing and MeasuringDairy & CheeseNewsIncrease productivitywith efficient filling processesThe new IND560 weighing terminal enables you to boost speed and precision during the filling process. Choose from a wide range of scales and weigh modules to connect to the terminal.The versatile IND560 excels in control-ling filling and dosing applications, delivering best-in-class performance for fast and precise results in manual, semi-automatic or fully automatic operations. For more advanced filling, the Fill-560 application software adds additional sequences and component inputs. Without complex and costly programming you can quickly con-figure standard filling sequences, or create custom filling and blending applications for up to four compo-nents, that prompt operators for action and reduce errors.Ergonomic design Reducing operator errors is achieved through the large graphic display which provides visual signals.SmartTrac ™, the METTLER TOLEDO graphical display mode for manual operations, which clearly indicate sta-tus of the current weight in relation to the target value, helps operators to reach the fill target faster and more accurately.Connectivity and reliabilityMultiple connectivity options are offered to integrate applications into your con-trol system, e.g. Allen-Bradley ® RIO, Profibus ®DP or DeviceNet ™. Even in difficult vibrating environments, the TraxDSP ™ filtering system ensures fast and precise weighing results. High reli-ability and increased uptime are met through predictive maintenance with TraxEMT ™ Embedded MaintenanceTechnician.METTLER TOLEDO Dairy & Cheese News 22Speed up manual operations with flexible checkweighingB e n c h & F l o o r S c a l e sHygienic design, fast display readouts and the cutting-edge color backlight of the new BBA4x9 check scales and IND4x9 terminals set the standard for more efficient manual weigh-ing processes.Flexibility through customizationFor optimal static checkweighing the software modules ‘check’ and‘check+’ are the right solutions. They allow customization of the BBA4x9 and the IND4x9 for individual activi-ties and needs, e.g. manual portion-ing or over/under control. Flexibility is increased with the optional battery which permits mobility. Hygienic design Easy-to-clean equipment is vital in food production environments. Both the BBA4x9 scale and the IND4x9 ter-minal are designed after the EHEDGand NSF guidelines for use in hygi-enically sensitive areas.Even the back side of the scale stand has a smooth and closed surfacewhich protects from dirt and allowstrouble-free cleaning.Fast and preciseThe colorWeight ® display with a colored backlight gives fast, clear indication when the weight is with-in, below or above the tolerance.The color of the backlight can be chosen (any mixture of red, greenand blue) as well as the condition itrefers to (e.g. below tolerance). The ergonomic design enables operators to work more efficiently due to less exhaustion.Short stability time, typically between 0.5s and 0.8s, ensures high through-put and increased productivity.PublisherMettler-Toledo GmbH IndustrialSonnenbergstrasse 72CH-8603 Schwerzenbach SwitzerlandProductionMarCom IndustrialCH-8603 Schwerzenbach Switzerland MTSI 44099754Subject to technical changes © 06/2006 Mettler-Toledo GmbH Printed in SwitzerlandYellow – weight above toleranceGreen – weight within toleranceRed – weight below toleranceYour benefits• Fast and precise results and operations • Higher profitability• Ergonomic design, simple to operate • Mobility up to 13h due to optional batteryFast facts BBA4x9 and IND4x9• 6kgx1g, 15kgx2g, 30kgx5g (2x3000d), for higher capacity scales: IND4x9 terminal • Weights and measures approved versions 2x3000e • Functions: simple weighing, static checkweighing, dispensing • Color backlight, bar graph • Tolerances in weight or %• 99 Memory locations • Optional WLAN, battery• Meets the IP69k protection standardsagainst high-pressure and steam cleaning • Complete stainless steel construction Immediate checkweighing resultswith color Weight®EHEDGThe colored backlight of the LC display provides easy-to- recognize indication whether the weight is within the tolerancelimits or not.WLANMETTLER TOLEDO Dairy & Cheese News 23HACCP programs, GMP (Good Manufacturing Practice), pathogen monitoring and good cleaning practices are essential for effective food safety plans. Our scales are constructed for compliance with the latest hygienic design guidelines.Hygienic design to improve food safetyMETTLER TOLEDO supports you in complying with the latest food safety standards like BRC, IFS or ISO 22000 by offering solutions which are:• Compliant with EHEDG (European Hygienic Engineering & Design Group) and NSF (National Sanitation Foundation) guidelines • Full V2A stainless steel construc-tions, optional V4A load plates • Smooth surface (ra < 0.8μm)• Easy-to-clean construction, no exposed holes • Radius of inside corners > 3mm• Ingress protection rating up to IP69k• Hermetically sealed loadcellsYour benefits• Reduce biological and chemical contamination risks • Fast and thorough cleaning procedures • Fulfillment of hygiene regulations • Long equipment life thanks to rugged designGuaranteed serviceKeep your business runningAvoid unnecessary downtime with our wide range of service packages.With a range of innovative service solutions offering regulatory compli-ance, equipment calibration, train-ing, routine service and breakdown assistance, you can profit from sus-tained uptime, together with ongoing performance verification and long life of equipment. There is a range of contract options designed to comple-ment your existing quality systems. Each one offers its own unique set of benefits depending on the equipment and its application.4/serviceFast facts PUA579 low profile scale • 300kgx0.05kg – 1500kgx0.2kg • Open design• Lifting device for easy cleaning • EHEDG conform(300 and 600kg models -CS/-FL)• Free size scale dimensions • Approach rampsExample:PUA579 first EHEDG conform floor scaleEHEDGW e i g h P r i c e L a b e l i n gChallenges faced in the packaging area are:• Responding quickly to retailer demands while improving margins • Improving pack presentation • Minimizing downtime and product giveawaysWith a complete offering of cutting-edge weighing technology, high-per-formance printing, and smart soft-ware solutions, we can help you tackle your labeling challenges whether they are very simple or highly demanding. Intuitive human-machine interfaceTouch-screen operator displays withgraphical icons guide the operator intuitively and reduce nearly every operation to just one or two key-strokes. This interface allows reduced operator training as well as increased operating efficiency.Advanced ergonomics and sani-tary designOur weigh-price labelers are made out of stainless steel for extensive pro-tection against food contamination. Careful attention to hygienic design requirements, with no dead spots and few horizontal parts, ensure that the labelers are easy to clean.Modular designOur product offering includes both manual and automatic weigh-price labelers constructed of flexible “build-ing blocks.” Different combinations and configurations can meet specific budget and operational requirements. METTLER TOLEDO will help you toselect the right:• Scale performance • Display technology • Memory capacity • IT connections • Degree of automation• Integration kitsA large range of options and peripher-als give flexibility for meeting unique requirements e.g. wireless network, hard disks, external keyboards, bar code scanners, RFID transponder, dynamic checkweighing, or metal detection.Weigh-price-labeling Ergonomic, modular, fastEtica 2300 standard manual labelerFor individual weight labeling of various products, high- speed weighing, smart printing and fast product changes are essential. METTLER TOLEDO offers static and automated solutions for both manual and high-speed prepack applica-tions. Choose from our Etica and PAS product range.METTLER TOLEDO Dairy & Cheese News 24Etica 2400i combination with automatic stretch wrappersEtica 2430G multi-conveyer weigh-price labeler rangeEfficient label applicatorsThe unique Etica label applicator (Etica G series) does not require an air compressor, allowing savings on initial equipment expense and ongo-ing maintenance costs. Labels are gently applied in any pre-memorized orientation.PAS systems provide motorized height adjustment and places the label in any corner of the package. Users will have a new degree of freedom in planning their case display layouts to maximize both product presentation and consumer impact.Smart label design tools Retailers want labels to carry clear, correct information, in accordance with their traceability and style requirements. Our solutions are equipped with labeldesign software tools which facili-tate the design of labels customizedfor retailers demands. A touch-screenallows the user to create specific labels– even with scanned elements such aslogos and graphics, pre-programmedlabel templates, or RFID.Versatile integration capabilitiesThe engineers at METTLER TOLEDOworked closely with Europe’s leadingautomatic stretch wrapper suppliersto design performance-enhancingand cost-effective weigh-wrap-labelsystem solutions. Achieving a smallsystem footprint means the systemsrequire only slightly more floor spacethan the wrapper alone.The PAS and Etica weigh-price label-ers can be integrated via TCP/IP ina METTLER TOLEDO scale network,in host computer systems and goodsmanagement systems.Etica weigh-price-labeling systems• Static and automatic weigh-price-labeling up to 55 pieces/min.• Operator displays:– 5.7” color back-lighted LCD (Etica 2300 series)– 10.4” high resolution touch screen (Etica 4400 series)• 3 inch graphic thermal printer (125 to 250mm/sec) withfully programmable label format (max. size 80x200mm)• Data memory:– 64 to 256 Mb RAM– 128 Mb to 10 Gb mass storage– Unlimited number of logo graphics and label descriptions• Interfaces:– 1 serial RS232 interface– Optional second RS232 + RS485 + Centronics port– Ethernet network communication interface(10baseT), TCP/IP, 2 USB ports (1)– Optional: hand-held bar code scanner for automatictraceability data processingGarvens PAS 3008/3012 price labelersEtica 4400METTLER TOLEDO Dairy & Cheese News 2FlexMount ® weigh moduleFast, reproducible and reliable batch-ing and filling are key success factors for your production process. Various factors can affect precision: foam can compromise optical/radar sensors, and solids do not distribute evenly in a tank or silo. Our weighing techno-logy is not affected by these condi-tions and provides direct, accurate and repeatable measurement of mass without media contact. In addition our range of terminals and transmit-ters/sensors enable easy connectivity to your control systems.Key customer benefits• Increased precision and consistencyof your material transfer processes• Faster batching process throughsupreme TraxDSP ™ noise and vibration filtering • Minimal maintenance cost Fast facts terminals/transmitters: PTPN and IND130• Exclusive TraxDSP ™ vibration rejection and superior noise filter-ing system • Easy data integration through a variety of interfaces, including Serial, Allen-Bradley ® RIO, Modbus Plus ®, Profibus ® and DeviceNET • IP65 stainless harsh versionsProcess terminal PTPN• Local display for weight indication and calibration checks • Panel-mount or stainless steel desk enclosureIND130 smart weight transmitter• Direct connectivity where no local display is required • Quick setup and run via PC tool • CalFREE ™ offers fast and easy cali-bration without test weights • DIN rail mounting versionPLCIND1306Tank and silo weighing solutions master your batching processesT a n k & S i l o W e i g h i n g S o l u t i o n sBoost your productivity and process uptime with reliable weighing equipment – improved batching speed and precision, maximum uptime at low maintenance cost.TraxDSP ™ ensures accurate results evenin difficult environments with vibrationPTPN process terminalMETTLER TOLEDO Dairy & Cheese News 27Quality data under control?We have the right solutionConsistently improving the quality of your products requires the ability of efficiently controlling product and package quality parameters in a fast-changing and highly competi-tive environment.Competition in the food industry –with high volumes but tight margins – causes demands for efficient quality assurance systems. Statistical Quality Control (SQC) systems for permanent online information and documenta-tion about your key quality para-meters convert into real cost savings.Our solutions for Statistical Quality Control (SQC) combine ease of opera-tion, quality data management and analysis functionality.• We offer mobile compact solutions with embedded SQC intelligence up to networked systems with an SQL database.• The systems are upgradeable and can be expanded and adapted to meet changing customer needs.• Simple and intuitive prompts guide the user through the sample proc-ess, reducing training costs as well as sampling errors.• Realtime analysis and alarms help to take immediate corrective measures and to save money by reducing overfilling.Throughout the manufacturing pro-cess, METTLER TOLEDO SQC solu-tions analyze your important product and package quality parameters andpresent them the way you want, help-ing to comply to legislation, to control and document your product qualityand your profitability.Metal detectionCheckweigher Sample check ® onlinequality data analysis/dairy-cheeseFor more informationMettler-Toledo GmbH CH-8606 Greifensee SwitzerlandTel. +41 44 944 22 11Fax +41 44 944 30 60Your METTLER TOLEDO contact:1. SevenGo ™ portable pH-meter2. In-line turbidity, pH and conductivity sensors3. DL22 Food and beverage analyzer4. Halogen moisture analyzersA wide range of solutions to improve processes1. Statistical Quality Control/Statistical Process Control2. Process weighing3. Predictive maintenance4. Methods of moisture content determinationShare our knowledgeLearn from our specialists – our knowledge and experience are at your disposal in print or online.Learn more about all of our solutions for the dairy and cheese industry at our website. You can find information on a wide range of topics to improve your processes, including case studies,application stories, return-on invest-ment calculators, plus all the product information you need to make aninformed decision.1 2 341423。
Fronts propagating with curvature dependent speed Algorithms Based on Hamilton-Jacobi Formulations
reaching out into the unburnt gas somehow propagate slower than do concave regions which are hot gases surrounding a small unburnt pocket. At the same time, particles along the flame front undergo an increase in volume as they burn, creating a jump in velocity across the flame front. This discontinuity in the velocity field creates vorticity along the burning flame, which can be related to the local curvature, and this new vorticity field contributes to the advection of the propagating flame. Thus, there are at least two distinct ways in which the speed of the moving flame depends on the local curvature. Typically, there have been two types of numerical algorithms employed in the solution of such problems. The first parameterizes the moving front by some variable and discretizes this parameterization into a set of marker points [39]. The positions of the marker points are updated in time according to approximations to the equations of motion. Such techniques can be extremely accurate in the attempt to follow the motions of small perturbations. However, for large, complex motion, several problems soon occur. First, marker particles come together in regions where the curvature of the propagating front builds, causing numerical instability unless a regridding technique is employed. The regridding mechanism usually contains a error term which resembles diffusion and dominates the real effects of curvature under analysis. Secondly, such methods suffer from topological problems; when two regions "burn" together to form a single one, ad-hoc techniques to eliminate parts of the boundary are required to make the algorithm work. Other algorithms commonly employed fall under the category of "volume of fluid " techniques, which, rather than track the boundary of the propagating front, track the motion of the interior region. An example of this type of algorithm is SLIC [26]. In these algorithms, the interior is discretized, usually by employing a grid on the domain and assigning to each cell a "volume fraction" corresponding to the amount of interior fluid currently located in that cell. An advantage of such techniques is that no new computational elements are required as the calculation progresses (unlike the parameterization methods), and complicated topological boundaries are easily handled, see [4,32]. Unfortunately, it is difficult to calculate the curvature of the front from such a representa-
《计算机辅助几何造型技术》1
计算机辅助几何造型技术主讲教师:秦开怀教授、博导qkh-dcs@所在单位:清华大学计算机科学与技术系 时间:2007年9月~2008年1月Textbooks/ReferencesJ. Hoschek& D. Lasser, Fundamentals of Computer Aided Geometric Design A K Peters Computer Aided Geometric Design, A K Peters, Ltd, Massachusetts, 1993.David F Rogers Introduction to NURBS Morgan David F Rogers,Introduction to NURBS, Morgan Kaufmann,2001.L Piegl&W Tiller The NURBS Book(2L. Piegl & W. Tiller, The NURBS Book (2nd Edition), Springer-Verlag Berlin Heidelberg, NewYork, 1997.York1997Carl deBoor, A Practical Guide to Splines, New York, Springer Verlag, 1978.York Springer-Verlag1978(Continued)M. E. Mortenson, Geometric Modeling , J h W l &S I 1985John Waley & Sons, Inc., 1985. G. Farin, Curves and Surfaces for ,Computer Aided Geometric Design (5th Edition), Elsevier Inc., 2002.(李双喜译,),,(CAGD 曲线曲面,科学出版社,2006)E J Stollnitz T DeRose &D H Salesin E. J. Stollnitz, T. DeRose & D. H. Salesin, Wavelets for Computer Graphics, Theory & Morgan Kaufmann PublishersApplications , Morgan Kaufmann Publishers, Inc., San Francisco, 1996.(Continued)Denis Zorin & Peter Schroder, Subdivision for M d li d A i ti SIGGRAPH 2000Modeling and Animation , SIGGRAPH 2000 Course Notes #23, 2000. R. Barzel, Physically-Based Modeling for Computer Graphics, A Structured Approach,Academic Press, Inc., San Diego, 1992.D. N. Metaxas, Physic-Based Deformable ,yModels, Applications to Computer Vision, Graphics & Medical Imaging , Kluwer Academicp g g ,Publishers, Massachusetts, 1997.(Continued)Donald Hearn & M.Pauline Baker, C t G hi ith O GL (Thi d Computer Graphics with OpenGL (Third Edition), Pearson Education, 2004 (中译本赫恩等著本:赫恩等著, 蔡士杰等译,《计算机图形学(第三版)》, 电子工业出版社, 200506)2005-06.) J. D. Foley, et al, Computer Graphics: y,,p pPrinciples & Practice (2nd Edition in C),Addison-Wesley, Reading, MA, 1996.y,g,,G di P li Grading PolicyThree assignments 30%Discussions/learning in classroom 5% One project substituting for the final p j g examination 65%R kRemarksThe three assignment is to be completed individually on yourself, but discussions among fellow students areyourself but discussions among fellow students areallowed.The project substitutes for the final examination Two The project substitutes for the final examination. Twostudents can work together as a group.Absolutely no sharing or copying of any code for both Absolutely no sharing or copying of any code for boththe assignments and the project! Offenders will be givena failure grade and the case will be reported to theg pdepartment.You are welcome to turn off your mobile phone before You are welcome to turn off your mobile phone beforeattending lectures.This course concentrates on seven main issues:i iNURBS curves and surfaces (including Bezier, B-spline curves and surfaces)gTriangular surfacesGordon-Coons surfacesSubdivision surfaces of arbitrary topologySubdivision surfaces of arbitrary topologyThe 2nd generation wavelets for multi-resolution modelingmodelingSolid modelingNew technology for geometric modelingContents of This Course1.Introduction2.∆Mathematic BasicsAffine mapsAffine mapsDivided differenceFunction spaceGeometric basics from curves and surfaces 3.∆Interpolatory Polynomial SplinesHermite interpolationHermite interpolationContents of This Course Contents of This Course (Continued)Quadric polynomial spline curvesCubic polynomial spline curvesSolving a linear system of equations with a g y q tridiagonal coefficient matrix Cubic parametric spline curves Cubic parametric spline curves4.*Bezier Curves and Surfaces Bezier curves defined by edge vectorsBernstein-Bezier curvesProperties of Bernstein-Bezier curves(Continued)De Casteljau algorithmDi t ti f B iDiscrete generation of Bezier curvesDegree elevation of Bezier curvesD d i f B iDegree reduction of Bezier curvesBezier spline curvesBezier interpolation curvesMatrix formula of Bezier curvesRational Bezier curvesProduct & inner product of Bezier curves Bezier surfaces(Continued)5.*B-spline Curves and SurfacesB-spline basis functions and their p ppropertiesB-spline curvesOpen curves and knot vectorsOpen curves and knot vectorsUniform B-spline curvesEndpoint interpolating B spline curves Endpoint interpolating B-spline curvesClosed B-spline curves(Continued)Chaikin algorithmDe Boor algorithmInserting knots in B-spline curves Inserting knots in B spline curvesBoehm algorithmOlso algorithmGeneral knot insertion for B-spline curvesDegree elevation of B-spline curves Degree elevation of B-spline curvesMarsden identity and recursive degree elevationPrautzsch algorithm(Continued)Arbitrarily high degree elevation for B-spline curvesDegree reduction of B-spline curvesB-spline surfacesInterpolating B-spline curves and p g p surfaces Matrix formulas of B-spline curves and Matrix formulas of B spline curves and surfaces(Continued)Matrix formula of uniform B_spline curvesMatrix formula of non-uniform B_splines Inner product of B-spline curvesGeneralized Marsden identityB-spline curve productInner product of B-spline basis functionsInner product of B-spline curves6.*NURBS Curves and SurfacesNURBS curvesNURBS curvesRepresenting conics using NURBS(Continued)Parameterization of curvesfNURBS surfacesRepresenting quadrics using NURBS surfacesfInterpolating NURBS curves and surfaces 7.Blossoming PrincipleLooking at de Casteljau algorithm from a Looking at de Casteljau algorithm from a blossoming point of viewKnot insertion from a blossoming point of Knot insertion from a blossoming point of view(Continued)Generating de Boor points based on the blossoming principleblossoming principleDegree raising of B-spline curves by blossoming8.* Triangular SurfacesBarycentric coordinatesgTriangular Bezier surfacesContinuity conditions for triangular Bezier ppatchesRational Triangular surfaces(Continued)9.*Gordon-Coons SurfacesCoons surfacesGordon-Coons surfaces on rectanglesGordon-Coons surfaces on triangles0Subd s o Su a s o b a y 10.*Subdivision Surfaces of ArbitraryTopologyCatmull-Clark surfacesCatmull-Clark surfacesDoo-Sabin surfacesContinuity of uniform subdivision surfaces Continuity of uniform subdivision surfacesNon-uniform subdivision surfaces(Continued)Convergence and continuity of non-uniform subdivision surfaces11.*The 2nd Generation Wavelets forMulti-resolution modelingMulti-resolution modelingB-spline wavelets for Multi-resolution modeling Endpoint interpolating B-spline wavelets Endpoint interpolating B-spline waveletsArbitrary Non-uniform B-spline waveletsB-spline wavelets with constraintsB spline wavelets with constraintsSubdivision-based Surface waveletsLoop Subdivision WaveletsCatmull-Clark Subdivision Wavelets√3-subdivision-based Bi-orthogonal Wavelets(Continued)12.∆Scattered Data Interpolation13.*Intersections of Curves and Surfaces14.Solid Modeling14*Solid Modeling15.Parameterization Modeling for ShapeDesign and Feature-based Modeling 16.New Technology for Geometric 16.*New Technology for GeometricModelingHierarchical B splinesHierarchical B-splinesPhysics-based modelingContents of This Course Contents of This Course (Continued)Modeling fractalized scenes (mountains,f lowers etc.)Particle system for modeling fires, clouds, water, forests etc.1.Introduction1. IntroductionSome Applications of CAGDRepresentation of large data setsVisualizing productsAutomatically producing sectionalAutomatically producing sectional drawingsModeling surfaces arising inModeling surfaces arising in construction of cars, ships & airplanesDesigning pipe systems, e.g. in chemical plants(continued)Drawing marine charts and city and relief i h maps in cartographyProduction and quality control, e.g. in q y ,g the sewing machine, textile and shoe industriesPlanning and controlling surgery Creating images in advertising television Creating images in advertising, television and film industries(continued)Constructing virtual environmentsDescribing robot paths and controlling their movementstheir movementsControlling milling machines used in manufacturingCurve modeling with constrained B-spline wavelets 保特征点的多分辨率曲线造型29曲线的多分辨率分段无缝表示30细分曲面带约束的样条曲面小波左图是采用经典B 样条曲面小波分片多分辨率表示的结果,右图是采用带约束B 的样条曲面小波分片多分辨率表示的结果,其中约束施加在接合线处。
Digilent Digital Discovery 参考手册说明书
Digital Discovery Reference ManualThe Digilent Digital Discovery™ is a combined logic analyzer and pattern generator instrument that was created to be the ultimate embedded development companion. The Digital Discovery was designed to optimize channels, speed, and portability. The small form factor facilitates easy storage and provides a whole suite of advanced features to allow you to debug, visualize, and simulate digital signals for most embedded projects. The digital inputs and outputs can be connected to a circuit using simple wire probes or breadboard wires; alternatively, the Digital Discovery High Speed Adapter and impedance-matched probes can be used to connect and utilize the inputs and outputs for more advanced projects. The Digital Discovery is driven by the free WaveForms software and can be configured to be any of the below instruments:∙24-channel digital logic analyzer (1.2…3.3V CMOS, up to 800MS/s(with the High Speed Adapter))∙16-channel pattern generator (1.2…3.3V CMOS, 100MS/s)∙16-channel virtual digital I/O including buttons, switches, and LEDs – perfect for logic training applications∙Two input/output digital trigger signals for linking multiple instruments(1.2…3.3V CMOS)∙ A programmable power supply of 1.2…3.3V/100mA. The same voltage sup plies the Logic Analyzer input buffers and the Pattern Generator input/outputbuffers, for keeping the logic level compatibility with the circuit under test.∙Digital Bus Analyzers (SPI, I²C, UART, I2S, CAN, Parallel)The Digital Discovery was designed for anyone embarking on embeddeddevelopment. Its features and specifications were deliberately chosen to maintain a small and portable form factor, withstand use in a variety of environments, and keep costs down, while balancing the requirements of operating on USB Power.1.1 Architectural Overview and Block DiagramDigital Discovery's high-level block diagram is presented in Figure 2, below. The core of the Digital Discovery 2 is the Xilinx® Spartan®-6 FPGA (specifically, theXC6SLX25-2 device). The WaveForms application automatically programs the Discovery’s FPGA at start-up with a configuration file designed to implement a multi-function test and measurement instrument. Once programmed, the FPGA inside the Discovery communicates with the PC-based WaveForms application via a USB 2.0 connection. The WaveForms software works with the FPGA to control all the functional blocks of the Digital Discovery, including setting parameters, acquiring data, and transferring and storing data into the DDR3 memory. Signals and equations also use certain naming conventions. Signals in the Input block use “DIN” prefix to indicate these are inputs only. Signals in the Input/Output block use “DIO” prefix. Signals at the user co nnectors include “USR” in their names, while signals at the FPGA pins include “FPGA”. Signals at the FPGA pins driving the pull resistors for DIO signals, include “PULL” in their names. DIN inputs are indexed 0 to 23, DIO input/outputs are indexed 24 to 39. Memory signals have the “DDR” prefix. Supply rails show the voltage with the VCC prefix. Referring to the block diagram in Figure 2 below:∙The I/O Level Translators build the bidirectional interface for input/output pins (used in the Pattern Generator, Static IO, and Logic Analyzer) ∙The Input Dividers are the conditioning circuits for the input pins (used in the Logic Analyzer)∙The FPGA banks are supplied at different voltages:o Bank 0, Bank1: VCCIO_PROG, a variable voltage, settable in the range1.2V…3.3V. The logic standard is set to: LVCMOS18_JEDEC. Thethreshold voltage is about 0.45*VCCIO_PROG.o Bank 2: VCC3V3, a fixed voltage of 3.3V.o Bank 3: VCC1V5, a fixed voltage of 1.5V.∙ A replica of VCCIO_PROG is also available to the user, as VCCIO_USR, under the V user switch control.∙The DDR3 Data Memory block stores the Logic analyzer acquired data.∙The Power Supplies and Control block generates all internal supply voltages as well as user supply programmable voltage. The control block also monitorsthe device power consumption for USB compliance.∙The USB Controller interfaces with the PC for programming the volatile FPGA memory after power on or when a new configuration is requested. After that, it performs the data transfer between the PC and FPGA.∙The Calibration Memory stores all calibration parameters. The Digital Discovery includes no analog calibration circuitry. Instead, a calibrationoperation is performed at manufacturing (or by the user), and parameters are stored in memory. The WaveForms software uses these parameters to adjustthe acquired data and the generated signals.In the sections that follow, schematics are not shown separately for identical blocks. For example, the Input Divider is only shown for DIN0 since the schematic for all other DIN1…DIN23 is identical.Figure 2. Digital Discovery Hardware block diagram.2. I/O Level TranslatorsFigure 3 shows the DIO user connectors and Figure 4 shows the I/O level translator for DIO24. DIO25 to DIO31 use similar discrete components, connected to pins1A2…2A3, respectively 1B2…2B3 of IC2.The I/O Level Translators block includes: - Input protection: series PTC (33Ω, positive thermal coefficient thermistor) and parallel ESD/overvoltage diodes to 5.2V and GND. - Voltage level translators, SN74CBT3384C. When DIO_USR signals are driven by the DUT, the voltage at the FPGA pins is limited at VCCIO_SW-1V = 3.3V. When the FPGA drives DIO_USR signals, they pass unlimited trough the low impedanceSN74CBT3384C buffer. - Pull resistors: 10k, individually settable as Pull-Up, Pull-Down or High-Z. This is done with a second FPGA pin associated to each DIO, which can be driven High, Low or HiZ. The Pull-Up voltage is VCCIO_PROG. - DIO_FPGA pin: the bank supply voltage is VCCIO_PROG> The WaveForms software can set VCCIO_PROG from 1.2 to 3.3V. The FPGA input threshold level is about 45% of VCCIO_PROG. The output strength can be set from 2mA to 16mA. The output slew rate can be set as: Quiet, Slow or Fast.Figure 3. DIO user connectors.Figure 4. I/O level translator.The LDO in Figure 5 generates the 4.3V to supply the level translator in Figure 4.The charge-pump in Figure 6 provides the the 6V reference for the clipper in Figure 7.When all ESD diodes protecting DIO_USR in Figure 3 are OFF, Q3B is OFF, and also Q4. If overvoltage is applied on some DIO_USR pins, rising VU5V2_ESD in Figure 7 above 5.2V, Q3B and Q4 turn ON , clipping VU5V2_ESD at approximately 5V.Figure 5. VCCIO_SW supply.Figure 6. VU6V0 supply.Figure Figure 7. Backpowering voltage clipper.3. Input DividersFigure 8 shows the DIN user connector and Figure 9 shows the Input Divider for DIN0. DIN1 to DIN23 use similar input circuitry.The Input Dividers block includes:∙Frequency compensated voltage dividers: 10/11 resistive dividers with compensation for FPGA input capacitance. All the dividers together have thesettable reference voltage VREFIO. Setting VREFIO close to the logicalthreshold voltage provides the highest sensitivity, while setting VREFIO atGND or logical supply voltage increase the noise immunity. The voltage at the FPGA pin:$$V_{DIN\text{_}FPGA}=\dfrac{10}{11}∙V_{DIN\text{_}USR}+\d frac{1}{11}∙V_{REFIO}\label{1}\tag{1}$$∙The reference voltage VREFIO is generated as in Figure 10. DIN_VREF_H and DIN_VREF_L are connected to FPGA pins in bank 1. Bank1 is supplied atVCCIO. VREFIO can be set at:o0V, when DIN_VREF_H = DIN_VREF_L = lowo0.43*VCCIO_PROG, when DIN_VREF_H = high, DIN_VREF_L = lowo VCCIO_PROG, when DIN_VREF_H = DIN_VREF_L = high.∙ESD/Overvoltage protection: Shottky diodes to VCC3V3.∙DIN_FPGA pin: the bank supply voltage is VCCIO_PROG. The WaveForms software can set VCCIO_PROG from 1.2 to 3.3V. The FPGA input thresholdlevel is about 45% of VCCIO_PROG.Figure 8. DIN user connector.Figure 9. Input Divider.Figure 10 VREFIO reference.4. Power supplies and control4.1 Internal power suppliesIn Figure 11, IC16 limits the in-rush current when the device is connected to the USB port. INA214 is a current shunt amplifier, with a gain of 100. With Vref = 0.75V and R163 = 15mΩ, the output voltage is:$$V_{ISNS\text{_}VBUS}=100∙(V_{IN+}-V_{IN-})+0.75V=1.5∙I_{VU5V0}+0.75V\label{2}\tag{2}$$The VBUS voltage is halved to VSNS_VBUS, for being also monitored. IC12 in Figure 11 is a triple power supply, generating the rails of 1.2V for the FPGA core, 1.5V for Bank 3 and DDR3 memory and 3.3V, for various circuits.Figure 11 VBUS monitoring..Figure 12. Internal voltage supplies.4.2 Programmable power supplyIC13 in Figure 13 generates the VCCIO_PROG, the variable voltage to supply the input and IO banks of the FPGA:$$V_{VCCIO\text_PROG}=V_{FB}∙(1+\dfrac{R_{144}}{R_{146}}+\dfrac{R_{144}}{R_{149}} )-V_{VSET\text_VCCIO}∙\dfrac{R_{144}}{R_{146}} =3.42V-V_{VSET\text_VCCIO}∙0.82 \label{3}\tag{3}$$With VVSET_VCCIO ϵ(0…3V), VCCIO_PROG could be theoretically set in the range: VCCIO_PROG ϵ(1.02V…3.42V). IC15 is a current shunt amplifier, with a gain of 100. With Vref = 0.75V and R115 = 50mΩ, the output voltage is:$$V_{ISNS\text_USR}=100∙(V_{IN+}-V_{IN-})+0.75V=5∙I_{VCCIO\text_USR}+0.75V\label{4}\tag{4}$$IC14 is a window comparator: FAULT_USR is logical LOW, when VISNS_USR is either more than 1.5V (IVCCIO_USR>150mA) or less than 0.66V (IVCCIO_USR←18mA). If this happens, the FPGA turns EN_PWR_USR to LOW, which turns both Q1A and Q1B OFF,to protect VCCIO_USR against overcurrent and reverse current respectively. VCCIO_USR is halved to VSNS_USR, for being monitored.Figure 13. VCCIO_PROG supply.Figure 14. VCCIO_USR protection and switch.4.3. Monitoring the power suppliesThe microcontroller in Figure 15 has two roles:1.A/D Conversion of VVSNS_VBUS, VISNS_VBUS, VVSNS_USR, VISNS_USR,representing the voltages and currents consumed from VBUS and VCCIO_USR respectively. The digital results are passed to the FPGA via an SPI interface.2.Storing the calibration parameters computed as a part of the manufacturingtest. During regular behavior, the WaveForms Software reads the parameters and corrects both generated and acquired signals.The DAC in Figure 16 generates the setting voltage for programming the value of VCCIO. IC22 in Figure 17 provides 3V reference voltage for both ADC and DAC above.Figure 15. ATtiny microcontroller.Figure 16. VSET_VCCIO setting DAC.Figure 17. VREF3V0 .5. LEDs and DDR3 MemoryFigure 18 shows the two tricolor LEDs used to symbolize the Digital discovery status. Figure 19 shows the DDR3 memory for the Logic Analyzer buffer.Figure 18. LEDs.Figure 19. DDR3 memory.6. USB ControllerThe USB interface performs two tasks:Programming the FPGA: There is no non-volatile FPGA configuration memory on the Digital Discovery. The WaveForms software identifies the connecteddevice and downloads an appropriate .bit file at power-up, via a Digilent USB-JTAG interface. Adept run-time is used for low level protocols.∙Data exchange: All instrument configuration data, acquired data and status information is handled via a Digilent synchronous parallel bus and USBinterface. Speed up to 20MB/sec. is reached, depending on USB port type and load as well as PC performance.7. FPGAThe core of the Digital Discovery is the Xilinx Spartan6 FPGA circuit XC6SLX25. The configured logic performs:∙Clock management (12MHz and 60 MHz for USB communication, 100MHz and 800MHz for data sampling)∙Acquisition control and Data Storage (Logic Analyzer)∙Digital signal synthesis (for pattern generator and bus protocol controllers) ∙Trigger system (trigger detection and distribution for all instruments)∙Power supplies control and instruments enabling∙Power and temperature monitoring∙Calibration memory control∙Communication with the PC (settings, status data)Block RAM of the FPGA is used for signal synthesis. External DDR3 memory is used for data acquisition.Detail of the trigger system is shown in Figure 20. Each instrument generates a trigger signal when a trigger condition is met. Each trigger signal (including external triggers) can trigger any instrument and drive the external trigger outputs. This way, all the instruments can synchronize to each other.Figure 20. FPGA configuration trigger block diagram.Figure 21 shows the connections to the FPGA banks 0, 1 and 3.Bank 0 is used for IOs. DIO_FPGA pins are the actual input/output pins to be used with the Pattern Generator, Static IO and Logic Analyzer. A DIO_PULL pin can add Pull-Up or Pull-Down resistors to the associated DIO_FPGA pin (see Figure 4).Bank 1 is used for high speed Logic Analyzer inputs. DIN_FPGA are the actual input pins, while DIN_VREF_H and DIN_VREF_L set the reference voltage for the input dividers (see Figure 9).Bank 3 is used as port for the DDR3 memory.Figure 21. FPGA banks 0, 1 and 3.Figure 22 shows the voltage rails and decoupling for the FPGA.The internal core of the FPGA is supplied 1.2V.Banks 0 and 1 are supplied with the programmable VCCIO_PROG. By setting this from 1.2V to 3.3V, both inputs and IOs are set to be compatible with the I/O standard LVCMOS of the respective voltage. Notice that a protected version of VCCIO_PROG is also available to the user, as VCCIO_USR. This can be used to supply the Device/Circuit Under Test.Bank 3 is supplied 1.5V, for compatibility with the DDR3 IC.Bank 2 and VCCAUX are supplied 3.3V.Figure 22. FPGA powering and decoupling.8. AccessoriesThe Digital Discovery package includes;∙One 2×16 fly-wire assembly (datasheet), for the DIN_USR connector. 24DIN signals (various colors), 8 GND wires (black). The connector is keyed so thatthe correct pins are connected to the correct color wires.∙One 2×6 fly-wire assembly (datasheet), for the DIO connectors. Each one includes two VCCIO_USR (red) wires, two GND (black) wires and 8 (colored)signal wires. It has a 2×6 female connector for the Digital Discovery DINconnector, and 1 pin female connectors for the device under test. Additional Accessories that can be added at checkout;∙One High Speed Adapter, for the DIN_USR connector. The High Speed Adapter is an alternative to the 2×16 fly-wire assembly. It provides access for24 twisted cables. The adapter is not keyed, and both orientations can beused as the twisted wires are not color coded. However, if the adapter isplugged in with the ground arrows pointing down, the pins will be located as shown below:∙High Speed Logic Probes (datasheet). Each twisted cable has a GND (black) wire twisted to a DIN_USR (colored) wire. The wire connects to the HighSpeed Adapter via a 2 pin female header, and two 1 pin female connectors to the device under test. A 100Ω resistor is embedded in the signal wire, on the end closest to the device under test. All GND wires should be connected toGround of the device under test.9. Features and PerformancesThis chapter shows the features and performances as described in the Digital Discovery Datasheet. Footnotes add detailed information and annotate the HW description in this Manual.9.1. Logic Analyzer∙24 high-speed input channels (DIN0…23), accessible through one 2×16 connector, used with the Logic Analyzer in Waveforms (560kΩ||10pF)∙16 digital I/Os (DIO24…39) arranged in two Pmod-style (2×6) connectors, used with the Logic Analyzer in Waveforms 1)∙800MSps input sample rate when using maximum 8 inputs (and the High Speed Adapter), 400 MSps with maximum 16 inputs (with the High SpeedAdapter), 200MSps and lower with maximum 32 inputs 2)∙User programmable input and output LVCMOS voltage levels from 1.2V to3.3V 3) (5V compatible 4) )∙100MHz signal input bandwidth∙2Gbit DDR3 acquisition buffer for Logic Analyzer∙Multiple trigger options including pin change, bus pattern, etc 5)∙Digital Bus Analyzers (SPI, I²C, UART, Parallel)9.2. Multi-purpose Digital I/O∙16 digital I/Os arranged in two Pmod-style (2×6) connectors.∙Each of the 16 pins can be configured for input (Logic analyzer) or set as output 6).∙Algorithmic pattern generator (no buffers used) 7)∙Custom pattern buffer/ch.: 32Ksamples∙ROM Logic for implementing user defined Boolean functions and State Machines∙Bus Protocol Controllers (SPI, UART, I²C)∙100MSps max. output sample rate (50MHz maximum output frequency).∙Automatic or manual strength and slew settings for outputs. 8)∙User programmable logic I/O levels from 1.2V to 3.3V (5V compatible) 9),10).9.3. Other features∙USB bus powered∙User power supplies, 1.2V to 3.3V, available in the two Pmod-style connectors (100mA max)∙Twisted wire high-speed cable option for input channels to insure signal integrity∙Free Waveforms 2015 software runs on Windows, MacOS, and Linux∙Cross-triggering between Logic Analyzer, Pattern Generator or external trigger ∙Data file import/export using standard formats∙80X80X25mm, 80g (without accessories)∙includes: USB cable, fly-wire accessoryWritten by Mircea Dabacan, PhD, Technical University of Cluj-Napoca Romania 1) , 6)The 16 DIO lines are primarily intended for the Pattern Generator, protocol controllers and Static IO instruments. For user convenience, some or all of them can be used by the Logic Analyzer also (see footnote 2). However, DIO input circuitry is different compared to DIN. Even more, when driving a DIO pin with the Pattern Generator and reading it back with the Logic Analyzer, the signal is read at the FPGA pin and does not propagate trough the external DIO circuitry. Consequently, when combining DIN and DIO pins in the Logic Analyzer, misalignments can be observed, at high acquisition rate.2)Available combinations in WaveForms:1.200MHz, DIN0...23, DIO24 (31)2.200MHz, DIO24...39, DIN0 (15)3.400MHz, DIN0 (15)4.400MHz, DIO24 (39)5.800MHz, DIN0 (7)6.800MHz, DIO24 (31)3) , 8) , 9)The FPGA DIN and DIO pins are set to LVCMOS18_JEDEC IOSTANDARD. The supply voltage of the associated FPGA banks is set (by user) to any value from 1.2V to 3.3V. The threshold level (at the FPGA pins) is about 45% of the bank supply voltage. For standard voltages of: 1.2V, 1.5V, 1.8V, 2.5V, 3.3V, the threshold levels (at the FPGA pins) are: 0.58V, 0.7V, 0.82V, 1.1V and 1.42V respectively.4) , 10)Setting the voltage to 3.3V, 5V logic inputs are tolerated but the input threshold is 1.42V. LVCMOS 3.3V output signals are compatible to most external logical circuits supplied with 5V.5)Trigger Detectors and Trigger Distribution Networks are implemented in the FPGA. This allows real time triggering and cross-triggering of different instruments within the Digital Discovery device. Using external Trigger inputs/outputs, cross-triggering between multiple Digital Discovery devices is possible.7)Real time implemented in the FPGA configuration.。
AND
S. D. Riemenschneider Department of Mathematical Sciences University of Alberta Edmonton, Alberta T6G 2G1 CANADA
E-mail: sivan@
For Carl de Boor, on the occasion of his sixtieth birthday
Abstract
Suppose is a positive number. Basic theory of cardinal interpolation ensures the existence of the P Gaussian cardinal function L (x) = k2Z ck exp(? (x ? k)2 ), x 2 R, satisfying the interpolatory conditions L (k) = 0k , k 2 Z. One objective of this paper is to derive several additional properties of L . For example, it is shown that L possesses the sign-regularity property sgn L (x)] = sgn sin( x)=( x)], x 2 R, and that jL (x)j 2e8 minf(bjxjc + 1)?1 ; exp(? bjxjc)g, x 2 R. The analysis is based on a simple representation formula for L , and employs some methods from classical function theory. A second consideration in the paper is the Gaussian cardinal-interpolation P operator L , de ned by the equation (L y)(x) := k2Z yk L (x ? k), x 2 R, y = (yk )k2Z . On account of the exponential decay of the cardinal function L , L is a well-de ned linear map from `1 (Z) into L1 (R). Its associated operator-norm kL k is called the Lebesgue constant of L . The latter half of the paper establishes the following asymptotic estimates for the Lebesgue constant: kL k 1, ! 1, and kL k log(1= ), ! 0+. Suitable multidimensional analogues of these results are also given.
Discriminatively Trained Sparse Code Gradients for Contour Detection
Discriminatively Trained Sparse Code Gradientsfor Contour DetectionXiaofeng Ren and Liefeng BoIntel Science and Technology Center for Pervasive Computing,Intel LabsSeattle,W A98195,USA{xiaofeng.ren,liefeng.bo}@AbstractFinding contours in natural images is a fundamental problem that serves as thebasis of many tasks such as image segmentation and object recognition.At thecore of contour detection technologies are a set of hand-designed gradient fea-tures,used by most approaches including the state-of-the-art Global Pb(gPb)operator.In this work,we show that contour detection accuracy can be signif-icantly improved by computing Sparse Code Gradients(SCG),which measurecontrast using patch representations automatically learned through sparse coding.We use K-SVD for dictionary learning and Orthogonal Matching Pursuit for com-puting sparse codes on oriented local neighborhoods,and apply multi-scale pool-ing and power transforms before classifying them with linear SVMs.By extract-ing rich representations from pixels and avoiding collapsing them prematurely,Sparse Code Gradients effectively learn how to measure local contrasts andfindcontours.We improve the F-measure metric on the BSDS500benchmark to0.74(up from0.71of gPb contours).Moreover,our learning approach can easily adaptto novel sensor data such as Kinect-style RGB-D cameras:Sparse Code Gradi-ents on depth maps and surface normals lead to promising contour detection usingdepth and depth+color,as verified on the NYU Depth Dataset.1IntroductionContour detection is a fundamental problem in vision.Accuratelyfinding both object boundaries and interior contours has far reaching implications for many vision tasks including segmentation,recog-nition and scene understanding.High-quality image segmentation has increasingly been relying on contour analysis,such as in the widely used system of Global Pb[2].Contours and segmentations have also seen extensive uses in shape matching and object recognition[8,9].Accuratelyfinding contours in natural images is a challenging problem and has been extensively studied.With the availability of datasets with human-marked groundtruth contours,a variety of approaches have been proposed and evaluated(see a summary in[2]),such as learning to clas-sify[17,20,16],contour grouping[23,31,12],multi-scale features[21,2],and hierarchical region analysis[2].Most of these approaches have one thing in common[17,23,31,21,12,2]:they are built on top of a set of gradient features[17]measuring local contrast of oriented discs,using chi-square distances of histograms of color and textons.Despite various efforts to use generic image features[5]or learn them[16],these hand-designed gradients are still widely used after a decade and support top-ranking algorithms on the Berkeley benchmarks[2].In this work,we demonstrate that contour detection can be vastly improved by replacing the hand-designed Pb gradients of[17]with rich representations that are automatically learned from data. We use sparse coding,in particularly Orthogonal Matching Pursuit[18]and K-SVD[1],to learn such representations on patches.Instead of a direct classification of patches[16],the sparse codes on the pixels are pooled over multi-scale half-discs for each orientation,in the spirit of the Pbimage patch: gray, abdepth patch (optional):depth, surface normal…local sparse coding multi-scale pooling oriented gradients power transformslinear SVM+ - …per-pixelsparse codes SVMSVMSVM … SVM RGB-(D) contoursFigure 1:We combine sparse coding and oriented gradients for contour analysis on color as well as depth images.Sparse coding automatically learns a rich representation of patches from data.With multi-scale pooling,oriented gradients efficiently capture local contrast and lead to much more accurate contour detection than those using hand-designed features including Global Pb (gPb)[2].gradients,before being classified with a linear SVM.The SVM outputs are then smoothed and non-max suppressed over orientations,as commonly done,to produce the final contours (see Fig.1).Our sparse code gradients (SCG)are much more effective in capturing local contour contrast than existing features.By only changing local features and keeping the smoothing and globalization parts fixed,we improve the F-measure on the BSDS500benchmark to 0.74(up from 0.71of gPb),a sub-stantial step toward human-level accuracy (see the precision-recall curves in Fig.4).Large improve-ments in accuracy are also observed on other datasets including MSRC2and PASCAL2008.More-over,our approach is built on unsupervised feature learning and can directly apply to novel sensor data such as RGB-D images from Kinect-style depth ing the NYU Depth dataset [27],we verify that our SCG approach combines the strengths of color and depth contour detection and outperforms an adaptation of gPb to RGB-D by a large margin.2Related WorkContour detection has a long history in computer vision as a fundamental building block.Modern approaches to contour detection are evaluated on datasets of natural images against human-marked groundtruth.The Pb work of Martin et.al.[17]combined a set of gradient features,using bright-ness,color and textons,to outperform the Canny edge detector on the Berkeley Benchmark (BSDS).Multi-scale versions of Pb were developed and found beneficial [21,2].Building on top of the Pb gradients,many approaches studied the globalization aspects,i.e.moving beyond local classifica-tion and enforcing consistency and continuity of contours.Ren et.al.developed CRF models on superpixels to learn junction types [23].Zhu ed circular embedding to enforce orderings of edgels [31].The gPb work of Arbelaez puted gradients on eigenvectors of the affinity graph and combined them with local cues [2].In addition to Pb gradients,Dollar et.al.[5]learned boosted trees on generic features such as gradients and Haar wavelets,Kokkinos used SIFT features on edgels [12],and Prasad et.al.[20]used raw pixels in class-specific settings.One closely related work was the discriminative sparse models of Mairal et al [16],which used K-SVD to represent multi-scale patches and had moderate success on the BSDS.A major difference of our work is the use of oriented gradients:comparing to directly classifying a patch,measuring contrast between oriented half-discs is a much easier problem and can be effectively learned.Sparse coding represents a signal by reconstructing it using a small set of basis functions.It has seen wide uses in vision,for example for faces [28]and recognition [29].Similar to deep network approaches [11,14],recent works tried to avoid feature engineering and employed sparse coding of image patches to learn features from “scratch”,for texture analysis [15]and object recognition [30,3].In particular,Orthogonal Matching Pursuit [18]is a greedy algorithm that incrementally finds sparse codes,and K-SVD is also efficient and popular for dictionary learning.Closely related to our work but on the different problem of recognition,Bo ed matching pursuit and K-SVD to learn features in a coding hierarchy [3]and are extending their approach to RGB-D data [4].Thanks to the mass production of Kinect,active RGB-D cameras became affordable and were quickly adopted in vision research and applications.The Kinect pose estimation of Shotton et. ed random forests to learn from a huge amount of data[25].Henry ed RGB-D cam-eras to scan large environments into3D models[10].RGB-D data were also studied in the context of object recognition[13]and scene labeling[27,22].In-depth studies of contour and segmentation problems for depth data are much in need given the fast growing interests in RGB-D perception.3Contour Detection using Sparse Code GradientsWe start by examining the processing pipeline of Global Pb(gPb)[2],a highly influential and widely used system for contour detection.The gPb contour detection has two stages:local contrast estimation at multiple scales,and globalization of the local cues using spectral grouping.The core of the approach lies within its use of local cues in oriented gradients.Originally developed in [17],this set of features use relatively simple pixel representations(histograms of brightness,color and textons)and similarity functions(chi-square distance,manually chosen),comparing to recent advances in using rich representations for high-level recognition(e.g.[11,29,30,3]).We set out to show that both the pixel representation and the aggregation of pixel information in local neighborhoods can be much improved and,to a large extent,learned from and adapted to input data. For pixel representation,in Section3.1we show how to use Orthogonal Matching Pursuit[18]and K-SVD[1],efficient sparse coding and dictionary learning algorithms that readily apply to low-level vision,to extract sparse codes at every pixel.This sparse coding approach can be viewed similar in spirit to the use offilterbanks but avoids manual choices and thus directly applies to the RGB-D data from Kinect.We show learned dictionaries for a number of channels that exhibit different characteristics:grayscale/luminance,chromaticity(ab),depth,and surface normal.In Section3.2we show how the pixel-level sparse codes can be integrated through multi-scale pool-ing into a rich representation of oriented local neighborhoods.By computing oriented gradients on this high dimensional representation and using a double power transform to code the features for linear classification,we show a linear SVM can be efficiently and effectively trained for each orientation to classify contour vs non-contour,yielding local contrast estimates that are much more accurate than the hand-designed features in gPb.3.1Local Sparse Representation of RGB-(D)PatchesK-SVD and Orthogonal Matching Pursuit.K-SVD[1]is a popular dictionary learning algorithm that generalizes K-Means and learns dictionaries of codewords from unsupervised data.Given a set of image patches Y=[y1,···,y n],K-SVD jointlyfinds a dictionary D=[d1,···,d m]and an associated sparse code matrix X=[x1,···,x n]by minimizing the reconstruction errorminY−DX 2F s.t.∀i, x i 0≤K;∀j, d j 2=1(1) D,Xwhere · F denotes the Frobenius norm,x i are the columns of X,the zero-norm · 0counts the non-zero entries in the sparse code x i,and K is a predefined sparsity level(number of non-zero en-tries).This optimization can be solved in an alternating manner.Given the dictionary D,optimizing the sparse code matrix X can be decoupled to sub-problems,each solved with Orthogonal Matching Pursuit(OMP)[18],a greedy algorithm forfinding sparse codes.Given the codes X,the dictionary D and its associated sparse coefficients are updated sequentially by singular value decomposition. For our purpose of representing local patches,the dictionary D has a small size(we use75for5x5 patches)and does not require a lot of sample patches,and it can be learned in a matter of minutes. Once the dictionary D is learned,we again use the Orthogonal Matching Pursuit(OMP)algorithm to compute sparse codes at every pixel.This can be efficiently done with convolution and a batch version of the OMP algorithm[24].For a typical BSDS image of resolution321x481,the sparse code extraction is efficient and takes1∼2seconds.Sparse Representation of RGB-D Data.One advantage of unsupervised dictionary learning is that it readily applies to novel sensor data,such as the color and depth frames from a Kinect-style RGB-D camera.We learn K-SVD dictionaries up to four channels of color and depth:grayscale for luminance,chromaticity ab for color in the Lab space,depth(distance to camera)and surface normal(3-dim).The learned dictionaries are visualized in Fig.2.These dictionaries are interesting(a)Grayscale (b)Chromaticity (ab)(c)Depth (d)Surface normal Figure 2:K-SVD dictionaries learned for four different channels:grayscale and chromaticity (in ab )for an RGB image (a,b),and depth and surface normal for a depth image (c,d).We use a fixed dictionary size of 75on 5x 5patches.The ab channel is visualized using a constant luminance of 50.The 3-dimensional surface normal (xyz)is visualized in RGB (i.e.blue for frontal-parallel surfaces).to look at and qualitatively distinctive:for example,the surface normal codewords tend to be more smooth due to flat surfaces,the depth codewords are also more smooth but with speckles,and the chromaticity codewords respect the opponent color pairs.The channels are coded separately.3.2Coding Multi-Scale Neighborhoods for Measuring ContrastMulti-Scale Pooling over Oriented Half-Discs.Over decades of research on contour detection and related topics,a number of fundamental observations have been made,repeatedly:(1)contrast is the key to differentiate contour vs non-contour;(2)orientation is important for respecting contour continuity;and (3)multi-scale is useful.We do not wish to throw out these principles.Instead,we seek to adopt these principles for our case of high dimensional representations with sparse codes.Each pixel is presented with sparse codes extracted from a small patch (5-by-5)around it.To aggre-gate pixel information,we use oriented half-discs as used in gPb (see an illustration in Fig.1).Each orientation is processed separately.For each orientation,at each pixel p and scale s ,we define two half-discs (rectangles)N a and N b of size s -by-(2s +1),on both sides of p ,rotated to that orienta-tion.For each half-disc N ,we use average pooling on non-zero entries (i.e.a hybrid of average and max pooling)to generate its representationF (N )= i ∈N |x i 1| i ∈N I |x i 1|>0,···, i ∈N |x im | i ∈NI |x im |>0 (2)where x ij is the j -th entry of the sparse code x i ,and I is the indicator function whether x ij is non-zero.We rotate the image (after sparse coding)and use integral images for fast computations (on both |x ij |and |x ij |>0,whose costs are independent of the size of N .For two oriented half-dics N a and N b at a scale s ,we compute a difference (gradient)vector DD (N a s ,N b s )= F (N a s )−F (N b s ) (3)where |·|is an element-wise absolute value operation.We divide D (N a s ,N b s )by their norms F (N a s ) + F (N b s ) + ,where is a positive number.Since the magnitude of sparse codes variesover a wide range due to local variations in illumination as well as occlusion,this step makes the appearance features robust to such variations and increases their discriminative power,as commonly done in both contour detection and object recognition.This value is not hard to set,and we find a value of =0.5is better than,for instance, =0.At this stage,one could train a classifier on D for each scale to convert it to a scalar value of contrast,which would resemble the chi-square distance function in gPb.Instead,we find that it is much better to avoid doing so separately at each scale,but combining multi-scale features in a joint representation,so as to allow interactions both between codewords and between scales.That is,our final representation of the contrast at a pixel p is the concatenation of sparse codes pooled at all thescales s ∈{1,···,S }(we use S =4):D p = D (N a 1,N b 1),···,D (N a S ,N b S );F (N a 1∪N b 1),···,F (N a S ∪N b S ) (4)In addition to difference D ,we also include a union term F (N a s ∪N b s ),which captures the appear-ance of the whole disc (union of the two half discs)and is normalized by F (N a s ) + F (N b s ) + .Double Power Transform and Linear Classifiers.The concatenated feature D p (non-negative)provides multi-scale contrast information for classifying whether p is a contour location for a partic-ular orientation.As D p is high dimensional (1200and above in our experiments)and we need to do it at every pixel and every orientation,we prefer using linear SVMs for both efficient testing as well as training.Directly learning a linear function on D p ,however,does not work very well.Instead,we apply a double power transformation to make the features more suitable for linear SVMs D p = D α1p ,D α2p (5)where 0<α1<α2<1.Empirically,we find that the double power transform works much better than either no transform or a single power transform α,as sometimes done in other classification contexts.Perronnin et.al.[19]provided an intuition why a power transform helps classification,which “re-normalizes”the distribution of the features into a more Gaussian form.One plausible intuition for a double power transform is that the optimal exponent αmay be different across feature dimensions.By putting two power transforms of D p together,we allow the classifier to pick its linear combination,different for each dimension,during the stage of supervised training.From Local Contrast to Global Contours.We intentionally only change the local contrast es-timation in gPb and keep the other steps fixed.These steps include:(1)the Savitzky-Goley filter to smooth responses and find peak locations;(2)non-max suppression over orientations;and (3)optionally,we apply the globalization step in gPb that computes a spectral gradient from the local gradients and then linearly combines the spectral gradient with the local ones.A sigmoid transform step is needed to convert the SVM outputs on D p before computing spectral gradients.4ExperimentsWe use the evaluation framework of,and extensively compare to,the publicly available Global Pb (gPb)system [2],widely used as the state of the art for contour detection 1.All the results reported on gPb are from running the gPb contour detection and evaluation codes (with default parameters),and accuracies are verified against the published results in [2].The gPb evaluation includes a number of criteria,including precision-recall (P/R)curves from contour matching (Fig.4),F-measures computed from P/R (Table 1,2,3)with a fixed contour threshold (ODS)or per-image thresholds (OIS),as well as average precisions (AP)from the P/R curves.Benchmark Datasets.The main dataset we use is the BSDS500benchmark [2],an extension of the original BSDS300benchmark and commonly used for contour evaluation.It includes 500natural images of roughly resolution 321x 481,including 200for training,100for validation,and 200for testing.We conduct both color and grayscale experiments (where we convert the BSDS500images to grayscale and retain the groundtruth).In addition,we also use the MSRC2and PASCAL2008segmentation datasets [26,6],as done in the gPb work [2].The MSRC2dataset has 591images of resolution 200x 300;we randomly choose half for training and half for testing.The PASCAL2008dataset includes 1023images in its training and validation sets,roughly of resolution 350x 500.We randomly choose half for training and half for testing.For RGB-D contour detection,we use the NYU Depth dataset (v2)[27],which includes 1449pairs of color and depth frames of resolution 480x 640,with groundtruth semantic regions.We choose 60%images for training and 40%for testing,as in its scene labeling setup.The Kinect images are of lower quality than BSDS,and we resize the frames to 240x 320in our experiments.Training Sparse Code Gradients.Given sparse codes from K-SVD and Orthogonal Matching Pur-suit,we train the Sparse Code Gradients classifiers,one linear SVM per orientation,from sampled locations.For positive data,we sample groundtruth contour locations and estimate the orientations at these locations using groundtruth.For negative data,locations and orientations are random.We subtract the mean from the patches in each data channel.For BSDS500,we typically have 1.5to 21In this work we focus on contour detection and do not address how to derive segmentations from contours.pooling disc size (pixel)a v e r a g e p r e c i s i o na v e r a g e p r e c i s i o nsparsity level a v e r a g e p r e c i s i o n (a)(b)(c)Figure 3:Analysis of our sparse code gradients,using average precision of classification on sampled boundaries.(a)The effect of single-scale vs multi-scale pooling (accumulated from the smallest).(b)Accuracy increasing with dictionary size,for four orientation channels.(c)The effect of the sparsity level K,which exhibits different behavior for grayscale and chromaticity.BSDS500ODS OIS AP l o c a l gPb (gray).67.69.68SCG (gray).69.71.71gPb (color).70.72.71SCG (color).72.74.75g l o b a l gPb (gray).69.71.67SCG (gray).71.73.74gPb (color).71.74.72SCG (color).74.76.77Table 1:F-measure evaluation on the BSDS500benchmark [2],comparing to gPb on grayscaleand color images,both for local contour detec-tion as well as for global detection (-bined with the spectral gradient analysis in [2]).Recall P r e c i s i o n Figure 4:Precision-recall curves of SCG vs gPb on BSDS500,for grayscale and color images.We make a substantial step beyondthe current state of the art toward reachinghuman-level accuracy (green dot).million data points.We use 4spatial scales,at half-disc sizes 2,4,7,25.For a dictionary size of 75and 4scales,the feature length for one data channel is 1200.For full RGB-D data,the dimension is 4800.For BSDS500,we train only using the 200training images.We modify liblinear [7]to take dense matrices (features are dense after pooling)and single-precision floats.Looking under the Hood.We empirically analyze a number of settings in our Sparse Code Gradi-ents.In particular,we want to understand how the choices in the local sparse coding affect contour classification.Fig.3shows the effects of multi-scale pooling,dictionary size,and sparsity level (K).The numbers reported are intermediate results,namely the mean of average precision of four oriented gradient classifier (0,45,90,135degrees)on sampled locations (grayscale unless otherwise noted,on validation).As a reference,the average precision of gPb on this task is 0.878.For multi-scale pooling,the single best scale for the half-disc filter is about 4x 8,consistent with the settings in gPb.For accumulated scales (using all the scales from the smallest up to the current level),the accuracy continues to increase and does not seem to be saturated,suggesting the use of larger scales.The dictionary size has a minor impact,and there is a small (yet observable)benefit to use dictionaries larger than 75,particularly for diagonal orientations (45-and 135-deg).The sparsity level K is a more intriguing issue.In Fig.3(c),we see that for grayscale only,K =1(normalized nearest neighbor)does quite well;on the other hand,color needs a larger K ,possibly because ab is a nonlinear space.When combining grayscale and color,it seems that we want K to be at least 3.It also varies with orientation:horizontal and vertical edges require a smaller K than diagonal edges.(If using K =1,our final F-measure on BSDS500is 0.730.)We also empirically evaluate the double power transform vs single power transform vs no transform.With no transform,the average precision is 0.865.With a single power transform,the best choice of the exponent is around 0.4,with average precision 0.884.A double power transform (with exponentsMSRC2ODS OIS APgPb.37.39.22SCG.43.43.33PASCAL2008ODS OIS APgPb.34.38.20SCG.37.41.27Table2:F-measure evaluation comparing our SCG approach to gPb on two addi-tional image datasets with contour groundtruth: MSRC2[26]and PASCAL2008[6].RGB-D(NYU v2)ODS OIS AP gPb(color).51.52.37 SCG(color).55.57.46gPb(depth).44.46.28SCG(depth).53.54.45gPb(RGB-D).53.54.40SCG(RGB-D).62.63.54Table3:F-measure evaluation on RGB-D con-tour detection using the NYU dataset(v2)[27].We compare to gPb on using color image only,depth only,as well as color+depth.Figure5:Examples from the BSDS500dataset[2].(Top)Image;(Middle)gPb output;(Bottom) SCG output(this work).Our SCG operator learns to preservefine details(e.g.windmills,faces,fish fins)while at the same time achieving higher precision on large-scale contours(e.g.back of zebras). (Contours are shown in double width for the sake of visualization.)0.25and0.75,which can be computed through sqrt)improves the average precision to0.900,which translates to a large improvement in contour detection accuracy.Image Benchmarking Results.In Table1and Fig.4we show the precision-recall of our Sparse Code Gradients vs gPb on the BSDS500benchmark.We conduct four sets of experiments,using color or grayscale images,with or without the globalization component(for which we use exactly the same setup as in gPb).Using Sparse Code Gradients leads to a significant improvement in accuracy in all four cases.The local version of our SCG operator,i.e.only using local contrast,is already better(F=0.72)than gPb with globalization(F=0.71).The full version,local SCG plus spectral gradient(computed from local SCG),reaches an F-measure of0.739,a large step forward from gPb,as seen in the precision-recall curves in Fig.4.On BSDS300,our F-measure is0.715. We observe that SCG seems to pick upfine-scale details much better than gPb,hence the much higher recall rate,while maintaining higher precision over the entire range.This can be seen in the examples shown in Fig.5.While our scale range is similar to that of gPb,the multi-scale pooling scheme allows theflexibility of learning the balance of scales separately for each code word,which may help detecting the details.The supplemental material contains more comparison examples.In Table2we show the benchmarking results for two additional datasets,MSRC2and PAS-CAL2008.Again we observe large improvements in accuracy,in spite of the somewhat different natures of the scenes in these datasets.The improvement on MSRC2is much larger,partly because the images are smaller,hence the contours are smaller in scale and may be over-smoothed in gPb. As for computational cost,using integral images,local SCG takes∼100seconds to compute on a single-thread Intel Core i5-2500CPU on a BSDS image.It is slower than but comparable to the highly optimized multi-thread C++implementation of gPb(∼60seconds).Figure6:Examples of RGB-D contour detection on the NYU dataset(v2)[27].Thefive panels are:input image,input depth,image-only contours,depth-only contours,and color+depth contours. Color is good picking up details such as photos on the wall,and depth is useful where color is uniform(e.g.corner of a room,row1)or illumination is poor(e.g.chair,row2).RGB-D Contour Detection.We use the second version of the NYU Depth Dataset[27],which has higher quality groundtruth than thefirst version.A medianfiltering is applied to remove double contours(boundaries from two adjacent regions)within3pixels.For RGB-D baseline,we use a simple adaptation of gPb:the depth values are in meters and used directly as a grayscale image in gPb gradient computation.We use a linear combination to put(soft)color and depth gradients together in gPb before non-max suppression,with the weight set from validation.Table3lists the precision-recall evaluations of SCG vs gPb for RGB-D contour detection.All the SCG settings(such as scales and dictionary sizes)are kept the same as for BSDS.SCG again outperforms gPb in all the cases.In particular,we are much better for depth-only contours,for which gPb is not designed.Our approach learns the low-level representations of depth data fully automatically and does not require any manual tweaking.We also achieve a much larger boost by combining color and depth,demonstrating that color and depth channels contain complementary information and are both critical for RGB-D contour detection.Qualitatively,it is easy to see that RGB-D combines the strengths of color and depth and is a promising direction for contour and segmentation tasks and indoor scene analysis in general[22].Fig.6shows a few examples of RGB-D contours from our SCG operator.There are plenty of such cases where color alone or depth alone would fail to extract contours for meaningful parts of the scenes,and color+depth would succeed. 5DiscussionsIn this work we successfully showed how to learn and code local representations to extract contours in natural images.Our approach combined the proven concept of oriented gradients with powerful representations that are automatically learned through sparse coding.Sparse Code Gradients(SCG) performed significantly better than hand-designed features that were in use for a decade,and pushed contour detection much closer to human-level accuracy as illustrated on the BSDS500benchmark. Comparing to hand-designed features(e.g.Global Pb[2]),we maintain the high dimensional rep-resentation from pooling oriented neighborhoods and do not collapse them prematurely(such as computing chi-square distance at each scale).This passes a richer set of information into learn-ing contour classification,where a double power transform effectively codes the features for linear paring to previous learning approaches(e.g.discriminative dictionaries in[16]),our uses of multi-scale pooling and oriented gradients lead to much higher classification accuracies. Our work opens up future possibilities for learning contour detection and segmentation.As we il-lustrated,there is a lot of information locally that is waiting to be extracted,and a learning approach such as sparse coding provides a principled way to do so,where rich representations can be automat-ically constructed and adapted.This is particularly important for novel sensor data such as RGB-D, for which we have less understanding but increasingly more need.。
清华-计算机图形学chap7-B-Spline-2
Computer GraphicsShi-Min HuShi Min HuTsinghua UniversityTsinghua UniversityToday s TopicsToday’s Topics•Why splines?•B-Spline Curves and properties •B-Spline surfacesB Spline surfaces•NURBS curves and SurfacesWhy to introduce B Spline(BWhy to introduce B-Spline (B样条)•Bezier curve/surface has many advantages, but they have two main shortcomings:e e cu ve/su ace ca ot be od ed oca y–Bezier curve/surface cannot be modified locally(局部修改).–It is very complex to satisfy geometric continuityIt i l t ti f t i ti itconditions for Bezier curves or surfaces joining.•History of B-splinesI1946S h b d li b d–In 1946, Schoenberg proposed a spline-basedmethod to approximate curves.–It’s motivated by runge-kutta problem ininterpolation: high degree polynomial may surge p g g p y y g upper and down–Why not use lower degree piecewise polynomial Wh t l d i i l i lwith continuous joining?–that’s Spline–But people thought it’s impossible to use Spline in shape design because complicatedin shape design, because complicated computation–In 1972, based on Schoenberg’s work, Gordon I1972b d S h b’k G d and Riesenfeld introduced “B-Spline” and lots of corresponding geometric algorithms.f di i l i h–B-Spline retains all advantages of Bezier curves, and overcomes the shortcomings of Bezier curves.•Tips for understanding B-Spline?–Spline function interpolation is well known, it can Spline function interpolation is well known it canbe calculated by solving a tridiagonalequations(三对角方程).i–For a given partition of an interval, we cancompute Spline curve interpolation similarly.–All splines over a given partition will form aAll splines over a given partition will form alinear space. The basis function of this linearspace is called B-Spline basis function.i ll d B S li b i f i–Similar to Bezier Curve using Bernstein basis functions, B-Spline curves uses B-Spline basis f nctions B Spline c r es ses B Spline basis functions.B-Spline curves and it’s p Properties•Formula of B-Spline Curve.n ]1,0[),()(,0∈=Σ=t t B P t P n i i n i are control points ∑==i k i i t N P t P 0,)()(–are control points. –(i=0,1,..,n) are the i-th B-Spline basis function ),,1,0(n i P i L =)(,t N k i of order k. B-Spline basis function is a order k (degree k -1) piecewise polynomial (分段多项式) determined by the knot vector, which is a non-decreasing set of numbers.g•Demo of B-splineThe story of order & degree•The story of order°ree–G Farin: degree, Computer Aided Geometric Design –Les Piegl: order, Computer Aided DesignL Pi l d C Aid d D iB Spline Basis Function B-Spline Basis Function•Definition of B-Spline Basis Function –de Boor-Cox recursion formula:⎧⎩⎨<<=+Otherwiset x t t N i i i 01)(11,−−,,11,111()()()i i k i k i k i k i k i i k i t t t t N t N t N t t t t t +−+−+−++=+−−–Knot Vector: a sequence of non-decreasing number L L L k n k n n n k k t t t t t t t t +−++−,,,,,,,,,,11110L L L•, i = 01k=•, i = 02k=⎧⎩⎨<<=+Otherwiset x t t N i i i 01)(11,,,11,111()()()i i k i k i k i k i k i i k i t t t t N t N t N t t t t t +−+−+−++−−=+−−B Spline Basis Function B-Spline Basis Function•Questions:–What is nonzero domain(非零区间) of B-Splinebasis function ?)(,t N k i –How many knots does it need?Wh t i th d fi iti d i ()f th –What is the definition domain(定义区间) of the curves?4,4()()i i P t PN t =∑0i =B Spline Basis Function B-Spline Basis Function•take k=4, n=4 as example 4,4()()i i P t PN t =∑876543210,,,,,,,,t t t t t t t t t 0i=B Spline Basis Function B-Spline Basis Function•Properties:N ti it d l l t–Non-negativity and local support •is non-negativeis a non ero pol nomial on ,()i k N t ]•is a non-zero polynomial on ⎧∈≥+t t t t N k i i ],[0[,i i k t t +,()i k N t –Partition of Unity⎩⎨=otherwisek i 0)(,•The sum of all non-zero order k basis functions onis 1 ∑n 11[,]k n t t −+=+−∈=i n k k i t t t t N011,],[1)(B Spline Basis Function B-Spline Basis Function•Properties:Diff ti l ti f th b i f ti–Differential equation of the basis function:,,11,11111()()()i k i k i k i k i i k i k k N t N t N t t t t t −+−+−++−−′=+−−–Please compare with the Bernstein base:)]B 10 )],()([)(1,1,1,n i t B t B n t n i n i n i ⋅⋅⋅=−=′−−−;,,,B SplineB-Spline•Category(分类) of B-Splineg g p–General Curves could be categorized to two groups by checking if the start point and the endpoint areoverlapped:•Open Curves•Close CurvesClose Curves–According to the distribution(分布) of the knots inknot vector, B-Spline could be classified to theknot vector B Spline could be classified to thefollowing four groups:Uniform B-Spline(均匀B样条)U if B S li–(1) Uniform B-Spline,,,,,,,,•The knots are uniformed distributed, like 0,1,2,3,4,5,6,7•This kind of knot vector defines uniform B-Spline basisfunctionuniform B-Spline of Degree 3if B S li f D3Quasi Uniform B Spline(Quasi-Uniform B-Spline(准均匀B样条)–(2) Quasi-Uniform B-Splinep•Different from uniform B-Spline, it has:–the start-knot and end-knot have repetitiveness(重复度) of k–Uniform B-Spline does not retain the “end point” property ofBezier Curve, which means the start point and end point ofuniform B-Spline are no-longer the same as the start point andend point of the control points. However, quasi-Uniform B-end point of the control points However quasi Uniform BSpline retains this “end point” propertyQuasi-uniform B-Spline curve of degree 3Piecewise Bezier Curve(Piecewise Bezier Curve(分段Bezier曲线)–(3) Piecewise Bezier Curvep()•the start-knot and end-knot have repetitiveness(重复度)of kp•all other knots have repetitiveness of k-1•Then each curve segment will be Bezier curvesPiecewise B-Spline Curve of degree 3Piecewise Bezier Curve(分段Bezier曲线) Piecewise Bezier Curve(•For piecewise Bezier curve, the different pieces of th l ti l i d d t M i ththe curve are relatively independent. Moving the control point will only influence the corresponding piece of curve, while other pieces of curves will be not change. Furthermore, the algorithms for Bezier not change.Furthermore,the algorithms for Bezier could also be used for piecewise Bezier Curve.•But this method need more data to define the curve (more control points, more knots).Non-uniform B-Spline (非均匀B p (样条)–(4) Non-uniform B-Spline•The knot vectors satisfy T t t t =L e o vec o s sa s y conditions that the sequence of knots is non-)01[,,,]n k +decreasing(非递减). –repetitiveness of two end knots, <= k –repetitiveness of other knots, <= k-1•This kind of knot vector defines the non-uniformB-Spline.Properties of B Spline Curves Properties of B-Spline Curves•Properties of B-Spline curvesL l(–Local(局部性)•The curve in interval is only affected ],[1+∈i i t t t by at most k control points , and is independent of other control points.),,1(i k i j P j L +−=•Changing the position of control point will only affect the curve on interval i P only affect the curve on interval),(k i i t t +n∑==i k i i t N P t P 0,)()(Properties of B Spline Properties of B-Spline–Continuity(连续性)P()i i d f i i•P(t) is continuous at a node of repetitiveness r.–Convex hull(凸包性)1k r C −−•A B-spline curve is contained in the convex hullof its control polygon More specifically if t is of its control polygon. More specifically, if t is in knot span , then P(t) is in the h ll f t l i t n i k t t i i ≤≤−+1),,(1convex hull of control points ik i P P ,,1L +−Properties of B Spline Properties of B-Spline–Piecewise polynomial (分段多项式)•In every knot span, P(t) is a polynomial of t whose y p ()p ydegree is less than k.–Derivative formula(Derivative formula(导数公式)′′nn)()()(0,0,'===⎟⎠⎞⎜⎝⎛=∑∑i k i i i k i i t N P t N P t P ],[)()1(111,111+−−=−+−∈⎟⎟⎠⎞⎜⎜⎝⎛−−−=∑n k k i ni i k i i i t t t t N t t P PkProperties of B SplineProperties of B-Spline–Variation Diminishing Property(变差缩减性)•this means no straight line intersects a B-splinethi t i ht li i t t B licurve more times than it intersects the curve'scontrol polygons.t l l–Geometry invariability(几何不变性)•The shape and position of curve are independentwith the choosing of coordinate system(坐标系).Properties of B Spline Properties of B-Spline–Affine invariability(仿射不变性)nI h h f f i i i i bl d h∑=+−∈=i n k k i i t t t t N P A t P A 011,],[,)(][)]([•It means that the form of equation is invariable under the affine transformation.–Line holding(直线保持性)•It means that if the control polygon degenerates to a line,the B-Spline curve also degenerates to a line.Properties of B Spline Properties of B-Spline–Flexibility(灵活性)U i B S li C il t t•Using B-Spline Curve we can easily construct special cases such as line segment(线段), cusp(尖)t t li ()点), tangent line(切线).•For example, for B-Spline of order 4 (degree 3), if li l dyou want to construct a line segment, you only need to specify collinear (共线). 321,,,+++i i i i P P P P •you only need to let12i i i P P P ++==Properties of B Spline Properties of B-Spline相•If you want the curve tangent(相切) to a specific line L,you only need to specify on line L, and21,,++i i i P P P repetitiveness of less than 2.3+i t iP 1+i P 2+i P P )(tPP 4+i (a)四顶点共线(b)二重顶点和三重顶点−i P 23()重节点和三重节点(c)二重节点和三重节点(d)三顶点共线图.1.26 三次B样条曲线的一些特例De Boor Algorithm De Boor Algorithm•To compute P(t) (a point on the curve), you could use B-Spline formula, but it is more efficient to use de pBoor algorithm.De Boor Algorithm:•De Boor Algorithm:)()()(,,==∑∑jki ink i i t NP t N P t P 10−+−+−==⎤⎡−+−=jk i i k j i i t N tt t N t t P )()(111,111,1−++−=+++−+⎤⎡−−⎥⎦⎢⎣−−∑jk i i k j i k i i k i k i i k i i t t t t t t t t ],[)(11,1111+−+−=−−+−+∈⎥⎦⎢⎣−+−=∑j j k i k j i i i k i i i k i t t t t N P t t P t tDe Boor Algorithm De Boor Algorithm•Let⎧⋅⋅⋅+−+−==k k i r P ,,2,1,0,⎪⎪⎨−−+−−=−−−+−t P t t t t t P t t t t jj j t P r i r k i r i i i r i ),()()(]1[1]1[][•Then⎪⎪⎩⋅⋅⋅++−++−=−⋅⋅⋅=−+−+j r k j r k j i k r ir k i i r k i ,,2,1;1,,2,1∑∑−==jk i ijki it N t Pt NP t P 1,]1[,)()()()(•This is De Boor Algorithm.+−=+−=k j i k j i 21De Boor Algorithm De Boor Algorithm•The recursion of De Boor Algorithm is as shown below:01P P 1[1]j k P −+M 22[1][2]333j k j k j k j k j k P PP P P −+−+−+−+−+→→→[1][2][1]k j jjjP PPP−→→M M M M nP MDe Boor Algorithm De Boor Algorithm•Geometric meaning (几何意义)of De Boor Algorithm–It has an intuitive geometric interpretation: corner g pcutting (割角).•It means that using line segment to cut][][r r It means that using line segment to cut corner . Begin frompolygon1i i P P +]1[−r i P ⋅⋅⋅polygon , after k-1 steps of cutting, fi ll i j k j k j P P P +−+−21P −P P j we finally get point on the curve P(t).)(]1[t r j +−k j P −P]1[P 4+−k j 1+−k j 2+k j jKnot Insertion Knot Insertion •Knot insertion–An important tool for practical interactive use of B-p pspline, which allows one to add a new knot to a B-spline without changing the shape or its degree.For spline without changing the shape or its degree. For instance, one may want to insert additional knots in order to be able to raise flexibility of shape control order to be able to raise flexibility of shape control.•Insert a new knot t to a knot span Th k t t b[]1,+i i t t •The knot vector becomes:[]k n i i t t t t t t T ++=,,,,,,,1101L L •denoted as:[]11121111101,,,,,,,1++++=k n i i i tt t t t t T L LKnot Insertion Knot Insertion•The new knot sequence defines a new group of B-Spline Basis F nctions The original c r e Spline Basis Functions. The original curve P(t)can be expressed by this new group of BasisFunctions and new control points , which are unknown.1jP +=111n t N P t P ∑=0,)()(j kjjKnot Insertion Knot Insertion•Boehm gives a formula for computing new control points:p ⎪⎧+−==1,,1,0 ,11k i j P P j j L ββ⎪⎩⎨++−==−+−=+−=−−1,,1 ,,,2 ,)1(111n r i j P P r i k i j P P P j jj j j j j L L ββj t t −=β•r is the repetitiveness of newly inserted knot in the knot jk j j t t −−+1s t e epet t ve ess o ew y se ted ot t t e ot sequence.Knot Insertion Knot Insertion1P 1P P 1P 03i points(totally k-1points)36points( totally k 1 points) are replaced by the right ones(totally k points)],[43t t t ∈See demo of knot insertionB Spline Surface(B B-Spline Surface(B样条曲面)•Given knot vectors in axes(参数轴) U and V:],,,[10p m u u u U +=L B S li f f d i d fi d],,,[10q n v v v V +=L •B-Spline surface of order p ×q is defined as:m n∑∑===i j q j p i ij v N u N P v u P 00,,)()(),(B Spline Surface B-Spline Surface•are the control points of B-Splineij P Surface, which are usually referred to as thecontrol net ).(控制网格、特征网格)•and are B-Spline basis)(,u N p i )(,v N q j functions of order p and q , one for each direction (and ),which could also be direction (U and V ), which could also be computed by de Boor-Cox formula.B Spline Surface B-Spline Surface03P 23P33P02P 22P 12P32P01P 11P 21P 31P P 10P 20P 0030PNURBS Curve and SurfaceNURBS Curve and Surface •Disadvantage of B-Spline curve and Bezier Curve:–can’t accurately represent conic(圆锥曲线) curveexcept parabola(抛物线),NURBS (Non Uniform Rational B Spline) •NURBS(Non-Uniform Rational B-Spline) (非均匀有理B样条)–In order to find a mathematical method that couldrepresent conic and conicoid(二次曲面) accurately. yNURBS•NURBS is too complex•Les Piegl s The NURBS Book,Les Piegl’s The NURBS Book–“NURBS from Projective Geometry to Practical Use”–Les Piegl,Graduated from Budapest University ofi l d d f d i i fHungary, many years in SDRC company for geometricmodeler designd l d iNURBSSome years ago a few researchers joked about NURBS,saying that the acronym really stands for NOBODYUnderstands Rational B-Splines, write the authors in their foreword; they formulate the aim of changing NURBS to EURBS, that is, Everybody.…There is no doubt that they have achieved this goal....I highly recommend the book to anyone who is interestedp y p in a detailed description of NURBS. It is extremely helpful for students, teachers and designers of geometric modeling ysystems. ——Helmut PottmannNURBS•Advantages of NURBS–It provide a general and accurate representation forrepresenting and designing free curves or surfaces(自由曲线曲面)–They offer one common mathematical form for bothstandard analytical shapes (e.g., conics) and free-formshapes (parametric form).–can be evaluated reasonably fast by numerically stableand accurate algorithms;NURBS•Advantages of NURBS–They are invariant under affine as well as perspectivetransformations.–the control points and weights can be modified, whichgives great flexibility for designing curves/surfaces.–non-rational B-Spline, non-rational and rational Beziercould be viewed as special cases of NURBS.NURBS•Some difficult problems in using NURBS –Require more storage than traditionalcurve/spline methods. (such as circle representation) p–If the weights are set inappropriately, the curvewill be abnormal(畸变).will be abnormal()–It is very complex to deal with situations likecurve overlap(曲线重叠).NURBS •Before discussing about NURBS, let’s first review the definition of B-Spline:n∑==i k i i t N P t P 0,)()()()()(1,111,1,t N t t t t t N t t t t t N k i i k i k i k i i k i i k i −++++−−+−−+−−=k n k n n n k k t t t t t t t t +−++−,,,,,,,,,,11110L LLNURBS•Definition of NURBS curve.–NURBS Curves are defined by piecewiserational B-Spline polynomial basis functionp p y(分段有理B样条多项式基函数):∑== =nnikiiitNP,)(ω∑∑==ikiinikiitRPtNtP,0,)( )()(ω=nki ik itNtR, ,)()(ω∑=jkjjt N,)(ωDefinition of NURBS Definition of NURBS•NURBS basis R i,k (t) retains all properties of B-Spline Basis.–Local support: Ri,k(t)=0,t ∉[ti, ti+k]–Partition of Unity:∑n Partition of Unity:–Differentiability(可微性): If is not a knot is infinitely differentiable()==i k i u R 0,1)(•If t is not a knot, P(t)is infinitely differentiable(无限次可微) in the knot interval. If t is a knot, P(t) is only C-(k-r) continuous.continuous. –If ωi =0, then R i,k (t)=0;If +th R (t)1–If ωi =+∞, then R i,k (t)=1;Definition of NURBSDefinition of NURBS•NURBS curve has similar geometric properties as the B Spline C r e:the B-Spline Curve:–Local support (局部支持性).–Variation Diminishing Property(变差缩减性)–Strong Convex hull(凸包性)–Affine invariability(仿射不变性)–Differentiability(y(可微性)–If the weight of a control point is 0, then correspondingcontrol point doesn t affect the curve.control point doesn’t affect the curve.Definition of NURBS Definition of NURBS–If , and , then N i l/i l B i d ∞→i ω],[k i i t t t +∈i P t P =)(–Non-rational/rational Bezier curves and non-rational B-Spline curves are special cases ofNURBS curve.。
Digital Communications, Fundamentals And Applications
This Document Copyright © BlueBox Multimedia 2001 -
Printing Licence As the owner of the above textbook you are licenced to print one complete copy of this document for your personal use. Additional copies may not be made without the express permission of the copyright owner. Under no circumstances may this document be transmitted to third parties in either electronic or copied paper format.
4.8.1 Phase Compensation 4.8.2 Fractional Delay Implementation
5 6 6 10 12 16 22 28 30 34 36 41 42 45 45 48 50 55 55 59 60 63 63 64 66 70 70 71 73 73 76 79 79 83 87 88 89 89 91 97
Decryp
t
el Chann decode
iplex Demult
Detect
ulate Demod le p & Sam
el Chann ls symbo
atio Inform sink
n
ge Messa ls o b m y s
spyglass-高级lint-check
Richest set of built-in syntax checks2350+ built-in rules for Verilog, VHDL, V2K, SystemVerilog and mixed languageLint, Openmore, Morelint standards575+ lint, coding style, IP-reuse rulesSTARC, STARC2002, STARCAD21, STARC 2005Recognized industry standard rules from consortium of top 11 semiconductor companies in Japan500+ rules for best practices, coding guidelines, IP-reuse, etc.
Source: I.B.S. Inc.
Source: Gartner
SoC Development Cost
Typical Impact Of Poorly Coded RTL
Chip killer bugs/escapesFixing the problems late in design cycle delays scheduleCombinational loops, non tri-state nets cause functional failureIncorrect FSM behavior causes functional failureLong time to complete verificationIncomplete coverage - Only as complete as your set of simulation vectorsCreating test vectors/assertions is time-consuming and complexSynthesis/simulation mismatch, incomplete initialization cause verification delaysPoor area, power, testability and timing of the chipUnintended redundant logic, use of complex FSM’s lead to poor QoRNo predictability in the design process to hit the market windowDesign reviews are manual, ad-hoc and subjectiveA chip company identified 10+ structural issues that would take 2 to 4 days each to identify and fix in the normal implementation flow
balluff bni iol-709-000-k006 bni iol-710-000-k006
BNI IOL-709-000-K006 BNI IOL-710-000-K006IO-Link Sensor-Hub analogUser’s GuideContent1Notes to the user 21.1Structure of the guide 21.2Typographical conventions 2Enumerations 2 Actions 2 Syntax 2 Cross-references 21.3Symbols 21.4Abbreviations 21.5Divergent views 2 2Safety 32.1Intended use 32.2Installation and startup 32.3General safety Notes 32.4Resistance to Aggressive Substances 3Hazardous voltage 3 3Getting Started 43.1Connection overview 43.2Mechanical connection 53.3Electrical connection 53.4Function ground 53.5IO-Link connection 53.6Digital Sensors 63.7Analogue Sensors 6 4IO-Link Interface 74.1IO-Link Data 74.2Process data inputs 74.3Process data outputs 84.4Parameter data/ On-request data 8Identification data 8 Inversion 9 Switch point enable 9 Switch point 94.5Errors 104.6Events 10 5Technical Data 115.1Dimensions 115.2Mechanical data 115.3Electrical data 115.4Operating conditions 115.5Function indicators 12Module LEDs 12 Digital Input LEDs 12 Analogue Input LEDs 12 6Appendix 136.1Type designation code 136.2Order information 13IO-Link Sensor-HubBNI IOL-709-… / BNI IOL-710-…1 Notes to the user1.1 Structure of theguide The Guide is organized so that the sections build on one another. Section 2 : Basic safety information. …………1.2 Typographicalconventions The following typographical conventions are used in this Guide. EnumerationsEnumerations are shown in list form with bullet points.• Entry 1, • Entry 2.Actions Action instructions are indicated by a preceding triangle. The result of an action is indicated by an arrow.Action instruction 1. Action result.Action instruction 2. SyntaxNumbers:Decimal numbers are shown without additional indicators (e.g. 123),Hexadecimal numbers are shown with the additional indicator hex (e.g. 00hex ).Cross-references Cross-references indicate where additional information on the topic can be found.1.3 SymbolsAttention!This symbol indicates a security notice which most be observed.NoteThis symbol indicates general notes.1.4 AbbreviationsBCD BNI CV DPP I-Port EMC FE IOL LSB MSB SP SPDU VVBinary coded switch Balluff Network InterfaceCurrent Version: BNI IOL 709… Direct Parameter Page Digital input portElectromagnetic Compatibility Function ground IO-LinkLeast Significant Bit Most Significant Bit Switch PointService Protocol Data UnitVoltage version: BNI IOL 710…1.5 Divergent views Product views and images can differ from the specified product in this manual. They serve only as an illustration.2 Safety2.1 Intended use The BNI IOL-… is a decentralized sensor input module which is connected to a host IO-Linkmaster over an IO-Link interface.2.2 Installation andstartup Attention!Installation and startup are to be performed by trained technical personnel only. Skilled specialists are people who are familiar with the work such as installation and the operation of the product and have the necessary qualifications for these tasks. Any damage resulting from unauthorized tampering or improper use shall void warranty and liability claims against the manufacturer. The operator is responsible for ensuring that the valid safety and accident prevention regulations are observed in specific individual cases.2.3 General safetyNotes Commissioning and inspectionBefore commissioning, carefully read the User's Guide.The system must not be used in applications in which the safety of persons depends on the function of the device.Intended useWarranty and liability claims against the manufacturer shall be rendered void by damage from:•Unauthorized tampering•Improper use•Use, installation or handling contrary to the instructions provided in this User's Guide.Obligations of the owner/operator!The device is a piece of equipment in accordance with EMC Class A. This device can produce RF noise. The owner/operator must take appropriate precautionary measures against this for its use. The device may be used only with a power supply approved for this. Only approved cables may be connected.MalfunctionsIn the event of defects and device malfunctions that cannot be rectified, the device must be taken out of operation and protected against unauthorized use.Approved use is ensured only when the housing is fully installed.2.4 Resistance toAggressiveSubstances Attention!The BNI modules always have good chemical and oil resistance. When used in aggressive media (such as chemicals, oils, lubricants and coolants, each in a high concentration (i.e. too little water content)), the material must first be checked for resistance in the particular application. No defect claims may be asserted in the event of a failure or damage to the BNI modules caused by such aggressive media..Hazardous voltage Attention!Disconnect all power before servicing equipment.NoteIn the interest of continuous improvement of the product,Balluff GmbH reserves the right to change the technical data of the product and the content of these instructions at any time without notice.IO-Link Sensor-HubBNI IOL-709-… / BNI IOL-710-…3 Getting Started3.1 Connectionoverview1 Mounting hole2 IO-Link interface3 Analogue input-Port 14 Status-LED: Analogue port5 Analogue input port 36 Status-LED: digital input Pin 27 Digital input port 18 Status-LED: Digital port Pin 49 Digital input port 3 10 Status LED “Power Supply”11 Digital input port 212 Digital input port 013 Analogue input port 214 Analogue input port 015 Label16 Status-LED …COM“17 Function ground connection3 Getting Started3.2 Mechanicalconnection The BNI IOL modules are attached using 3 M4 screws (Item 1, Fig. 3-1/3-2).3.3 Electricalconnection The Sensor Hub modules require no separate supply voltage connection. Power is provided through the IO-Link interface by the host IO-Link Master.3.4 Function groundThe modules are provided with a ground terminal.Connect Sensor Hub module to the ground terminal.NoteThe FE connection from the housing to the machine must be low-impedance and as short as possible.3.5 IO-LinkconnectionThe IO-Link connection is made using an M12 connector (A-coded, male).IO-Link (M12, A-coded, male)Pin Function 1Supply voltage, +24 V, max. 1.6 A 2 - 3 GND, reference potential4 C/Q, IO-Link data transmission channelConnection protection ground to FE terminal, if present. Connect the incoming IO-Link line to the Sensor Hub.NoteA standard sensor cable is used for connecting to the host IO-Link Master.IO-Link Sensor-HubBNI IOL-709-… / BNI IOL-710-…3 Getting Started3.6 Digital Sensors Digital input port (M12, A-coded, female)Pin Function 1 +24 V, 100 mA 2 Standard Input 3 0 V, GND 4 Standard Input 5 -NoteFor the digital sensor inputs follow the input guideline per EN 61131-2, Type 2.3.7 AnalogueSensors Analogue input port (M12, A-coded, female)Pin Function1 +24 V, 100 mA2BNI IOL-709...: 4 - 20 mABNI IOL-710…:n.c. 3 0 V, GND4BNI IOL-710...: 0 - 10 V BNI IOL-709…:n.c 5 FE, function groundNoteUnused I/O port sockets must be fitted with cover caps to ensure IP67 protection rating.NoteOvercurrent (> 25mA) on the BNI IOL-709 Module´s inputs can distort the measurement results of the other channels and it may leads to malfunction..4 IO-Link Interface4.1 IO-Link Data Baudrate COM2 (38,4 kBaud)Frame type 1Minimum cycle time 3 msProcess data cycle 30 ms with minimum cycle time4.2 Process datainputs BNI IOL-710-…/BNI IOL-709-…(Sensor-Hub digital/analog)Process data length 10Byte:Byte 0 Byte 17 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0InputPort7Pin4InputPort6Pin4InputPort5Pin4InputPort4Pin4SwitchPoint1Port3SwitchPoint1Port2SwitchPoint1Port1SwitchPoint1PortInputPort7.Pin2InputPort6.Pin2InputPort5.Pin2InputPort4.Pin2SwitchPoint2Port3SwitchPoint2Port2SwitchPoint2Port1SwitchPoint2PortByte 2 Byte 37 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0Error1Error2Error3MSBAnalogue valueLSBPort 0Byte 4 Byte 57 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0Error1Error2Error3MSBAnalogue valueLSBPort 1Byte 6 Byte 77 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0Error1Error2Error3MSBAnalogue valueLSBPort 2Byte 8 Byte 97 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0Error1Error2Error3MSBAnalogue valueLSBPort 3IO-Link Sensor-HubBNI IOL-709-… / BNI IOL-710-…4 IO-Link InterfaceInput: Input-Signal at Port and PinSwitch Point: The switch point bits show a switch pointoverrun. The switch point can be configuredby parameter ( see 0.0 - “Switch pointenable” and 0.0 - “Switch point”)Analogue value: VV: actual voltage value between0 and 1056 (1Bit = 0.01V)CV: actual current value between0 and 2150 (1Bit = 0.01mA)Error:• Error 1 • Error 2 • Error 3 Overcurrent/short circuit on sensor supply Measurement range overflow Measurement range undercut (only CV)4.3 Process dataoutputsThere are no outputs at BNI IOL-710-... and BNI IOL-709-... modules.4.4 Parameter data/On-request dataDPP SPDU Parameter DatawidthAccess Index Index Sub-indexIdentificationData07hex Vendor ID 2 ByteReadonly 08hex09hex Device ID 3 Byte0A hex0B hex10hex0 Vendor Name 8 Byte11hex0 Vendor text 16 Byte12hex0 Product Name 34 Byte13hex0 Product ID 21 Byte14hex0 Product text 34 Byte16hex Hardware Revision 3 Byte17hex0 Firmware Revision 3 ByteIdentification data Type Device ID VersionBNI IOL-710-000-K006 050201hex Voltage versionBNI IOL-709-000-K006 050202hex Current version4 IO-Link InterfaceDPPSPDUParameter Data width Value rangeDefault- valueIndex Index Sub-index P a r a m e t e r D a t a10hex 40hex640 1-16 Inversion 2 Byte 0000hex …FFFF hex 0000hex 11hex 12hex 41hex650 1-8 Switch point enable 1 Byte 00hex …FF hex 00hex 42hex660 Switch point 1 Port 0 2 Byte 0000hex … 03E8hex 0000hex 43hex670 Switch point 1 Port 1 2 Byte 0000hex … 03E8hex 0000hex 44hex680 Switch point 1 Port 2 2 Byte 0000hex … 03E8hex 0000hex 45hex690 Switch point 1 Port 3 2 Byte 0000hex … 03E8hex 0000hex 46hex700 Switch point 2 Port 0 2 Byte 0000hex … 03E8hex 0000hex 47hex710 Switch point 2 Port 1 2 Byte 0000hex … 03E8hex 0000hex 48hex720 Switch point 2 Port 2 2 Byte 0000hex … 03E8hex 0000hex 49hex73Switch point 2 Port 32 Byte0000hex … 03E8hex0000hexInversionInversion of the input signals:Byte 0Byte 176543217654321I n v e r s i o n P o r t 7 P i n 4I n v e r s i o n P o r t 6 P i n 4I n v e r s i o n P o r t 5 P i n 4I n v e r s i o n P o r t 4 P i n 4I n v e r s i o n S P 1 P o r t 3I n v e r s i o n S P 1 P o r t 2I n v e r s i o n S P 1 P o r t 1I n v e r s i o n S P 1 P o r t 0I n v e r s i o n P o r t 7 P i n 2I n v e r s i o n P o r t 6 P i n 2I n v e r s i o n P o r t 5 P i n 2I n v e r s i o n P o r t 4 P i n 2I n v e r s i o n S P 2 P o r t 3I n v e r s i o n S P 2 P o r t 2I n v e r s i o n S P 2 P o r t 1I n v e r s i o n S P 2 P o r t 0Switch point enableEnable the switch points by setting the enable bitsByte 07654321E n a b l e s w i t c h p o i n t 2 P o r t 3E n a b l e s w i t c h p o i n t 2 P o r t 2E n a b l e s w i t c h p o i n t 2 P o r t 1E n a b l e s w i t c h p o i n t 2 P o r t 0E n a b l e s w i t c h p o i n t 1 P o r t 3E n a b l e s w i t c h p o i n t 1 P o r t 2E n a b l e s w i t c h p o i n t 1 P o r t 1E n a b l e s w i t c h p o i n t 1 P o r t 0Switch pointByte 0Byte 1 7 6 5 4 3217654321Switch pointValue range (dec) CV= 400...2000 VV= 0 (1000)BNI IOL-709-… / BNI IOL-710-…4 IO-Link Interface4.5 Errors Byte 0Byte 1Device application error: 80hex11hex Index not available 12hex Subindex not available 30hex Value out of range4.6 EventsClass/QualifierCode (high + low)Mode Type InstanceP a r a m e t e r D a t aappears Error AL Device Hardware supply Supply low voltage U2 = supply + 24VC0hex 30hex 03hex 5000hex 0100hex 0010hex 0002hex F3hex5112hex disappears ErrorAL Device Hardware supply Supply low voltage U2 = supply + 24V80hex 30hex 03hex 5000hex 0100hex 0010hex 0002hexB3hex 5112hexappears Error AL Device Hardware supply supply peripheryC0hex30hex 03hex 5000hex 0100hex0060hexF3hex 5160hexdisappears ErrorAL Device Hardware supply supply periphery80hex30hex 03hex5000hex0100hex0060hexB3hex5160hex5 Technical Data5.1 Dimensions5.2 Mechanical data Housing Material Plastic, transparentIO-Link-Port M12, A-coded, maleInput-Ports 8x M12, A-coded, femaleEnclosure rating IP67 (only when plugged-in and threaded-in)Weight 90 gDimensions(L × W × H, excluding connector)115 × 50 × 30,8 mm5.3 Electrical data Operating voltage 18 ... 30,2 V DC, per EN 61131-2Ripple < 1 %Current draw without load ≤ 40 mA5.4 Operatingconditions Operating temperature -5 °C … +55 °C Storage temperature -25 °C … +70 °CBNI IOL-709-… / BNI IOL-710-…5 Technical Data5.5 FunctionindicatorsModule LEDs LED 5, IO-Link CommunicationStatus FunctionGreen No CommunicationGreen negative pulsed Communication OKRed Communication line overloadOff Module unpoweredLED 4, Power supply statusStatus FunctionGreen Module power is OKGreen slowly flashing Short circuitGreen rapidly flashing Module power supply < 18 VOff Module unpowered Digital Input LEDs LED 3, Input Pin 4 and LED 2, Input Pin 2Status FunctionYellow Input signal = 1Off Input signal = 0Analogue Input LEDs LED 1, Analogue input portStatus Signal 709 (4-20 mA) Signal 710 (0-10 V) Green ≥ 4 mA - ≤ 20 mA> 0,05 VRed < 4 mA - > 20 mA > 10,05 V6 Appendix6.1 Type designationcode6.2 OrderinformationType Order CodeBNI IOL-709-000-K006 BNI0007BNI IOL-710-000-K006 BNI0008BNI IOL-7xx-000-K006 Balluff Network InterfaceIO-Link interfaceFunctions710 = 8 digital inputs 0,15 A + 4 analog inputs 0 - 10 V709 = 8 digital inputs 0,15 A + 4 analog inputs 4 - 20 mAVariant000 = StandardvarianteMechanical configurationK006 =Plastic housing,Connectors:- BUS and Power supply: 1x M12x1, external thread- Input ports: 8x M12x1, internal threadBNI IOL-709-… / BNI IOL-710-… NotesBalluff GmbHSchurwaldstrasse 973765 Neuhausen a.d.F. GermanyTel. +49 7158 173-0 N r . 910442-726 E •01.125277 • E d i t i o n K 17 • R e p l a c e s E d i t i o n 1311 • S u b j e c t t o m o d i f i c a t i o n。
二极管的ibis模型
二极管的ibis模型
IBIS模型是Input/Output Buffer Information Specification的简写,是进行数字电路的传输线路分析即信号完整性分析,描述高速器件输入输出特性的行为模型。
简单来说,它是高速PCB板仿真使用的模型。
IBIS模型里记录了器件Pin脚的排列信息和输入输出的特性,基本构成如下:
- 驱动模型 输出模型):包括上升、下降的特性,Pull down I-V curb 在输出为逻辑低电平时,半导体的I/V特性曲线),Pull up I-V curb 在输出为逻辑高电平时,半导体的I/V特性曲线)。
- 接收器模型:包括I-V curb power clamp】clamp和 GND clamp】clamp二极管特性),p封装的LRC特性。
IBIS模型的规格是由IBIS开放论坛制定的,但只规定了信息的格式,关于仿真处理和模型的使用方法并没有特别规定。
在实际应用中,需要根据具体情况选择合适的IBIS模型,并进行合理的仿真分析,以确保电路设计的可靠性和稳定性。
ibis模型建立测试法提取参数的标准
IBIS(Input/Output Buffer Information Specification)模型建立测试法是一种用于提取参数的标准方法。
在电子设计自动化(EDA)领域,IBIS模型被用于描述芯片之间的电气相互作用。
这些模型包含了关于输入/输出缓冲的信息,以便仿真工具能够准确地模拟芯片之间的信号传输。
本文将探讨IBIS模型建立测试法提取参数的标准,并深入分析其应用与挑战。
一、IBIS模型建立测试法概述IBIS模型建立测试法主要用于从实际硬件中提取参数,以便生成IBIS模型。
这些参数包括输入缓冲和输出缓冲的特性,比如电压电流关系、信号延迟、上升/下降时间等。
通过测试芯片的实际性能,并将结果与标准进行比对,可以得到准确的参数值,从而建立高质量的IBIS模型。
二、IBIS模型建立测试法流程1. 确定测试方案针对特定芯片或模块,确定测试的输入条件、测试设备和测试方法。
充分了解芯片的工作原理和特性,为测试方案的制定提供依据。
2. 进行实际测试使用合适的测试设备对芯片进行实际测试,记录测试结果并进行数据采集。
这些数据将用于后续的参数提取和模型建立。
3. 参数提取与模型构建根据测试数据,利用相应的软件工具进行参数提取和模型构建。
这一步需要准确地分析数据,并结合IBIS模型的标准进行验证和修正。
三、IBIS模型建立测试法的应用与挑战1. 应用IBIS模型建立测试法广泛应用于芯片和模块的电气特性分析,以及高速数字信号传输的仿真和验证。
它为电子设计工程师提供了准确描述芯片电气特性的标准,避免了实际硬件的大量试错和调试。
2. 挑战然而,IBIS模型建立测试法也面临一些挑战。
测试设备和方法的选择对测试结果具有重要影响,需要充分考虑并进行合理的校准。
对于高频高速芯片的参数提取会更加困难,需要更精密的测试设备和更复杂的算法。
四、个人观点和理解作为一个电子工程师,我深刻理解IBIS模型建立测试法的重要性。
它不仅可以为芯片设计和开发提供准确的电气特性描述,还可以为系统集成和信号完整性分析提供有力支持。
ibs包的中文名称:B-Spline函数积分计算包说明书
Package‘ibs’October13,2022Type PackageTitle Integral of B-Spline FunctionsVersion1.4Date2018-11-06Author Feng ChenMaintainer Feng Chen<******************.au>Description Calculate B-spline basis functions with a given set of knots and order,or a B-spline func-tion with a given set of knots and order and set of de Boor points(coefficients),or the inte-gral of a B-spline function.License GPL(>=2)Imports Rcpp(>=0.12.17)LinkingTo RcppNeedsCompilation yesRepository CRANDate/Publication2018-11-0915:10:03UTCR topics documented:ibs-package (2)bsbases (2)bspline (3)ibs (4)Index612bsbases ibs-package A short title line describing what the package doesDescriptionEvaluate the integral of a B-spline function,or the B-spline function itself,or the B-spline basis functions.DetailsThe function bsbases calculates the values of the B-spline basis functions defined by knots knots and order ord at sites x.The function bspline evaluates the B-spline function defined by knots knots,order ord,and coefficients coef at sites x.The function ibs calculates the integrals of the B-spline function defined by knots knots,order ord,and coefficients coef from the smallest knot to each of the values in x.Author(s)Creator:Feng ChenMaintainer:Feng Chen<******************.au>Referencesde Boor,C.(2001)A Practical Guide to Splines.Revised Edition.Springer:New York.See AlsosplineDesignbsbases B-spline basesDescriptionEvaluate the B-spline basis function at the x value(s).Usagebsbases(x,knots,ord)Argumentsx Numerical value or vector.The value(s)at which to evaluate the B spline bases.knots Numerical vector.The knot positions/sites of the B-spline bases.ord An integer>=1.The order of the B-spline bases.Equals degree plus1.bspline3ValueA numerical matrix of length(x)rows and length(knots)-ord columns.NoteIn contrast to the implementation based on the splineDesign function from the splines package, this version of the B-spline basis functions are left-continuous at the rightmost knot.Author(s)Feng Chen<******************.au>Referencesde Boor,C.(2001)A Practical Guide to Splines.Revised Edition.Springer:New York.See AlsosplineDesignExampleskns<-c(rep(0,4),1:4*0.2,rep(1,4))round(bsbases(0:5/5,kns,2),10)round(splines::splineDesign(kns,0:5/5,2),10)bspline B-spline functionDescriptionEvaluate the value of the B-spline function with knots knots,order ord,and coefficients coef at value(s)x.Usagebspline(x,knots,ord,coef=rep(1,length(knots)-ord))Argumentsx Numerical value or vector.The value(s)at which to evaluate the B-spline.knots Numerical vector.The knot positions/sites of the B-spline function.ord An integer>=1.The order of the B-spline function.Equals degree plus1.coef A numerical vector.The coefficients(de Boor points)defining the B-spline function.4ibsValueA scalar or a vector of length equal to that of x.NoteIn contrast to the implementation based on the splineDesign function from the splines package, this version of the B-spline function is left-continuous at the rightmost knot site.Author(s)Feng Chen<******************.au>Referencesde Boor,C.(2001)A Practical Guide to Splines.Revised Edition.Springer:New York.See AlsosplineDesignExampleskns<-c(rep(0,4),1:4*0.2,rep(1,4))bspline(0:10/10,kns,3,rep(1,length(kns)-3))splines::splineDesign(kns,0:10/10,3)%*%rep(1,length(kns)-3)ibs Integratal of a B-spline functionDescriptionCalculate the integral of a B-spline function.Usageibs(x,knots,ord=4,coef=rep(1,length(knots)-ord))Argumentsx Numerical value or vector.The value(s)at which to evaluate the integral of the B-spline;must be in the interval bewteen the smallest knot to the(nknots-ord)thlargest knot.knots Numerical vector.The knot positions/sites of the B-spline function to be inte-grated.ord An integer>=1.The order of the B-spline integrand function to be integrated.Equals degree plus1.coef A numerical vector.The coefficients(de Boor points)defining the B-spline integrand function.ibs5DetailsThe function returns the integral(s)of the B-spline function specified by knots knots,order ord, and coefficients coef,from the minimum knot position to each x value.The evaluation is based ona closed form expression of the integral in terms of higher order B-splines,given on page128of deBoor(2001).ValueA numerical equal to the integral(s).Author(s)Feng Chen<******************.au>Referencesde Boor,C(2001)A Practical Guide to Splines.Revised Edition.Springer:New York.See AlsobsplineExampleskns<-c(rep(0,4),1:4*0.2,rep(1,4))co<-rnorm(length(kns)-3)integrate(bspline,knots=kns,ord=3,coef=co,0,0.95)integrate(function(x)bsbases(x,kns,3)%*%co,0,0.95)ibs(0.95,kns,3,co)Index∗Splinesibs-package,2∗mathbsbases,2bspline,3ibs,4∗packageibs-package,2bsbases,2bspline,3,5ibs,4ibs-package,2splineDesign,2–46。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
this partition, i.e., the functions
2. B-splines de ned We start with a partition or knot sequence, i.e., a nondecreasing sequence t := ? ti . The B-splines of order 1 for this knot sequence are the characteristic functions of
Bi1(t) := Xi (t) := 1;; if ti t < ti+1 (2:1) 0 otherwise. Note that all these functions have been chosen here to be right-continuous. Other choices could have been made with equal justi cation. The only constraint is that these B-splines should form a partition of unity, i.e.,
B(asic)-Spline Basics
Carl de Boor
1. Introduction
This essay reviews those basic facts about (univariate) B-splines which are of interest in CAGD. The intent is to give a self-contained and complete development of the material in as simple and direct a way as possible. For this reason, the B-splines are de ned via the recurrence relations, thus avoiding the discussion of divided di erences which the traditional de nition of a B-spline as a divided di erence of a truncated power function requires. This does not force more elaborate derivations than are available to those who feel at ease with divided di erences. It does force a change in the order in which facts are derived and brings more prominence to such things as Marsden's Identity or the Dual Functionals than they currently have in CAGD. In addition, it highlights the following point: The consideration of a single B-spline is not very fruitful when proving facts about B-splines, even if these facts (such as the smoothness of a B-spline) can be stated in terms of just one B-spline. Rather, simple arguments and real understanding of B-splines are available only if one is willing to consider all the B-splines of a given order for a given knot sequence. Thus it focuses attention on splines, i.e., on the linear combination of B-splines. In this connection, it is worthwhile to stress that this essay (as does its author) maintains that the term `B-spline' refers to a certain spline of minimal support and, contrary to usage unhappily current in CAGD, does not refer to a curve which happens to be written in terms of B-splines. It is too bad that this misuse has become current and entirely unclear why. The essay deals with splines for an arbitrary knot sequence and does rarely become more speci c. In particular, the B(ernstein-Bezier)-net for a piecewise polynomial, though a (very) special case of a representation by B-splines, gets much less attention than it deserves, given its immense usefulness in CAGD (and spline theory). The essay deals only with spline functions. There is an immediate extension to spline curves: Allow the coe cients, be they B-spline coe cients or coe cients in some polynomial form, to be points in IR2 or IR3 . But this misses the much richer structure for spline curves available because of the fact that even discontinuous parametrizations may describe a smooth curve. Splines are of importance in CAD for the same reason that they are used wherever data are to be t or curves are to be drawn by computer: being polynomial, they can be evaluated quickly; being piecewise polynomial, they are very exible; their representation in terms of B-splines provides geometric information and insight. See Riesenfeld's contribution in this volume for details concerning the use of splines and, especially, of their B-spline representation, in CAD. See Cox' contribution for details concerning numerical algorithms to handle splines and their B-spline representation. The editor of this volume has asked me to provide a careful discussion of the placeholder notation customary in mathematical papers on splines. This notation was invented by people who think it important to distinguish the function f from its value f (x) at the point x. It is customarily used in the description of a function of one variable obtained supported by the United States Army under Contract No. DAA 1; for all t:
from a function of two variables by holding one of those two variables xed. In this essay, it appears only to describe functions obtained from others by shifting and/or scaling of the independent variable. Thus, f ( ? z) is the function whose value at x is the number f (x ? z), while g( + ) is the function whose value at t is g( + t), etc. It is also worth pointing out that I have been very careful to distinguish between `equality' and `equality by de nition'. The latter I have always indicated by using a colon on the same side of the equality sign as the term being de ned. I use Dr f (instead of f (r) ) to denote the rth derivative of the function f , and use r to denote the collection of all polynomials of degree r. The notation <r for the collection of all polynomials of degree < r (i.e., of order r) will be particularly handy. Finally, I use a double period to indicate an interval; e.g., x : : y) := f(1 ? t)x + ty : 0 t < 1g. This helps to distinguish the interval (a : : b) from the point (a; b) in the plane, or the interval a : : b] from the rst divided di erence a; b].