Расчёт метрик цифрового канала / 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 та же формула применяется к числу ошибочных бит, но результат маркируется как описательный из-за возможной корреляции ошибок.