{"id":100015,"date":"2026-02-15T20:06:08","date_gmt":"2026-02-15T20:06:08","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100015"},"modified":"2026-02-15T20:06:08","modified_gmt":"2026-02-15T20:06:08","slug":"bearing-defect-frequencies","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/pt_br\/calculators\/bearing-defect-frequencies\/","title":{"rendered":"Calculadora de Frequ\u00eancia de Defeitos em Rolamentos | BPFO BPFI BSF FTF"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Bearing Defect Frequency Calculator\",\"alternateName\":[\"BPFO BPFI Calculator\",\"Bearing Fault Frequency Calculator\",\"Rolling Element Bearing Frequency Calculator\"],\"description\":\"Free online engineering calculator for bearing defect frequencies. Computes BPFO, BPFI, BSF, FTF and their harmonics from bearing geometry and shaft speed.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/bearing-defect-frequencies\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2025-01-01\",\"dateModified\":\"2026-02-14\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"BPFO, BPFI, BSF, FTF calculation\",\"Harmonics (2\u00d7 and 3\u00d7)\",\"Common bearing presets\",\"Auto-calculation on input change\",\"URL parameter sharing\",\"Calculation history\"],\"keywords\":\"bearing defect frequency, BPFO, BPFI, BSF, FTF, vibration analysis, bearing diagnostics\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What are bearing defect frequencies?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Bearing defect frequencies are characteristic vibration frequencies generated when a rolling element bearing has a localized defect on one of its components (outer race, inner race, rolling elements, or cage). Each component produces a unique frequency based on bearing geometry and shaft speed.\"}},\n{\"@type\":\"Question\",\"name\":\"How to identify an outer race fault?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"An outer race fault appears at the BPFO frequency and its harmonics (2\u00d7, 3\u00d7 BPFO) in the vibration spectrum. Since the outer race is typically stationary, the impacts produce a clean, evenly spaced pattern. BPFO is the most common bearing defect frequency.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the difference between inner race and outer race faults?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Outer race faults appear at BPFO and are usually cleaner in the spectrum because the defect is in the load zone at a fixed position. Inner race faults appear at BPFI with sidebands at shaft speed, because the defect rotates in and out of the load zone.\"}},\n{\"@type\":\"Question\",\"name\":\"Why do harmonics matter in bearing analysis?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Harmonics (2\u00d7, 3\u00d7 etc.) of bearing defect frequencies indicate defect severity. Early-stage defects show mainly the fundamental frequency. As damage progresses, more harmonics appear with increasing amplitude. The presence of multiple harmonics suggests an advancing fault.\"}},\n{\"@type\":\"Question\",\"name\":\"Where can I find bearing geometry data?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Bearing geometry data (number of rolling elements, ball diameter, pitch diameter, contact angle) can be found in manufacturer catalogs from SKF, FAG\/Schaeffler, NSK, Timken, NTN, and others. Many manufacturers also provide online tools and databases. Some vibration analysis software includes built-in bearing databases.\"}}\n]}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Bearing Defect Frequencies\",\"item\":\"https:\/\/vibromera.eu\/calculators\/bearing-defect-frequencies\/\"}\n]}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\n\n<style>\n:root {\n    --vc-bg: #f4f1ec;\n    --vc-surface: #ffffff;\n    --vc-surface-alt: #f8f6f2;\n    --vc-ink: #1a1a1a;\n    --vc-ink-secondary: #5a5650;\n    --vc-ink-muted: #8a857e;\n    --vc-accent: #c85a2a;\n    --vc-accent-hover: #b04d22;\n    --vc-accent-light: #fdf0ea;\n    --vc-blue: #2a5c8c;\n    --vc-blue-light: #eaf1f8;\n    --vc-green: #2a7a4b;\n    --vc-green-light: #eaf8ef;\n    --vc-yellow: #a67c00;\n    --vc-yellow-light: #fef9e8;\n    --vc-red: #b91c1c;\n    --vc-red-light: #fef2f2;\n    --vc-border: #d9d4cc;\n    --vc-border-light: #e8e4dd;\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\n    --vc-radius: 8px;\n    --vc-radius-lg: 12px;\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\n    --vc-display: 'Fraunces', Georgia, serif;\n}\n\n.vc-calculator {\n    font-family: var(--vc-font);\n    font-size: 15px;\n    line-height: 1.65;\n    color: var(--vc-ink);\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 20px 16px 40px;\n    -webkit-font-smoothing: antialiased;\n}\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\n.vc-header-title { font-family:var(--vc-display); font-size:clamp(24px,4vw,36px); font-weight:800; line-height:1.15; color:var(--vc-ink); margin:0 0 16px; letter-spacing:-0.02em; }\n.vc-header-subtitle { font-size:15px; color:var(--vc-ink-secondary); margin:0 auto 20px; max-width:600px; }\n.vc-badges { display:inline-flex; gap:8px; flex-wrap:wrap; justify-content:center; }\n.vc-badge { font-family:var(--vc-mono); font-size:11px; font-weight:500; padding:4px 10px; border-radius:4px; background:var(--vc-surface); border:1px solid var(--vc-border); color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\n.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); box-shadow:var(--vc-shadow); overflow:hidden; margin-top:32px; }\n\n\/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\n.vc-unit-bar { display:flex; border-bottom:1px solid var(--vc-border-light); background:var(--vc-surface-alt); }\n.vc-unit-btn { flex:1; padding:12px; border:none; background:transparent; font-family:var(--vc-font); font-size:13px; font-weight:600; color:var(--vc-ink-muted); cursor:pointer; transition:all 0.2s; position:relative; }\n.vc-unit-btn:hover { color:var(--vc-ink-secondary); background:rgba(200,90,42,0.04); }\n.vc-unit-btn.vc-active { color:var(--vc-accent); background:var(--vc-surface); }\n.vc-unit-btn.vc-active::after { content:''; position:absolute; bottom:-1px; left:16px; right:16px; height:2px; background:var(--vc-accent); border-radius:1px 1px 0 0; }\n\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\n.vc-form { padding:24px; }\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\n.vc-field { display:flex; flex-direction:column; }\n.vc-field-full { grid-column: 1 \/ -1; }\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\n.vc-label-hint { font-weight:400; text-transform:none; letter-spacing:0; color:var(--vc-ink-muted); font-size:11px; }\n.vc-select, .vc-input { width:100%; padding:10px 12px; border:1.5px solid var(--vc-border); border-radius:6px; font-family:var(--vc-font); font-size:14px; color:var(--vc-ink); background:var(--vc-surface); transition:border-color 0.15s, box-shadow 0.15s; }\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\n\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\n.vc-preset-btn { padding:5px 12px; font-family:var(--vc-font); font-size:12px; font-weight:500; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\n.vc-results { border-top:1px solid var(--vc-border-light); background:var(--vc-surface-alt); padding:0; max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\n.vc-results.vc-visible { max-height:4000px; padding:24px; }\n.vc-results-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }\n.vc-results-title { font-family:var(--vc-display); font-size:20px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-copy-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface); font-family:var(--vc-font); font-size:12px; font-weight:500; color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\n\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\n.vc-rcard:hover { transform:translateY(-1px); }\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 HARMONICS TABLE \u2500\u2500 *\/\n.vc-harmonics-table { width:100%; border-collapse:collapse; margin-top:16px; font-size:13px; }\n.vc-harmonics-table th, .vc-harmonics-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\n.vc-harmonics-table th { background:var(--vc-surface-alt); font-family:var(--vc-mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\n.vc-harmonics-table tr:nth-child(even) { background:var(--vc-surface-alt); }\n.vc-harmonics-table td { font-family:var(--vc-mono); font-size:13px; }\n@media(max-width:600px) { .vc-harmonics-table { font-size:12px; } .vc-harmonics-table th, .vc-harmonics-table td { padding:8px; } }\n\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n.vc-section { margin-top:24px; border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); background:var(--vc-surface); box-shadow:var(--vc-shadow); overflow:hidden; }\n.vc-section-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border:none; background:transparent; cursor:pointer; font-family:var(--vc-font); text-align:left; transition:background 0.15s; }\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\n.vc-section-icon { font-size:20px; line-height:1; }\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\n\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\n.vc-theory h3:first-child { margin-top:20px; }\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\n.vc-theory li { margin-bottom:5px; }\n.vc-formula-box { background:var(--vc-surface-alt); border:2px solid var(--vc-border); border-radius:6px; padding:14px 20px; font-family:var(--vc-mono); font-size:16px; font-weight:500; text-align:center; margin:14px 0; color:var(--vc-ink); overflow-x:auto; }\n.vc-info-box { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-warning-box { background:var(--vc-yellow-light); border-left:3px solid var(--vc-yellow); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\n\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\n.vc-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:none; background:var(--vc-surface-alt); cursor:pointer; font-family:var(--vc-font); font-size:15px; font-weight:600; color:var(--vc-ink); text-align:left; transition:background 0.15s; }\n.vc-faq-q:hover { background:#ede9e3; }\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\n.vc-faq-a-inner p { margin:0 0 8px; }\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\n.vc-faq-a-inner li { margin-bottom:3px; }\n\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\n.vc-related-link { display:inline-block; padding:8px 16px; font-family:var(--vc-font); font-size:13px; font-weight:600; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); border:1px solid var(--vc-border); border-radius:var(--vc-radius); text-decoration:none; transition:all 0.15s; }\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\n.vc-promo { margin-top:24px; padding:20px; background:linear-gradient(135deg, var(--vc-accent-light), var(--vc-surface)); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); display:flex; align-items:center; gap:16px; }\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-promo-text strong { color:var(--vc-ink); }\n.vc-promo-link { padding:8px 20px; font-size:13px; font-weight:700; color:#fff; background:var(--vc-accent); border-radius:var(--vc-radius); text-decoration:none; white-space:nowrap; transition:background 0.15s; }\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\n\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\n.vc-footer a { color:var(--vc-accent); text-decoration:none; }\n.vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; }\n.vc-footer-links a { margin:0 8px; }\n\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\n@media print {\n    .vc-section-body { max-height:none!important; }\n    .vc-faq-a { max-height:none!important; }\n    .vc-results { max-height:none!important; padding:24px!important; }\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\n}\n.vc-results.vc-visible{max-height:5000px}\n.vc-viz{margin:20px 0;background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px;overflow:hidden}\n.vc-viz svg{width:100%;height:auto;display:block}\n.vc-viz-title{font-family:var(--vc-mono);font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--vc-ink-muted);margin-bottom:12px}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-bearing-defect\">\n\n<!-- Header -->\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool #035<\/p>\n    <h1 class=\"vc-header-title\">Bearing Defect Frequency Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Calculate BPFO, BPFI, BSF, and FTF from bearing geometry and shaft speed. Includes 2\u00d7 and 3\u00d7 harmonics for vibration diagnostics.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">BPFO<\/span>\n        <span class=\"vc-badge\">BPFI<\/span>\n        <span class=\"vc-badge\">BSF<\/span>\n        <span class=\"vc-badge\">FTF<\/span>\n    <\/div>\n<\/header>\n\n<!-- Calculator Card -->\n<div class=\"vc-card\">\n    <div class=\"vc-unit-bar\">\n        <button type=\"button\" class=\"vc-unit-btn vc-active\" data-system=\"metric\">Metric (mm)<\/button>\n        <button type=\"button\" class=\"vc-unit-btn\" data-system=\"imperial\">Imperial (in)<\/button>\n    <\/div>\n\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-form-grid\">\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-z\">Number of Rolling Elements <span class=\"vc-label-hint\">(Z)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-z\" inputmode=\"numeric\" step=\"1\" min=\"1\" placeholder=\"e.g. 9\" value=\"9\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-bd\">Ball \/ Roller Diameter <span class=\"vc-label-hint\" id=\"vc-bd-unit\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-bd\" inputmode=\"decimal\" step=\"any\" min=\"0.01\" placeholder=\"e.g. 7.94\" value=\"7.94\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-pd\">Pitch Diameter <span class=\"vc-label-hint\" id=\"vc-pd-unit\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-pd\" inputmode=\"decimal\" step=\"any\" min=\"0.01\" placeholder=\"e.g. 38.5\" value=\"38.5\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-alpha\">Contact Angle <span class=\"vc-label-hint\">(degrees)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-alpha\" inputmode=\"decimal\" step=\"any\" min=\"0\" max=\"90\" placeholder=\"e.g. 0\" value=\"0\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-rpm\">Shaft Speed <span class=\"vc-label-hint\">(RPM)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-rpm\" inputmode=\"decimal\" step=\"any\" min=\"1\" placeholder=\"e.g. 1500\" value=\"1500\">\n            <\/div>\n        <\/div>\n\n        <!-- Presets -->\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-z=\"9\" data-bd=\"7.94\" data-pd=\"38.5\" data-a=\"0\" data-rpm=\"1500\">6205 (9 balls, 1500 RPM)<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-z=\"8\" data-bd=\"17.46\" data-pd=\"72.5\" data-a=\"0\" data-rpm=\"1500\">6310 (8 balls, 1500 RPM)<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-z=\"14\" data-bd=\"10\" data-pd=\"65\" data-a=\"0\" data-rpm=\"3000\">NU210 (14 rollers, 3000 RPM)<\/button>\n        <\/div>\n    <\/form>\n\n    <!-- Results -->\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg>\n                Copy\n            <\/button>\n        <\/div>\n        <div class=\"vc-result-grid\">\n            <div class=\"vc-rcard vc-rcard-primary\">\n                <div class=\"vc-rcard-label\">BPFO \u2014 Outer Race Defect Frequency<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-bpfo\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">BPFI \u2014 Inner Race Defect Frequency<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-bpfi\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">BSF \u2014 Ball Spin Frequency<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-bsf\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">FTF \u2014 Cage (Train) Frequency<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-ftf\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Shaft Frequency<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-shaft\">\u2014<\/div>\n            <\/div>\n        <\/div>\n\n        <h3 style=\"font-family:var(--vc-display);font-size:17px;font-weight:700;margin:8px 0 12px;\">Harmonics Table<\/h3>\n        <div style=\"overflow-x:auto;\">\n            <table class=\"vc-harmonics-table\" id=\"vc-harmonics-tbl\">\n                <thead>\n                    <tr>\n                        <th>Frequency<\/th>\n                        <th>1\u00d7 (Hz)<\/th>\n                        <th>1\u00d7 (Order)<\/th>\n                        <th>2\u00d7 (Hz)<\/th>\n                        <th>2\u00d7 (Order)<\/th>\n                        <th>3\u00d7 (Hz)<\/th>\n                        <th>3\u00d7 (Order)<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody id=\"vc-harmonics-body\"><\/tbody>\n            <\/table>\n        <\/div>\n        <div class=\"vc-viz\" id=\"vc-spectrum-viz\"><\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory & Reference -->\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Bearing Defect Frequencies<\/h3>\n            <p>When a rolling element bearing develops a localized defect, the repetitive impact generates characteristic frequencies that depend on the bearing geometry and shaft speed. The four fundamental defect frequencies are:<\/p>\n\n            <h3>Fundamental Train Frequency (FTF)<\/h3>\n            <div class=\"vc-formula-box\" id=\"vc-katex-ftf\"><\/div>\n            <p>The cage rotational frequency. An elevated FTF indicates cage wear or damage.<\/p>\n\n            <h3>Ball Pass Frequency \u2014 Outer Race (BPFO)<\/h3>\n            <div class=\"vc-formula-box\" id=\"vc-katex-bpfo\"><\/div>\n            <p>The rate at which rolling elements pass a point on the outer race. This is the most common defect frequency as outer race faults are statistically most frequent.<\/p>\n\n            <h3>Ball Pass Frequency \u2014 Inner Race (BPFI)<\/h3>\n            <div class=\"vc-formula-box\" id=\"vc-katex-bpfi\"><\/div>\n            <p>The rate at which rolling elements pass a point on the inner race. Inner race faults typically show sidebands at shaft speed around BPFI.<\/p>\n\n            <h3>Ball Spin Frequency (BSF)<\/h3>\n            <div class=\"vc-formula-box\" id=\"vc-katex-bsf\"><\/div>\n            <p>The rotational frequency of a rolling element about its own axis. Rolling element defects often appear at 2\u00d7 BSF because the defect contacts both races per revolution.<\/p>\n\n            <div class=\"vc-info-box\">\n                <p><strong>Note:<\/strong> These formulas assume no slip \u2014 actual frequencies may differ by 1\u20133% due to slip and elastohydrodynamic effects. In practice, use these as approximate markers when searching the vibration spectrum.<\/p>\n            <\/div>\n\n            <h3>Practical Example<\/h3>\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 Bearing 6205, 1500 RPM<\/div>\n                <p><strong>Given:<\/strong> Z = 9, B<sub>d<\/sub> = 7.94 mm, P<sub>d<\/sub> = 38.5 mm, \u03b1 = 0\u00b0, RPM = 1500<\/p>\n                <p>Shaft freq = 1500\/60 = 25 Hz<\/p>\n                <p>B<sub>d<\/sub>\/P<sub>d<\/sub> = 0.2062, cos(0\u00b0) = 1<\/p>\n                <p>FTF = 25\/2 \u00d7 (1 \u2212 0.2062) = <strong>9.92 Hz<\/strong><\/p>\n                <p>BPFO = 9\/2 \u00d7 25 \u00d7 (1 \u2212 0.2062) = <strong>89.31 Hz<\/strong><\/p>\n                <p>BPFI = 9\/2 \u00d7 25 \u00d7 (1 + 0.2062) = <strong>135.69 Hz<\/strong><\/p>\n                <p>BSF = (38.5\/(2\u00d77.94)) \u00d7 25 \u00d7 (1 \u2212 0.2062\u00b2) = <strong>58.55 Hz<\/strong><\/p>\n            <\/div>\n\n            <div class=\"vc-warning-box\">\n                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Note:<\/strong> Contact angle \u03b1 is 0\u00b0 for deep groove ball bearings. For angular contact bearings it is typically 15\u201340\u00b0, and for tapered roller bearings 10\u201330\u00b0. Using the wrong contact angle will give incorrect frequencies.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related Calculators -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Calculators<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-related\">\n                <a class=\"vc-related-link\" href=\"\/calculators\/gear-mesh-frequency\/\">Gear Mesh Frequency<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/blade-pass-frequency\/\">Blade Pass Frequency<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/motor-electrical-frequencies\/\">Motor Electrical Frequencies<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-velocity\/\">Vibration Velocity (ISO 10816)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/residual-unbalance-iso1940\/\">Residual Unbalance (ISO 1940)<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- FAQ -->\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\u2753<\/span>\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Promo -->\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional vibration analysis instruments for bearing diagnostics, field balancing, and condition monitoring. Used in 50+ countries.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<!-- Footer -->\n<footer class=\"vc-footer\">\n    <p>&copy; 2024\u20132026 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Bearing defect frequency formulas per standard kinematic equations. Last updated: February 2026<\/p>\n    <div class=\"vc-footer-links\">\n        <a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a>\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\n    <\/div>\n<\/footer>\n\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\n<script>\n(function() {\n    'use strict';\n\n    var SLUG = 'bearing-defect-frequencies';\n    var unitSystem = 'metric';\n    var MM2IN = 1 \/ 25.4;\n\n    function $(id) { return document.getElementById(id); }\n    function fmt(n, d) { if (isNaN(n) || !isFinite(n)) return '\u2014'; var f = n.toFixed(d === undefined ? 2 : d); return f.replace(\/(\\.\\d*?)0+$\/, '$1').replace(\/\\.$\/, ''); }\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var Z = parseInt($('vc-z').value);\n        var BdVal = parseFloat($('vc-bd').value);\n        var PdVal = parseFloat($('vc-pd').value);\n        var alpha = parseFloat($('vc-alpha').value) || 0;\n        var RPM = parseFloat($('vc-rpm').value);\n\n        if (!Z || Z < 1 || !BdVal || BdVal <= 0 || !PdVal || PdVal <= 0 || !RPM || RPM <= 0) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        \/\/ Convert to mm if imperial\n        var Bd = unitSystem === 'imperial' ? BdVal * 25.4 : BdVal;\n        var Pd = unitSystem === 'imperial' ? PdVal * 25.4 : PdVal;\n\n        var cosA = Math.cos(alpha * Math.PI \/ 180);\n        var ratio = Bd \/ Pd;\n        var shaftFreq = RPM \/ 60;\n\n        var FTF = (shaftFreq \/ 2) * (1 - ratio * cosA);\n        var BPFO = (Z \/ 2) * shaftFreq * (1 - ratio * cosA);\n        var BPFI = (Z \/ 2) * shaftFreq * (1 + ratio * cosA);\n        var BSF = (Pd \/ (2 * Bd)) * shaftFreq * (1 - Math.pow(ratio * cosA, 2));\n\n        \/\/ Display results\n        $('vc-r-bpfo').innerHTML = fmt(BPFO, 2) + ' <span class=\"vc-rcard-unit\">Hz<\/span> <span class=\"vc-rcard-unit\">(' + fmt(BPFO \/ shaftFreq, 2) + '\u00d7)<\/span>';\n        $('vc-r-bpfi').innerHTML = fmt(BPFI, 2) + ' <span class=\"vc-rcard-unit\">Hz<\/span> <span class=\"vc-rcard-unit\">(' + fmt(BPFI \/ shaftFreq, 2) + '\u00d7)<\/span>';\n        $('vc-r-bsf').innerHTML = fmt(BSF, 2) + ' <span class=\"vc-rcard-unit\">Hz<\/span> <span class=\"vc-rcard-unit\">(' + fmt(BSF \/ shaftFreq, 2) + '\u00d7)<\/span>';\n        $('vc-r-ftf').innerHTML = fmt(FTF, 2) + ' <span class=\"vc-rcard-unit\">Hz<\/span> <span class=\"vc-rcard-unit\">(' + fmt(FTF \/ shaftFreq, 3) + '\u00d7)<\/span>';\n        $('vc-r-shaft').innerHTML = fmt(shaftFreq, 2) + ' <span class=\"vc-rcard-unit\">Hz<\/span> <span class=\"vc-rcard-unit\">(' + fmt(RPM) + ' RPM)<\/span>';\n\n        \/\/ Harmonics table\n        var freqs = [\n            { name: 'BPFO', val: BPFO },\n            { name: 'BPFI', val: BPFI },\n            { name: 'BSF', val: BSF },\n            { name: 'FTF', val: FTF }\n        ];\n        var tbody = $('vc-harmonics-body');\n        tbody.innerHTML = '';\n        freqs.forEach(function(f) {\n            var row = '<tr>';\n            row += '<td><strong>' + f.name + '<\/strong><\/td>';\n            for (var h = 1; h <= 3; h++) {\n                var hVal = f.val * h;\n                row += '<td>' + fmt(hVal, 2) + '<\/td>';\n                row += '<td>' + fmt(hVal \/ shaftFreq, 2) + '\u00d7<\/td>';\n            }\n            row += '<\/tr>';\n            tbody.innerHTML += row;\n        });\n\n        $('vc-results').classList.add('vc-visible');\n\n        \/\/ URL params\n        var u = new URL(window.location);\n        u.searchParams.set('z', Z);\n        u.searchParams.set('bd', $('vc-bd').value);\n        u.searchParams.set('pd', $('vc-pd').value);\n        u.searchParams.set('alpha', alpha);\n        u.searchParams.set('rpm', RPM);\n        history.replaceState(null, '', u.toString());\n\n        \/\/ History\n        saveHistory({\n            z: Z, bd: $('vc-bd').value, pd: $('vc-pd').value, alpha: alpha, rpm: RPM,\n            _summary: 'Z=' + Z + ', Bd=' + $('vc-bd').value + ', Pd=' + $('vc-pd').value + ', ' + RPM + ' RPM'\n        });\n        drawSpectrumViz(BPFO, BPFI, BSF, FTF, shaftFreq);\n    }\n\n    function drawSpectrumViz(BPFO, BPFI, BSF, FTF, shaft){\n        var el=$('vc-spectrum-viz');if(!el)return;\n        var maxF=Math.max(BPFI*3,BPFO*3)*1.15+shaft;\n        var SW=700,SH=250,ml=50,mr=20,mt=50,mb=55,pw=SW-ml-mr,ph=SH-mt-mb;\n        function fx(f){return ml+f\/maxF*pw;}\n        var s='<svg viewBox=\"0 0 700 250\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"font-family:var(--vc-mono)\">';\n        s+='<line x1=\"'+ml+'\" y1=\"'+(mt+ph)+'\" x2=\"'+(ml+pw)+'\" y2=\"'+(mt+ph)+'\" stroke=\"var(--vc-ink)\" stroke-width=\"1.5\"\/>';\n        s+='<line x1=\"'+ml+'\" y1=\"'+mt+'\" x2=\"'+ml+'\" y2=\"'+(mt+ph)+'\" stroke=\"var(--vc-ink)\" stroke-width=\"1\"\/>';\n        var tStep=Math.pow(10,Math.floor(Math.log10(maxF\/5)));\n        if(maxF\/tStep>10)tStep*=2;if(maxF\/tStep<4)tStep\/=2;\n        for(var t=0;t<=maxF;t+=tStep){\n            var tx=fx(t);\n            s+='<line x1=\"'+tx+'\" y1=\"'+(mt+ph)+'\" x2=\"'+tx+'\" y2=\"'+(mt+ph+5)+'\" stroke=\"var(--vc-ink)\" stroke-width=\"1\"\/>';\n            s+='<text x=\"'+tx+'\" y=\"'+(mt+ph+17)+'\" text-anchor=\"middle\" fill=\"var(--vc-ink-muted)\" font-size=\"8.5\">'+Math.round(t)+'<\/text>';\n            s+='<line x1=\"'+tx+'\" y1=\"'+mt+'\" x2=\"'+tx+'\" y2=\"'+(mt+ph)+'\" stroke=\"var(--vc-border-light)\" stroke-width=\"0.5\"\/>';\n        }\n        s+='<text x=\"'+(ml+pw\/2)+'\" y=\"'+(SH-mb+35)+'\" text-anchor=\"middle\" fill=\"var(--vc-ink-secondary)\" font-size=\"10\">Frequency (Hz)<\/text>';\n        var hts=[0.85,0.55,0.35];\n        var peaks=[];\n        function addP(freq,h,color,name){\n            var ht=hts[h-1]*ph;var x=fx(freq);\n            if(x<ml||x>ml+pw)return;\n            s+='<rect x=\"'+(x-2.5)+'\" y=\"'+(mt+ph-ht)+'\" width=\"5\" height=\"'+ht+'\" fill=\"'+color+'\" rx=\"1\" opacity=\"0.85\"\/>';\n            peaks.push({x:x,y:mt+ph-ht,name:name,color:color});\n        }\n        s+='<line x1=\"'+fx(shaft)+'\" y1=\"'+mt+'\" x2=\"'+fx(shaft)+'\" y2=\"'+(mt+ph)+'\" stroke=\"var(--vc-ink-muted)\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\/>';\n        peaks.push({x:fx(shaft),y:mt+8,name:'1\\u00D7',color:'var(--vc-ink-muted)'});\n        for(var h=1;h<=3;h++)addP(BPFO*h,h,'var(--vc-accent)',h===1?'BPFO':h+'\\u00D7BPFO');\n        for(var h=1;h<=3;h++)addP(BPFI*h,h,'var(--vc-blue)',h===1?'BPFI':h+'\\u00D7BPFI');\n        for(var h=1;h<=3;h++)addP(BSF*h,h,'var(--vc-green)',h===1?'BSF':h+'\\u00D7BSF');\n        addP(FTF,1,'var(--vc-yellow)','FTF');\n        peaks.sort(function(a,b){return a.x-b.x;});\n        for(var i=0;i<peaks.length;i++){var p=peaks[i];\n            s+='<text x=\"'+p.x+'\" y=\"'+(p.y-5)+'\" text-anchor=\"start\" fill=\"'+p.color+'\" font-size=\"8\" font-weight=\"500\" transform=\"rotate(-45,'+p.x+','+(p.y-5)+')\">'+p.name+'<\/text>';\n        }\n        var lg=[{c:'var(--vc-accent)',n:'BPFO'},{c:'var(--vc-blue)',n:'BPFI'},{c:'var(--vc-green)',n:'BSF'},{c:'var(--vc-yellow)',n:'FTF'},{c:'var(--vc-ink-muted)',n:'1\\u00D7 Shaft'}];\n        var lx=ml;\n        for(var i=0;i<lg.length;i++){\n            s+='<rect x=\"'+lx+'\" y=\"'+(SH-14)+'\" width=\"10\" height=\"6\" fill=\"'+lg[i].c+'\" rx=\"1\"\/>';\n            s+='<text x=\"'+(lx+14)+'\" y=\"'+(SH-8)+'\" fill=\"var(--vc-ink-muted)\" font-size=\"8\">'+lg[i].n+'<\/text>';\n            lx+=lg[i].n.length*5.5+22;\n        }\n        s+='<\/svg>';\n        el.innerHTML='<div class=\"vc-viz-title\">Frequency Spectrum<\/div>'+s;\n    }\n\n    \/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\n    var unitBtns = document.querySelectorAll('.vc-unit-btn');\n    unitBtns.forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            unitBtns.forEach(function(b) { b.classList.remove('vc-active'); });\n            this.classList.add('vc-active');\n            unitSystem = this.getAttribute('data-system');\n            var hint = unitSystem === 'imperial' ? '(in)' : '(mm)';\n            $('vc-bd-unit').textContent = hint;\n            $('vc-pd-unit').textContent = hint;\n            try { localStorage.setItem('vc_units', unitSystem); } catch(e) {}\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\n        btn.addEventListener('click', function(e) {\n            e.preventDefault();\n            var bd = parseFloat(this.getAttribute('data-bd'));\n            var pd = parseFloat(this.getAttribute('data-pd'));\n            $('vc-z').value = this.getAttribute('data-z');\n            $('vc-bd').value = unitSystem === 'imperial' ? fmt(bd * MM2IN, 4) : bd;\n            $('vc-pd').value = unitSystem === 'imperial' ? fmt(pd * MM2IN, 4) : pd;\n            $('vc-alpha').value = this.getAttribute('data-a');\n            $('vc-rpm').value = this.getAttribute('data-rpm');\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\n    $('vc-form').addEventListener('input', calculate);\n    $('vc-form').addEventListener('change', calculate);\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var text = 'Bearing Defect Frequency Calculation\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Rolling elements (Z): ' + $('vc-z').value + '\\n' +\n            'Ball diameter: ' + $('vc-bd').value + (unitSystem === 'imperial' ? ' in' : ' mm') + '\\n' +\n            'Pitch diameter: ' + $('vc-pd').value + (unitSystem === 'imperial' ? ' in' : ' mm') + '\\n' +\n            'Contact angle: ' + $('vc-alpha').value + '\u00b0\\n' +\n            'Shaft speed: ' + $('vc-rpm').value + ' RPM\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'BPFO: ' + $('vc-r-bpfo').textContent + '\\n' +\n            'BPFI: ' + $('vc-r-bpfi').textContent + '\\n' +\n            'BSF: ' + $('vc-r-bsf').textContent + '\\n' +\n            'FTF: ' + $('vc-r-ftf').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'vibromera.eu\/calculators\/bearing-defect-frequencies\/';\n\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn');\n                btn.classList.add('vc-copied');\n                btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';\n                setTimeout(function() {\n                    btn.classList.remove('vc-copied');\n                    btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';\n                }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            var isOpen = section.classList.contains('vc-open');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', !isOpen);\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'What are bearing defect frequencies?', a: '<p>Bearing defect frequencies are characteristic vibration frequencies generated when a rolling element bearing has a localized defect. Each bearing component \u2014 outer race, inner race, rolling elements, and cage \u2014 produces a unique frequency pattern based on bearing geometry and shaft speed.<\/p><p>The four key frequencies are: <strong>BPFO<\/strong> (Ball Pass Frequency Outer), <strong>BPFI<\/strong> (Ball Pass Frequency Inner), <strong>BSF<\/strong> (Ball Spin Frequency), and <strong>FTF<\/strong> (Fundamental Train\/Cage Frequency).<\/p>' },\n        { q: 'How to identify an outer race fault?', a: '<p>An outer race fault produces vibration at the BPFO frequency and its harmonics (2\u00d7, 3\u00d7 BPFO). Key characteristics:<\/p><ul><li>Clean, evenly-spaced spectral peaks at BPFO harmonics<\/li><li>No shaft-speed sidebands (since outer race is stationary)<\/li><li>Often accompanied by a raised noise floor in the high-frequency envelope spectrum<\/li><li>BPFO is the most common bearing defect because the outer race carries the load zone<\/li><\/ul>' },\n        { q: 'What is the difference between inner race and outer race faults?', a: '<p><strong>Outer race (BPFO):<\/strong> Defect is stationary in the load zone. Spectrum shows clean harmonics of BPFO without modulation.<\/p><p><strong>Inner race (BPFI):<\/strong> Defect rotates with the shaft, passing in and out of the load zone. Spectrum shows BPFI harmonics with <em>sidebands at shaft speed<\/em> (1\u00d7RPM spacing). This amplitude modulation is the key distinguishing feature.<\/p>' },\n        { q: 'Why do harmonics matter in bearing analysis?', a: '<p>Harmonics indicate defect severity and progression:<\/p><ul><li><strong>Early stage:<\/strong> Only the fundamental frequency (1\u00d7) is visible<\/li><li><strong>Developing:<\/strong> 2\u00d7 and 3\u00d7 harmonics appear<\/li><li><strong>Advanced:<\/strong> Many harmonics, raised noise floor, sidebands<\/li><li><strong>Severe:<\/strong> Broadband noise, loss of discrete peaks, random vibration<\/li><\/ul><p>Monitoring harmonic content over time helps predict remaining bearing life.<\/p>' },\n        { q: 'Where can I find bearing geometry data?', a: '<p>Sources for bearing geometry data (Z, B<sub>d<\/sub>, P<sub>d<\/sub>, \u03b1):<\/p><ul><li><strong>Manufacturer catalogs:<\/strong> SKF, FAG\/Schaeffler, NSK, Timken, NTN<\/li><li><strong>Online databases:<\/strong> SKF Bearing Calculator, Schaeffler medias<\/li><li><strong>Vibration software:<\/strong> Most VA software includes built-in bearing databases<\/li><li><strong>Estimation:<\/strong> P<sub>d<\/sub> \u2248 (bore + OD)\/2, B<sub>d<\/sub> \u2248 (OD \u2212 bore)\/(2 \u00d7 Z\/\u03c0 + 2)<\/li><\/ul><p>When exact data is unavailable, use the estimation formulas as a starting point and verify against the actual spectrum.<\/p>' }\n    ];\n\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) {\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.q + '<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">' + faq.a + '<\/div><\/div><\/div>';\n    });\n    faqList.addEventListener('click', function(e) {\n        var btn = e.target.closest('.vc-faq-q');\n        if (!btn) return;\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\n    });\n\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\n    function saveHistory(entry) {\n        var key = 'vc_history_' + SLUG;\n        var arr = [];\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\n        entry._ts = new Date().toISOString();\n        arr.unshift(entry);\n        if (arr.length > 10) arr = arr.slice(0, 10);\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\n    }\n\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\n    function loadParams() {\n        var p = new URLSearchParams(window.location.search);\n        if (p.has('z')) $('vc-z').value = p.get('z');\n        if (p.has('bd')) $('vc-bd').value = p.get('bd');\n        if (p.has('pd')) $('vc-pd').value = p.get('pd');\n        if (p.has('alpha')) $('vc-alpha').value = p.get('alpha');\n        if (p.has('rpm')) $('vc-rpm').value = p.get('rpm');\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('\\\\text{FTF} = \\\\frac{f_s}{2} \\\\left(1 - \\\\frac{B_d}{P_d} \\\\cos\\\\alpha\\\\right) \\\\quad [\\\\text{Hz}]', $('vc-katex-ftf'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\text{BPFO} = \\\\frac{Z}{2} \\\\cdot f_s \\\\left(1 - \\\\frac{B_d}{P_d} \\\\cos\\\\alpha\\\\right) \\\\quad [\\\\text{Hz}]', $('vc-katex-bpfo'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\text{BPFI} = \\\\frac{Z}{2} \\\\cdot f_s \\\\left(1 + \\\\frac{B_d}{P_d} \\\\cos\\\\alpha\\\\right) \\\\quad [\\\\text{Hz}]', $('vc-katex-bpfi'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\text{BSF} = \\\\frac{P_d}{2 B_d} \\\\cdot f_s \\\\left[1 - \\\\left(\\\\frac{B_d}{P_d} \\\\cos\\\\alpha\\\\right)^2\\\\right] \\\\quad [\\\\text{Hz}]', $('vc-katex-bsf'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\n    function init() {\n        try {\n            var saved = localStorage.getItem('vc_units');\n            if (saved === 'imperial') {\n                unitSystem = 'imperial';\n                unitBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-system') === 'imperial'); });\n                $('vc-bd-unit').textContent = '(in)';\n                $('vc-pd-unit').textContent = '(in)';\n            }\n        } catch(e) {}\n\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Calculadora online gratuita de frequ\u00eancia de defeitos em rolamentos. Calcule BPFO, BPFI, BSF, FTF e seus harm\u00f4nicos a partir da geometria do rolamento e da velocidade do eixo. Suporta configura\u00e7\u00f5es predefinidas comuns para rolamentos.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100015","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/calculator\/100015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":1,"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/calculator\/100015\/revisions"}],"predecessor-version":[{"id":100328,"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/calculator\/100015\/revisions\/100328"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/media?parent=100015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/categories?post=100015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/pt_br\/wp-json\/wp\/v2\/tags?post=100015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}