Дискриминатор частоты с временным сдвигом квадратурных компонент — различия между версиями
Dneprov (обсуждение | вклад) |
Dneprov (обсуждение | вклад) |
||
Строка 30: | Строка 30: | ||
где <math>A_{IQ} = \frac{AL}{2}</math>, <math>A</math> - амплитуда сигнала <math>y(t_{k,l})</math>, <math>L</math> - количество отчетов, накапливаемых в корреляторе, <math>\varepsilon</math> - разность истинного и опорного параметров. | где <math>A_{IQ} = \frac{AL}{2}</math>, <math>A</math> - амплитуда сигнала <math>y(t_{k,l})</math>, <math>L</math> - количество отчетов, накапливаемых в корреляторе, <math>\varepsilon</math> - разность истинного и опорного параметров. | ||
− | Крутизна дискриминационной характеристики <math>S_D = A_{IQ}^2T</math>. | + | Крутизна дискриминационной характеристики при нулевой расстройке по частоте: <math>S_D = A_{IQ}^2T</math>. |
В модели задержка сигнала полагалась известной: <math>\rho(\varepsilon_{\tau,k}), \rho(\varepsilon_{\tau,k-1}) = 1</math>. | В модели задержка сигнала полагалась известной: <math>\rho(\varepsilon_{\tau,k}), \rho(\varepsilon_{\tau,k-1}) = 1</math>. | ||
− | |||
− | |||
Дискриминационная характеристика при различных временах накопления: | Дискриминационная характеристика при различных временах накопления: | ||
Строка 48: | Строка 46: | ||
[[File:20132504 CKO(q,T) ChD.png|300x300px|frame|center|]] <br /> | [[File:20132504 CKO(q,T) ChD.png|300x300px|frame|center|]] <br /> | ||
− | Дисперсия | + | Дисперсия шума эквивалентного наблюдения частоты, т.е. шума с выхода дискриминатора, пересчитанного '''к его входу''' при нулевой расстройке по частоте: <br /> |
<math>D_{\widetilde{\eta}_\omega} = \frac{1}{q_{c/n_0}T^3}(1+\frac{1}{2q_{c/n_0}T}).</math> | <math>D_{\widetilde{\eta}_\omega} = \frac{1}{q_{c/n_0}T^3}(1+\frac{1}{2q_{c/n_0}T}).</math> | ||
− | Интересно сравнить дисперсию шумов | + | |
+ | Интересно сравнить дисперсию шумов по входу для разных дискриминаторов. На данный момент у нас есть: | ||
+ | * Собственно дисперсия шума на входе рассматриваемого в этой статье дискриминатора. Обозначим ее как D_1: | ||
+ | |||
+ | <math> D_1 = D_{\widetilde{\eta}_\omega} = \frac{1}{q_{c/n_0}T_1^3}(1+\frac{1}{2q_{c/n_0}T_1}).</math> | ||
+ | |||
+ | * Дисперсия шума на входе оптимального при низком отношении сигнал/шум частотного дискриминатора (тот, который <math>I_kI'_k+Q_kQ'_k</math>). Формула из диссера Корогодина И. В., или, например, из этой [[Публикация:Корогодин 2013 Потенциальные характеристики оценивания частоты в некогерентном приемнике|статьи]]. Обозначим ее как D_2: | ||
+ | |||
+ | <math> D_2 = D_{\widetilde{\eta}_\omega} = \frac{6}{q_{c/n_0}T_2^3}(1+\frac{1}{q_{c/n_0}T_2}).</math> | ||
+ | |||
+ | |||
+ | Вообще говоря, время накопления в корреляторах может быть различно. Если принять равными времена <math>T_1</math> и <math>T_2</math>, получится что дискриминатору с временным сдвигом квадратур (c <math>D_1</math>) нужны будут квадратуры, накопленные на суммарном времени <math>2T_1</math> и разбитые по времени пополам. Для корректности сравнения положим, что во втором дискриминаторе (у которого <math>D_2</math>) коррелятор копит на времени <math>T_2 = 2T_1</math>. Разделим <math>D_2</math> на <math>D_1</math>. После нехитрых вычислений окажется, что | ||
+ | |||
+ | <math>\frac{D_2}{D_1} = \frac{6}{8}</math>, т. е. <math>D_2 = 0.75*D_1</math> или для СКО:<math>\sigma_2 = 0.866*\sigma_1</math>. | ||
+ | |||
+ | Таким образом, по дисперсии шумов наблюдается не очень то большая разница между сравниваемыми дискриминаторами. На рисунке ниже приведен график зависимости СКО эквивалентных шумов представленных ЧД от отношения сигнал/шум q_{c/n0}. | ||
+ | |||
+ | [[File:20151029_Сравнение СКО.png|центр|500px]] | ||
== Листинг модели == | == Листинг модели == |
Версия 00:50, 30 октября 2015
Содержание |
Описание дискриминатора
Дискриминатор использует отсчеты коррелятора с текущего и предыдущего такта работы.
,
где
,
,
,
.
Особенности работы
Отметим, что возможна различная интерпретация работы дискриминатора. На рисунке представлено два возможных варианта, условно названных "Перекрытие" и "Перекрытие отсутствует". Поясним рисунок. Пусть в некоторый момент времени доступны отсчеты с выхода коррелятора
и отсчеты из предыдущей эпохи
. На их основе можно сформировать отсчет дискриминатора
. Далее возможны варианты. В случае, если работа идет с "перекрытием", следующий отсчет дискриминатора
будет сформирован из новых отсчетов коррелятора
и уже использованных в предыдущем шаге
. Таким образом, каждое вычисление отсчета дискриминатора использует отсчеты коррелятора, уже использованные в расчете предыдущего значения дискриминатора. Поэтому шум выхода дискриминатора в данном случае оказывается коррелированным, а его СПМ отличается от СПМ белого шума. В случае работы без "перекрытия" для расчета соседних значений выхода дискриминатора каждый раз используются разные корреляционные суммы. В этом случае, шум дискриминатора будет некорреллированным с равномерной СПМ. Однако, темп работы такого дискриминатора ниже в 2 раза: ему нужно "дождаться" следующей пары отсчетов.
Формулы для крутизны и дисперсии шумов на выходе/входе ЧД (приведены далее) позволяют моделировать его в виде стат. эквивалента
, где
Стоит отметить, что моделирование по этим формулам нужно проводить для случая "перекрытие отсутствует", т. к. в случае с "перекрытием" необходимо будет моделировать корреллированность шумов во временных отсчетах дискриминатора.
Дискриминационная характеристика
Сделано допущение, что .
где ,
- амплитуда сигнала
,
- количество отчетов, накапливаемых в корреляторе,
- разность истинного и опорного параметров.
Крутизна дискриминационной характеристики при нулевой расстройке по частоте: .
В модели задержка сигнала полагалась известной: .
Дискриминационная характеристика при различных временах накопления:
Флуктуационная характеристика
Получены зависимости СКО шума на выходе дискриминатора от для различных времен накопления. Теоретические кривые пунктирной линией.
Дисперсия шума эквивалентного наблюдения частоты, т.е. шума с выхода дискриминатора, пересчитанного к его входу при нулевой расстройке по частоте:
Интересно сравнить дисперсию шумов по входу для разных дискриминаторов. На данный момент у нас есть:
- Собственно дисперсия шума на входе рассматриваемого в этой статье дискриминатора. Обозначим ее как D_1:
- Дисперсия шума на входе оптимального при низком отношении сигнал/шум частотного дискриминатора (тот, который
). Формула из диссера Корогодина И. В., или, например, из этой статьи. Обозначим ее как D_2:
Вообще говоря, время накопления в корреляторах может быть различно. Если принять равными времена и
, получится что дискриминатору с временным сдвигом квадратур (c
) нужны будут квадратуры, накопленные на суммарном времени
и разбитые по времени пополам. Для корректности сравнения положим, что во втором дискриминаторе (у которого
) коррелятор копит на времени
. Разделим
на
. После нехитрых вычислений окажется, что
, т. е.
или для СКО:
.
Таким образом, по дисперсии шумов наблюдается не очень то большая разница между сравниваемыми дискриминаторами. На рисунке ниже приведен график зависимости СКО эквивалентных шумов представленных ЧД от отношения сигнал/шум q_{c/n0}.
convert: no images defined `/tmp/transform_1fc3e9be1e23-1.png' @ error/convert.c/ConvertImageCommand/3044.
Листинг модели
Ниже представлен листинг модели, с которой сняты картинки.
clc
close all
plotDX = 1; %считаем ДХ
plotFX = 0; %считаем дисперсию шумов
if plotDX
N = 3000;
stdn_IQ = 8;
Tc = 0.005;
qcno_dB = 45;
qcno = 10^(qcno_dB/10);
wdop_real = 2*pi*100;
wdop_oporn = [wdop_real-2*pi*(1/Tc):2*pi*(2/Tc)/500:wdop_real + 2*pi*(1/Tc)];
UdFLL = zeros(1, length(wdop_oporn));
A_IQ = stdn_IQ * sqrt(2 * qcno * Tc);
Sd = A_IQ^2*Tc;
for k = 1:N
for j = 1:length(wdop_oporn)
n_I_old = 1*stdn_IQ * randn(1,1);
n_I = 1*stdn_IQ * randn(1,1);
n_Q_old = 1*stdn_IQ * randn(1,1);
n_Q = 1*stdn_IQ * randn(1,1);
phi_real = [pi/3 pi/3 + Tc*wdop_real(1)];
phi_oporn =[pi/4 pi/4 + Tc*wdop_oporn(j)];
m_I_old = A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*cos(phi_real(1) - phi_oporn(1) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
m_I = A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*cos(phi_real(2) - phi_oporn(2) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
m_Q_old = - A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*sin(phi_real(1) - phi_oporn(1) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
m_Q = - A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*sin(phi_real(2) - phi_oporn(2) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
I_old = m_I_old + n_I_old;
I = m_I + n_I;
Q_old = m_Q_old + n_Q_old;
Q = m_Q + n_Q;
UdFLL(1, j) = UdFLL(1,j) + I*Q_old - Q*I_old;
end
if ~mod(k, N/10)
fprintf('Progress %d%%\n', k*100/N)
end
end
UdFLL_mean = A_IQ^2*(sinc((wdop_real(1)-wdop_oporn)*Tc/2 /pi)).^2.*sin((wdop_real(1)-wdop_oporn)*Tc);
UdFLL = UdFLL/N;
figure
plot((wdop_real-wdop_oporn)/2/pi,[UdFLL; UdFLL_mean; Sd*(wdop_real-wdop_oporn)]);
ylim([1.1*min(UdFLL_mean) 1.1*max(UdFLL_mean)])
grid on;
xlabel('\Delta f, Гц')
ylabel('M[u_{Д}]')
title(['q = ' num2str(qcno_dB) ' дБГц, T = ' num2str(Tc) ' c'])
end
if plotFX
N = 5000;
stdn_IQ = 8;
Tc = 0.02;
qcno_dB = [10:1:50];
wdop_real = [2*pi*100];
wdop_oporn = [2*pi*100];
D_etta_FLL = zeros(1,length(qcno_dB));
CKO_etta_FLL_teor = nan(1,length(qcno_dB));
for i = 1:length(qcno_dB)
fprintf('qcno_dB = %.0f\n', qcno_dB(i));
qcno = 10^(qcno_dB(i)/10);
A_IQ = stdn_IQ * sqrt(2 * qcno * Tc);
UdFLL = nan(1, N);
for k = 1:N
for j = 1:length(wdop_oporn)
n_I_old = 1*stdn_IQ * randn(1,1);
n_I = 1*stdn_IQ * randn(1,1);
n_Q_old = 1*stdn_IQ * randn(1,1);
n_Q = 1*stdn_IQ * randn(1,1);
phi_real = [pi/3 pi/3 + Tc*wdop_real(1)];
phi_oporn =[pi/4 pi/4 + Tc*wdop_oporn(j)];
m_I_old = A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*cos(phi_real(1) - phi_oporn(1) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
m_I = A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*cos(phi_real(2) - phi_oporn(2) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
m_Q_old = - A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*sin(phi_real(1) - phi_oporn(1) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
m_Q = - A_IQ * sinc((wdop_real(1)-wdop_oporn(j))*Tc/2 /pi)*sin(phi_real(2) - phi_oporn(2) + (wdop_real(1)-wdop_oporn(j))*Tc/2);
I_old = m_I_old + n_I_old;
I = m_I + n_I;
Q_old = m_Q_old + n_Q_old;
Q = m_Q + n_Q;
UdFLL(1, k) = I*Q_old - Q*I_old;
end
end
D_etta_FLL(1,i) = mean((UdFLL - mean(UdFLL)).^2);
CKO_etta_FLL(1,i) = sqrt(D_etta_FLL(1,i));
CKO_etta_FLL_teor(1,i) = sqrt((A_IQ^2*Tc)^2*(1/(qcno*Tc^3))*(1 + 1/(2*qcno*Tc)));
end
figure
plot(qcno_dB, CKO_etta_FLL, 'r*', qcno_dB, CKO_etta_FLL_teor, 'g')
xlabel('q_c/n0, дБГц')
ylabel('\sigma_{вых} ЧД')
grid on
end