How to Calculate Frame Rate Ultrasound

Ultrasound Frame Rate Calculator

Optimize Temporal Resolution and Imaging Depth

Standard soft tissue depth
Density of scan lines
More zones reduce frame rate
Soft tissue average = 1540 m/s
Calculated Frame Rate
0 Hz
Warning: Low frame rate detected. Temporal resolution may be insufficient for moving structures like the heart.

How to Calculate Frame Rate in Ultrasound

In medical ultrasound imaging, the Frame Rate (FR) determines the temporal resolution. It represents how many individual images (frames) the system can produce per second. High frame rates are essential for visualizing moving structures, such as the fetal heart or blood flow.

The Physics Behind the Calculation

The maximum frame rate is fundamentally limited by the speed of sound in the medium (tissue) and the time it takes for an echo to travel to the target depth and back (round-trip time).

Formula: FR = c / (2 × d × N × F)

Where:
c: Propagation speed of sound (m/s)
d: Imaging depth (m)
N: Number of lines per frame
F: Number of focal zones

Key Factors Affecting Temporal Resolution

  • Depth: As depth increases, the pulse takes longer to return, decreasing the frame rate.
  • Line Density: More scan lines provide better spatial resolution but require more pulses, lowering the frame rate.
  • Focal Zones: Each focal zone requires a separate pulse-listen cycle per scan line, drastically reducing frame rate.
  • Sector Width: A wider field of view often increases the number of scan lines.

Example Calculation

If you are imaging at a depth of 10 cm (0.1m), using 128 scan lines, with 1 focal zone, and the speed of sound is 1540 m/s:

  1. Round trip distance for one line = 2 × 0.1m = 0.2m
  2. Time for one line = 0.2m / 1540 m/s = 0.0001298 seconds
  3. Time for full frame (128 lines) = 128 × 0.0001298 = 0.0166 seconds
  4. Frame Rate = 1 / 0.0166 = 60.2 Hz
function calculateFrameRate() { var depthCm = parseFloat(document.getElementById("imagingDepth").value); var lines = parseFloat(document.getElementById("scanLines").value); var foci = parseFloat(document.getElementById("focalZones").value); var speed = parseFloat(document.getElementById("speedOfSound").value); var resultsDiv = document.getElementById("resultsContainer"); var frDisplay = document.getElementById("frameRateResult"); var timeDisplay = document.getElementById("timePerFrame"); var warning = document.getElementById("warningMsg"); if (isNaN(depthCm) || isNaN(lines) || isNaN(foci) || isNaN(speed) || depthCm <= 0 || lines <= 0 || foci <= 0) { alert("Please enter valid positive numbers for all fields."); return; } // Convert depth from cm to meters var depthM = depthCm / 100; // Formula: FR = c / (2 * depth * lines * foci) var frameRate = speed / (2 * depthM * lines * foci); // Calculate time per frame in milliseconds var msPerFrame = (1 / frameRate) * 1000; // Display results resultsDiv.style.display = "block"; frDisplay.innerHTML = frameRate.toFixed(2) + " Hz"; timeDisplay.innerHTML = "Time to produce one frame: " + msPerFrame.toFixed(2) + " ms"; // Show warning if frame rate is below 20Hz (generally considered poor temporal resolution) if (frameRate < 20) { warning.style.display = "block"; } else { warning.style.display = "none"; } // Smooth scroll to result for mobile users resultsDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment