[{"data":1,"prerenderedAt":872},["ShallowReactive",2],{"blog-en-/en/blog/sensor-performance-terminology":3},{"id":4,"title":5,"body":6,"description":858,"extension":859,"meta":860,"navigation":153,"path":868,"seo":869,"stem":870,"__hash__":871},"en_blog/en/blog/sensor-performance-terminology.md","Sensor Performance Terminology: Guide to Sensitivity, Accuracy, and Resolution",{"type":7,"value":8,"toc":839},"minimark",[9,14,18,22,27,30,37,43,91,95,98,103,116,122,195,199,202,205,216,221,225,231,237,305,310,321,325,329,332,337,348,352,355,360,380,422,426,429,434,445,499,503,506,511,531,536,547,551,554,559,573,578,581,633,638,652,656,659,748,752,813,817,820,823,835],[10,11,13],"h2",{"id":12},"introduction","Introduction",[15,16,17],"p",{},"Understanding performance terminology is critically important for making the right sensor selection in industrial measurement systems. In this article, we will examine in detail the fundamental concepts that determine sensor performance.",[10,19,21],{"id":20},"fundamental-performance-parameters","📊 Fundamental Performance Parameters",[23,24,26],"h3",{"id":25},"_1-resolution","1. Resolution",[15,28,29],{},"The smallest change or smallest signal increment that the sensor can detect.",[15,31,32,36],{},[33,34,35],"strong",{},"Example:"," If a temperature sensor has a resolution of 0.1°C, it can only detect the transition from 25.0°C to 25.1°C, not the difference between 25.05°C and 25.15°C.",[15,38,39,42],{},[33,40,41],{},"⚠️ Important Note:"," High resolution does not mean high accuracy!",[44,45,50],"pre",{"className":46,"code":47,"language":48,"meta":49,"style":49},"language-python shiki shiki-themes github-light github-dark","# Resolution calculation example\nadc_bits = 24  # 24-bit ADC\nvoltage_range = 10.0  # 10V range\nresolution = voltage_range / (2**adc_bits)\nprint(f\"Resolution: {resolution*1e6:.3f} µV\")\n# Output: Resolution: 0.596 µV\n","python","",[51,52,53,61,67,73,79,85],"code",{"__ignoreMap":49},[54,55,58],"span",{"class":56,"line":57},"line",1,[54,59,60],{},"# Resolution calculation example\n",[54,62,64],{"class":56,"line":63},2,[54,65,66],{},"adc_bits = 24  # 24-bit ADC\n",[54,68,70],{"class":56,"line":69},3,[54,71,72],{},"voltage_range = 10.0  # 10V range\n",[54,74,76],{"class":56,"line":75},4,[54,77,78],{},"resolution = voltage_range / (2**adc_bits)\n",[54,80,82],{"class":56,"line":81},5,[54,83,84],{},"print(f\"Resolution: {resolution*1e6:.3f} µV\")\n",[54,86,88],{"class":56,"line":87},6,[54,89,90],{},"# Output: Resolution: 0.596 µV\n",[23,92,94],{"id":93},"_2-sensitivity","2. Sensitivity",[15,96,97],{},"The rate of change in the sensor's output corresponding to a change in the measured input. This is usually expressed as a slope.",[15,99,100],{},[33,101,102],{},"Unit Examples:",[104,105,106,110,113],"ul",{},[107,108,109],"li",{},"mV/psi (pressure sensor)",[107,111,112],{},"mA/°C (temperature sensor)",[107,114,115],{},"mV/V (loadcell)",[15,117,118,121],{},[33,119,120],{},"High Sensitivity:"," A small change in input causes a large change in output.",[44,123,127],{"className":124,"code":125,"language":126,"meta":49,"style":49},"language-c shiki shiki-themes github-light github-dark","// Loadcell sensitivity calculation\nfloat sensitivity = 2.0;  // mV/V\nfloat excitation = 10.0;  // V\nfloat full_scale = 100.0; // kg\n\n// Output voltage at full scale\nfloat output_voltage = sensitivity * excitation;\n// 20 mV @ 100 kg load\n\n// Voltage change per 1 kg\nfloat voltage_per_kg = output_voltage / full_scale;\n// 0.2 mV/kg\n","c",[51,128,129,134,139,144,149,155,160,166,172,177,183,189],{"__ignoreMap":49},[54,130,131],{"class":56,"line":57},[54,132,133],{},"// Loadcell sensitivity calculation\n",[54,135,136],{"class":56,"line":63},[54,137,138],{},"float sensitivity = 2.0;  // mV/V\n",[54,140,141],{"class":56,"line":69},[54,142,143],{},"float excitation = 10.0;  // V\n",[54,145,146],{"class":56,"line":75},[54,147,148],{},"float full_scale = 100.0; // kg\n",[54,150,151],{"class":56,"line":81},[54,152,154],{"emptyLinePlaceholder":153},true,"\n",[54,156,157],{"class":56,"line":87},[54,158,159],{},"// Output voltage at full scale\n",[54,161,163],{"class":56,"line":162},7,[54,164,165],{},"float output_voltage = sensitivity * excitation;\n",[54,167,169],{"class":56,"line":168},8,[54,170,171],{},"// 20 mV @ 100 kg load\n",[54,173,175],{"class":56,"line":174},9,[54,176,154],{"emptyLinePlaceholder":153},[54,178,180],{"class":56,"line":179},10,[54,181,182],{},"// Voltage change per 1 kg\n",[54,184,186],{"class":56,"line":185},11,[54,187,188],{},"float voltage_per_kg = output_voltage / full_scale;\n",[54,190,192],{"class":56,"line":191},12,[54,193,194],{},"// 0.2 mV/kg\n",[23,196,198],{"id":197},"_3-accuracy","3. Accuracy",[15,200,201],{},"How close the measurement obtained from the sensor is to the true value. It indicates the magnitude of the sensor's error.",[15,203,204],{},"Usually expressed as:",[104,206,207,210,213],{},[107,208,209],{},"Percentage: ±0.1% FS (Full Scale)",[107,211,212],{},"In units: ±0.5°C",[107,214,215],{},"Deviation from true value: ±2 LSB",[15,217,218,220],{},[33,219,35],{}," If the sensor measures 29.8°C when the actual temperature is 30.0°C, it shows a 0.2°C error.",[23,222,224],{"id":223},"_4-repeatability-and-precision","4. Repeatability and Precision",[15,226,227,230],{},[33,228,229],{},"Repeatability:"," How consistently the sensor gives the same output when the same input is applied repeatedly under the same conditions.",[15,232,233,236],{},[33,234,235],{},"Precision:"," Similar to repeatability, it indicates how close measurements are to each other (low dispersion).",[44,238,240],{"className":46,"code":239,"language":48,"meta":49,"style":49},"import numpy as np\n\n# 10 repeated measurement example\nmeasurements = [25.1, 25.2, 25.1, 25.2, 25.1, 25.2, 25.1, 25.2, 25.1, 25.2]\ntrue_value = 25.0\n\n# Precision (standard deviation)\nprecision = np.std(measurements)\nprint(f\"Precision (σ): ±{precision:.3f}°C\")\n\n# Accuracy (average error)\naccuracy = abs(np.mean(measurements) - true_value)\nprint(f\"Accuracy Error: {accuracy:.3f}°C\")\n",[51,241,242,247,251,256,261,266,270,275,280,285,289,294,299],{"__ignoreMap":49},[54,243,244],{"class":56,"line":57},[54,245,246],{},"import numpy as np\n",[54,248,249],{"class":56,"line":63},[54,250,154],{"emptyLinePlaceholder":153},[54,252,253],{"class":56,"line":69},[54,254,255],{},"# 10 repeated measurement example\n",[54,257,258],{"class":56,"line":75},[54,259,260],{},"measurements = [25.1, 25.2, 25.1, 25.2, 25.1, 25.2, 25.1, 25.2, 25.1, 25.2]\n",[54,262,263],{"class":56,"line":81},[54,264,265],{},"true_value = 25.0\n",[54,267,268],{"class":56,"line":87},[54,269,154],{"emptyLinePlaceholder":153},[54,271,272],{"class":56,"line":162},[54,273,274],{},"# Precision (standard deviation)\n",[54,276,277],{"class":56,"line":168},[54,278,279],{},"precision = np.std(measurements)\n",[54,281,282],{"class":56,"line":174},[54,283,284],{},"print(f\"Precision (σ): ±{precision:.3f}°C\")\n",[54,286,287],{"class":56,"line":179},[54,288,154],{"emptyLinePlaceholder":153},[54,290,291],{"class":56,"line":185},[54,292,293],{},"# Accuracy (average error)\n",[54,295,296],{"class":56,"line":191},[54,297,298],{},"accuracy = abs(np.mean(measurements) - true_value)\n",[54,300,302],{"class":56,"line":301},13,[54,303,304],{},"print(f\"Accuracy Error: {accuracy:.3f}°C\")\n",[15,306,307],{},[33,308,309],{},"Target Analogy:",[104,311,312,315,318],{},[107,313,314],{},"High precision, low accuracy: Arrows outside the target but close to each other",[107,316,317],{},"High accuracy, low precision: Arrows scattered around the target",[107,319,320],{},"Ideal: Both high precision and high accuracy",[10,322,324],{"id":323},"dynamic-and-operating-terms","⚡ Dynamic and Operating Terms",[23,326,328],{"id":327},"_5-operating-range-span","5. Operating Range / Span",[15,330,331],{},"The range between the smallest and largest input values within which the sensor can accurately measure.",[15,333,334],{},[33,335,336],{},"Examples:",[104,338,339,342,345],{},[107,340,341],{},"Pressure sensor: 0-100 psi",[107,343,344],{},"Temperature sensor: -40°C to +85°C",[107,346,347],{},"Loadcell: 0-500 kg",[23,349,351],{"id":350},"_6-latency-response-time","6. Latency / Response Time",[15,353,354],{},"The time it takes for the sensor to accurately reflect a new value when there is a change in input.",[15,356,357],{},[33,358,359],{},"Definitions:",[104,361,362,368,374],{},[107,363,364,367],{},[33,365,366],{},"Rise Time (tr):"," Time for output to go from 10% to 90%",[107,369,370,373],{},[33,371,372],{},"Settling Time:"," Time for output to stay within ±X% of final value",[107,375,376,379],{},[33,377,378],{},"Time Constant (τ):"," Time to reach 63.2% (for first-order systems)",[44,381,383],{"className":124,"code":382,"language":126,"meta":49,"style":49},"// ZMA Data Acquisition sampling rate\n#define SAMPLE_RATE 1000  // Hz\n#define FILTER_ORDER 4\n\n// Minimum detectable signal duration\nfloat min_signal_duration = (1.0 / SAMPLE_RATE) * FILTER_ORDER * 2;\n// ~8 ms minimum detection time\n",[51,384,385,390,398,403,407,412,417],{"__ignoreMap":49},[54,386,387],{"class":56,"line":57},[54,388,389],{},"// ZMA Data Acquisition sampling rate\n",[54,391,392,395],{"class":56,"line":63},[54,393,394],{},"#define SAMPLE_RATE 1000",[54,396,397],{},"  // Hz\n",[54,399,400],{"class":56,"line":69},[54,401,402],{},"#define FILTER_ORDER 4\n",[54,404,405],{"class":56,"line":75},[54,406,154],{"emptyLinePlaceholder":153},[54,408,409],{"class":56,"line":81},[54,410,411],{},"// Minimum detectable signal duration\n",[54,413,414],{"class":56,"line":87},[54,415,416],{},"float min_signal_duration = (1.0 / SAMPLE_RATE) * FILTER_ORDER * 2;\n",[54,418,419],{"class":56,"line":162},[54,420,421],{},"// ~8 ms minimum detection time\n",[23,423,425],{"id":424},"_7-hysteresis","7. Hysteresis",[15,427,428],{},"The sensor giving different outputs for the same input value depending on whether the input reached that value by increasing or decreasing.",[15,430,431,433],{},[33,432,35],{}," In a pressure sensor:",[104,435,436,439,442],{},[107,437,438],{},"Rising to 50 psi → 2.50 V output",[107,440,441],{},"Falling to 50 psi → 2.48 V output",[107,443,444],{},"Hysteresis: 0.02 V (at 50 psi)",[44,446,448],{"className":46,"code":447,"language":48,"meta":49,"style":49},"def calculate_hysteresis(rising_value, falling_value, full_scale):\n    \"\"\"Hysteresis calculation\"\"\"\n    hysteresis_absolute = abs(rising_value - falling_value)\n    hysteresis_percent = (hysteresis_absolute / full_scale) * 100\n    return hysteresis_percent\n\n# Example\nhyst = calculate_hysteresis(2.50, 2.48, 5.0)\nprint(f\"Hysteresis: {hyst:.2f}% FS\")\n# Output: Hysteresis: 0.40% FS\n",[51,449,450,455,460,465,470,475,479,484,489,494],{"__ignoreMap":49},[54,451,452],{"class":56,"line":57},[54,453,454],{},"def calculate_hysteresis(rising_value, falling_value, full_scale):\n",[54,456,457],{"class":56,"line":63},[54,458,459],{},"    \"\"\"Hysteresis calculation\"\"\"\n",[54,461,462],{"class":56,"line":69},[54,463,464],{},"    hysteresis_absolute = abs(rising_value - falling_value)\n",[54,466,467],{"class":56,"line":75},[54,468,469],{},"    hysteresis_percent = (hysteresis_absolute / full_scale) * 100\n",[54,471,472],{"class":56,"line":81},[54,473,474],{},"    return hysteresis_percent\n",[54,476,477],{"class":56,"line":87},[54,478,154],{"emptyLinePlaceholder":153},[54,480,481],{"class":56,"line":162},[54,482,483],{},"# Example\n",[54,485,486],{"class":56,"line":168},[54,487,488],{},"hyst = calculate_hysteresis(2.50, 2.48, 5.0)\n",[54,490,491],{"class":56,"line":174},[54,492,493],{},"print(f\"Hysteresis: {hyst:.2f}% FS\")\n",[54,495,496],{"class":56,"line":179},[54,497,498],{},"# Output: Hysteresis: 0.40% FS\n",[23,500,502],{"id":501},"_8-drift","8. Drift",[15,504,505],{},"The gradual change in the sensor's output over time despite constant conditions.",[15,507,508],{},[33,509,510],{},"Types of Drift:",[104,512,513,519,525],{},[107,514,515,518],{},[33,516,517],{},"Zero Drift:"," Shift in zero point",[107,520,521,524],{},[33,522,523],{},"Span Drift:"," Change in slope",[107,526,527,530],{},[33,528,529],{},"Temperature Drift:"," Temperature-dependent drift (ppm/°C)",[15,532,533],{},[33,534,535],{},"Prevention Methods:",[104,537,538,541,544],{},[107,539,540],{},"Regular calibration",[107,542,543],{},"Temperature compensation",[107,545,546],{},"High-quality component selection",[23,548,550],{"id":549},"_9-noise","9. Noise",[15,552,553],{},"Unwanted random signals in the sensor's output that do not originate from the measured physical quantity.",[15,555,556],{},[33,557,558],{},"Noise Sources:",[104,560,561,564,567,570],{},[107,562,563],{},"Thermal noise (Johnson-Nyquist)",[107,565,566],{},"Shot noise",[107,568,569],{},"1/f noise (flicker noise)",[107,571,572],{},"Environmental interference (EMI/RFI)",[15,574,575],{},[33,576,577],{},"Signal-to-Noise Ratio (SNR):",[15,579,580],{},"SNR (dB) = 20 × log₁₀(V_signal / V_noise)",[44,582,584],{"className":46,"code":583,"language":48,"meta":49,"style":49},"import numpy as np\n\n# SNR calculation\nsignal_amplitude = 10.0  # V\nnoise_rms = 0.001  # V\n\nsnr_ratio = signal_amplitude / noise_rms\nsnr_db = 20 * np.log10(snr_ratio)\nprint(f\"SNR: {snr_db:.1f} dB\")\n# Output: SNR: 80.0 dB\n",[51,585,586,590,594,599,604,609,613,618,623,628],{"__ignoreMap":49},[54,587,588],{"class":56,"line":57},[54,589,246],{},[54,591,592],{"class":56,"line":63},[54,593,154],{"emptyLinePlaceholder":153},[54,595,596],{"class":56,"line":69},[54,597,598],{},"# SNR calculation\n",[54,600,601],{"class":56,"line":75},[54,602,603],{},"signal_amplitude = 10.0  # V\n",[54,605,606],{"class":56,"line":81},[54,607,608],{},"noise_rms = 0.001  # V\n",[54,610,611],{"class":56,"line":87},[54,612,154],{"emptyLinePlaceholder":153},[54,614,615],{"class":56,"line":162},[54,616,617],{},"snr_ratio = signal_amplitude / noise_rms\n",[54,619,620],{"class":56,"line":168},[54,621,622],{},"snr_db = 20 * np.log10(snr_ratio)\n",[54,624,625],{"class":56,"line":174},[54,626,627],{},"print(f\"SNR: {snr_db:.1f} dB\")\n",[54,629,630],{"class":56,"line":179},[54,631,632],{},"# Output: SNR: 80.0 dB\n",[15,634,635],{},[33,636,637],{},"Noise Reduction Techniques:",[104,639,640,643,646,649],{},[107,641,642],{},"Digital filtering",[107,644,645],{},"Averaging",[107,647,648],{},"Shielding",[107,650,651],{},"Differential signal processing",[10,653,655],{"id":654},"performance-in-zma-products","🎯 Performance in ZMA Products",[15,657,658],{},"These parameters are optimized as follows in our ZMA Data Acquisition system:",[660,661,662,678],"table",{},[663,664,665],"thead",{},[666,667,668,672,675],"tr",{},[669,670,671],"th",{},"Parameter",[669,673,674],{},"Value",[669,676,677],{},"Description",[679,680,681,693,704,715,726,737],"tbody",{},[666,682,683,687,690],{},[684,685,686],"td",{},"Resolution",[684,688,689],{},"24-bit",[684,691,692],{},"~0.6 µV @ 10V range",[666,694,695,698,701],{},[684,696,697],{},"Sensitivity",[684,699,700],{},"2-3 mV/V",[684,702,703],{},"Loadcell compatible",[666,705,706,709,712],{},[684,707,708],{},"Accuracy",[684,710,711],{},"±0.05% FS",[684,713,714],{},"High accuracy",[666,716,717,720,723],{},[684,718,719],{},"Repeatability",[684,721,722],{},"±0.01% FS",[684,724,725],{},"Excellent precision",[666,727,728,731,734],{},[684,729,730],{},"Sampling Rate",[684,732,733],{},"1 kHz",[684,735,736],{},"Fast dynamic response",[666,738,739,742,745],{},[684,740,741],{},"Noise",[684,743,744],{},"\u003C1 µV RMS",[684,746,747],{},"Low noise",[10,749,751],{"id":750},"practical-application-recommendations","💡 Practical Application Recommendations",[753,754,755,771,787,800],"ol",{},[107,756,757,760],{},[33,758,759],{},"Determine Application Requirements:",[104,761,762,765,768],{},[107,763,764],{},"What is the measurement range?",[107,766,767],{},"How much precision do you need?",[107,769,770],{},"How important is dynamic response?",[107,772,773,776],{},[33,774,775],{},"Consider Environmental Factors:",[104,777,778,781,784],{},[107,779,780],{},"Operating temperature range",[107,782,783],{},"Humidity and vibration",[107,785,786],{},"EMI/RFI sources",[107,788,789,792],{},[33,790,791],{},"Perform Regular Calibration:",[104,793,794,797],{},[107,795,796],{},"Minimize drift effects",[107,798,799],{},"Maintain long-term accuracy",[107,801,802,805],{},[33,803,804],{},"Use Signal Processing:",[104,806,807,810],{},[107,808,809],{},"Reduce noise with filtering",[107,811,812],{},"Increase precision with averaging",[10,814,816],{"id":815},"conclusion","Conclusion",[15,818,819],{},"Understanding sensor performance parameters correctly is fundamental to designing reliable measurement systems. Each application has different requirements, and understanding these terms will help you make the right sensor selection.",[821,822],"hr",{},[15,824,825],{},[826,827,828,829,834],"em",{},"Our ZMA products offer high performance and reliability in industrial applications. ",[830,831,833],"a",{"href":832},"/en/contact","Contact us"," for detailed technical information.",[836,837,838],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":49,"searchDepth":63,"depth":63,"links":840},[841,842,848,855,856,857],{"id":12,"depth":63,"text":13},{"id":20,"depth":63,"text":21,"children":843},[844,845,846,847],{"id":25,"depth":69,"text":26},{"id":93,"depth":69,"text":94},{"id":197,"depth":69,"text":198},{"id":223,"depth":69,"text":224},{"id":323,"depth":63,"text":324,"children":849},[850,851,852,853,854],{"id":327,"depth":69,"text":328},{"id":350,"depth":69,"text":351},{"id":424,"depth":69,"text":425},{"id":501,"depth":69,"text":502},{"id":549,"depth":69,"text":550},{"id":654,"depth":63,"text":655},{"id":750,"depth":63,"text":751},{"id":815,"depth":63,"text":816},"Detailed examination of fundamental performance parameters such as resolution, sensitivity, accuracy, and repeatability in industrial sensors.","md",{"date":861,"author":862,"readTime":179,"tags":863},"2024-08-20","Amazeng Technical Team",[864,865,866,867],"Sensors","Measurement","Instrumentation","Performance","/en/blog/sensor-performance-terminology",{"title":5,"description":858},"en/blog/sensor-performance-terminology","xSLpReB5WMdjwDUR8Z9ESurP4MIExAUJujsBzZcVSYU",1778229659004]