Перейти к содержанию

Расчёт метрик цифрового канала / Digital-link metric calculations

Эта страница фиксирует определения, которые используются в аппаратных BPSK/QPSK-отчётах курса. Число без описания алгоритма синхронизации, нормализации и размера выборки не считается достаточным доказательством.

Подготовка IQ

Stereo WAV преобразуется в комплексные отсчёты

x[n] = I[n] + j*Q[n]

Значения нормируются к диапазону полной шкалы АЦП. Из всей записи вычитается одна оценка DC:

mu = (1/N) * sum(x[n]), n=0..N-1
x0[n] = x[n] - mu

Среднее отдельного burst не вычитается: конечная детерминированная последовательность не обязана иметь строго нулевое среднее, поэтому такая операция могла бы изменить полезный сигнал.

Обнаружение burst и кадра

Для энергетического детектора запись делится на блоки по B = 256 отсчётов:

P[m] = (1/B) * sum(|x0[m*B+n]|^2), n=0..B-1

Порог задаётся робастно относительно медианы блочной мощности:

P_threshold = median(P) + 10 * MAD(P)

Кандидат также должен иметь пик выше median + 15·MAD. Соседние активные блоки объединяются в один burst. После RRC matched filter кадр проверяется по известной последовательности из RTL ROM. Нормированная корреляция равна

rho = |sum(r[k] * conj(s[k]))|
      / sqrt(sum(|r[k]|^2) * sum(|s[k]|^2))

В Lab 11.28 кадр принимается детектором при rho >= 0.8. Аппаратные кадры дали 0.898…0.983; контрольные окна между burst’ами — примерно 0.37…0.61.

Оценка CFO и комплексное выравнивание

Для известных QPSK-символов вычисляется фазовая ошибка

phi[k] = unwrap(arg(r[k] * conj(s[k])))

Линейная регрессия phi[k] ~= phi0 + alpha*k даёт остаточное частотное смещение

delta_f = alpha * symbol_rate / (2*pi)
        = alpha * sample_rate / (2*pi*SPS)

После CFO-коррекции оценивается один комплексный коэффициент канала методом наименьших квадратов:

g = sum(conj(s[k]) * r[k]) / sum(|s[k]|^2)
r_aligned[k] = r[k] * exp(-j*alpha*k) / g

Такое выравнивание удаляет постоянные gain/phase и линейный CFO внутри кадра. Оно не исправляет нелинейность, IQ imbalance, timing jitter или частотно-селективный канал.

BER и FER

Решения QPSK принимаются по знакам I/Q. Для N_b известных бит:

BER = bit_errors / compared_bits

При одинаковой длине кадров агрегированный BER считается по всем обнаруженным кадрам:

BER_aggregate = sum(bit_errors_per_frame)
                / (detected_frames * bits_per_frame)

Frame error rate считает кадр ошибочным при наличии хотя бы одной битовой ошибки:

FER = frames_with_at_least_one_error / detected_frames

BER = 0 всегда сопровождается числом сравненных бит. Для нулевых ошибок приводится приближённая 95%-граница rule of three: BER < 3/N_b. Это не доказанный BER floor.

EVM

RMS EVM вычисляется после CFO и комплексного scalar alignment:

EVM_RMS_percent = 100 * sqrt(
    sum(|r_aligned[k] - s[k]|^2) / sum(|s[k]|^2)
)

EVM объединяет шум и остаточные искажения. Малое EVM обычно улучшает BER, но прямое однозначное соответствие между ними существует только при зафиксированных модуляции, синхронизации и модели канала.

SNR из EVM

В QPSK OTA-анализаторе SNR не измеряется отдельным калиброванным noise-only интервалом. Публикуется диагностическая оценка

evm_fraction = EVM_RMS_percent / 100
SNR_from_EVM_dB = -20 * log10(evm_fraction)

Она эквивалентна SNR только при доминировании некоррелированного аддитивного шума и корректной синхронизации. Поэтому поле называется snr_from_evm_db, а не calibrated RF SNR.

Clipping, уровни и crest factor

Clipping fraction считается до DC-коррекции как доля комплексных отсчётов, у которых хотя бы одна ось почти достигла полной шкалы:

clipping_fraction = count(|I[n]| > 0.999 or |Q[n]| > 0.999) / N

Также сохраняются комплексные peak/RMS levels в dBFS и

crest_factor_dB = peak_level_dBFS - rms_level_dBFS

Нулевой clipping fraction исключает цифровое насыщение в записи, но не доказывает отсутствие аналоговой компрессии перед АЦП.

Доверительные интервалы и ограничения

  • Для доли безошибочных burst’ов используется двухсторонний Wilson 95% interval.
  • Для агрегированного BER также выводится Wilson interval как описательная оценка. Ошибки внутри одного RF burst могут быть коррелированы, поэтому модель независимых Bernoulli trials является приближением.
  • Detection rate, normalized correlation, FER, BER, EVM и CFO должны рассматриваться совместно.
  • Лучший кадр не заменяет распределение по всем кадрам; основной Lab 11.28 отчёт использует все обнаруженные burst’ы.
  • Для абсолютного SNR, мощности и uncertainty budget нужны калиброванный тракт и отдельная noise measurement.

Для k успехов в n испытаниях, p_hat = k/n и z = 1.959964 границы Wilson вычисляются как

denom  = 1 + z^2/n
center = (p_hat + z^2/(2*n)) / denom
half   = z * sqrt(p_hat*(1-p_hat)/n + z^2/(4*n^2)) / denom
interval_95 = [center-half, center+half]

Для BER та же формула применяется к числу ошибочных бит, но результат маркируется как описательный из-за возможной корреляции ошибок.