Page 1 of 1

Обробка сигналів прямої і падаючої хвилі КСВ датчика.

Posted: 30 Aug 2026, 12:39
by UR5SDL
Недавно робив підсилювач для свого похідного трансівера ізюминка 1.2 і зіштовхнувся з проблемо обробки сигналу на Arduino nano від датчика КСВ.

1. Проблема. Не стабільність напруги на датчику в залежності від частоти та потужності.

2. Проблема. Не можливість компенсувати напругу падаючої хвилі при навантаженні 50 ом до нуля або близько до нуля. У мене виходило мінімум 2.2 вольта. Напруга прямої хвилі складала 3.7в.

Ось програмне рішення яке дозволяє обробляти дані враховуючи вище наведені умови.

void drawKSVmeter() {

const float K50 = 0.752; // коефіцієнт відношення Upad/Uotr при навантаженні 50 Ом

getPortVolte(A1);
float Upad = Volt;

getPortVolte(A2);
float Uotr = Volt;

if (Upad <= 0.001) {
ksv = 1.0;
return;
}

// Відношення двох виміряних напруг
float K = Uotr / Upad;

// Відносно калібрувального значення 50 Ом
float gamma = (K50 - K) / (K50 + K);

if (gamma < 0.0)
gamma = 0.0;

if (gamma > 0.999)
gamma = 0.999;

// Обмеження коефіцієнта відбиття
gamma = constrain(gamma, 0.0, 0.95);

// КСХ
ksv = (1.0 + gamma) / (1.0 - gamma);
}

Функція дуже чутлива до зміни КСВ. Я перевірив її результат на опорі 50, 100, та 75 ом. Значення КСВ показувало коректно відповідно до навантаження.

Re: Обробка сигналів прямої і падаючої хвилі КСВ датчика.

Posted: 09 Sep 2026, 12:29
by UR5FFR
Я б перевірив датчик КСХ. Якщо він видає такі напруги то він несправний і програмно ви це ніяк не компенсуєте. На навантаженні 50ом звортня хвиля повинна бути відсутня від слова зовсім. Дивіться на фазіровку обмоток - це критично. Калібруйте його якщо він має можливості калібрування. А ксх рахується за стандартною формулою ksv = (Upad + Uotr) / (Upad - Uotr) - тут не треба нічого винаходити