Дискриминатор частоты оптимальный при малом отношении сигнал/шум — различия между версиями

Материал из SRNS
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
{{Заготовка}}
 
{{Заготовка}}
 
+
{{TOCright}}
=Описание дискриминатора=
+
 
Дискриминатор описывается выражением <br />
 
Дискриминатор описывается выражением <br />
  
Строка 23: Строка 22:
 
</math>
 
</math>
  
По этой методике весь интервал интегрирования в корреляторе разбивается на <math>N</math> равных частей длительностью <math>T_1</math>. На этих малых интервалах рассчитываются традиционные корреляционные суммы <math>I_{n_1, k}, Q_{n_1, k}</math>, а потом проводится их взвешенное суммирование. Чем больше <math>N</math>, тем точнее оказывается приведенная методика. Допустим "большой" коррелятор копит <math>T = 10</math> мс, тогда целесообразно выбрать <math>T_1 = 1</math> мс и <math>N = 10</math>.
+
По этой методике весь интервал интегрирования в корреляторе разбивается на <math>N_1</math> равных частей длительностью <math>T_1</math>. На этих малых интервалах рассчитываются традиционные корреляционные суммы <math>I_{n_1, k}, Q_{n_1, k}</math>, а потом проводится их взвешенное суммирование. Чем больше <math>N_1</math>, тем точнее оказывается приведенная методика. Допустим "большой" коррелятор копит <math>T = 10</math> мс, тогда целесообразно выбрать <math>T_1 = 1</math> мс и <math>N_1 = 10</math>.
  
 
== Дискриминационная характеристика ==
 
== Дискриминационная характеристика ==
Строка 44: Строка 43:
  
 
== Флуктуационная характеристика ==
 
== Флуктуационная характеристика ==
 +
Дисперсия шума эквивалентного наблюдения частоты, т.е. шума с выхода дискриминатора, пересчитанного '''к его входу''' при нулевой расстройке по частоте <ref name="OptimalFLL">[[Публикация:Корогодин 2013 Потенциальные характеристики оценивания частоты в некогерентном приемнике]]</ref>: <br />
  
Получены зависимости СКО шума на выходе дискриминатора от <math>q_{c/n_0}</math> для различных времен накопления. Теоретические кривые пунктирной линией.
+
<math>D_{\widetilde{\eta}_\omega} = \frac{6}{q_{c/n_0}T^3}(1+\frac{1}{q_{c/n_0}T}).</math>
  
[[File:20132504 CKO(q,T) ChD.png|300x300px|frame|center|]] <br />
+
=== Сравнение с другими ЧД ===
 +
Интересно сравнить дисперсию шумов по входу для различных дискриминаторов:
  
Дисперсия шума эквивалентного наблюдения частоты, т.е. шума с выхода дискриминатора, пересчитанного '''к его входу''' при нулевой расстройке по частоте: <br />
+
* Дисперсия шума на входе [[Дискриминатор частоты с временным сдвигом квадратурных компонент|дискриминатора с временным сдвигом квадратурных компонент "cross"]]. Обозначим ее как <math>D_1</math>:
  
<math>D_{\widetilde{\eta}_\omega} = \frac{1}{q_{c/n_0}T^3}(1+\frac{1}{2q_{c/n_0}T}).</math>
+
:<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> 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>D_1</math>:
+
  
<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>
+
Пусть cross дискриминатор реализован по схеме без перекрытия, тогда <math>T_2 = 2T_1</math> и
  
* Дисперсия шума на входе оптимального при низком отношении сигнал/шум частотного дискриминатора (тот, который <math>I_kI'_k+Q_kQ'_k</math>). Формула из диссера Корогодина И. В., или, например, из этой [[Публикация:Корогодин 2013 Потенциальные характеристики оценивания частоты в некогерентном приемнике|статьи]]. Обозначим ее как <math>D_2</math>:
+
:<math>\frac{D_2}{D_1} = \frac{6}{8}</math>,
  
<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>\sigma_2 = 0.866*\sigma_1</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>. После нехитрых вычислений окажется, что
+
Дискриминатор cross проигрывает <math>I_kI'_k+Q_kQ'_k</math> около 15% по СКО во всем диапазоне с/ш. На рисунке ниже приведен график зависимости СКО эквивалентных шумов представленных ЧД от отношения сигнал/шум <math>q_{c/n0}
 
+
<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]]
 
[[File:20151029_Сравнение СКО.png|центр|500px]]
Строка 77: Строка 75:
 
  |title = Листинг модели
 
  |title = Листинг модели
 
  |content = <source lang = matlab>
 
  |content = <source lang = matlab>
clear all
+
  бла бла бла
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
+
 
</source>
 
</source>
 
  |frame-style = border:1px solid Plum
 
  |frame-style = border:1px solid Plum

Версия 12:15, 2 ноября 2015

Содержание

Дискриминатор описывается выражением

u_{D \omega, k} = I_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k})I'_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k}) + Q_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k})Q'_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k}),

где
I_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k}) = \sum_{l=1}^{L}y(t_{k,l})h_{c}(t_{k,l}-\widetilde{\tau}_k)\mbox{cos}(\omega_0t_{k,l}+\widetilde{\omega}_{d\,k}(l-1)T_d)),
Q_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k}) = \sum_{l=1}^{L}y(t_{k,l})h_{c}(t_{k,l}-\widetilde{\tau}_k)\mbox{sin}(\omega_0t_{k,l}+\widetilde{\omega}_{d\,k}(l-1)T_d)),
I'_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k}) = -\sum_{l=1}^{L}y(t_{k,l})h_{c}(t_{k,l}-\widetilde{\tau}_k)(l-1)T_d\mbox{sin}(\omega_0t_{k,l}+\widetilde{\omega}_{d\,k}(l-1)T_d)),
Q'_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k}) = \sum_{l=1}^{L}y(t_{k,l})h_{c}(t_{k,l}-\widetilde{\tau}_k)(l-1)T_d\mbox{cos}(\omega_0t_{k,l}+\widetilde{\omega}_{d\,k}(l-1)T_d)),
L=\frac{T}{{{T}_{d}}} - число отсчетов за время T интегрирования в корреляторе, T_d - интервал дискретизации.

Особенности работы

Для работы дискриминатора требуется формирование особенных квадратур I'_k, Q'_k. Они представляют собой обычные квадратуры, умноженные на линейно-возрастающую функцию (l-1)T_d (индекс времени l растет - множитель растет). Аппаратно такой коррелятор не реализован. Есть предложение [1] заменить честный расчет I'_k, Q'_k суммой взвешенных корреляционных сумм:


I'_{k}\left( {{{\tilde{\tau }}}_{k}},{{{\tilde{\omega }}}_{{{d}^{{}}}k}} \right)\approx -{{T}_{1}}\sum\limits_{n_{1}^{{}}=1}^{N_{1}^{{}}}{n_{1}^{{}}{{Q}_{{{n}_{1}},k}}\left( {{{\tilde{\tau }}}_{k}},{{{\tilde{\omega }}}_{{{d}^{{}}}k}} \right)},

Q'_{k}\left( {{{\tilde{\tau }}}_{k}},{{{\tilde{\omega }}}_{{{d}^{{}}}k}} \right)\approx {{T}_{1}}\sum\limits_{n_{1}^{{}}=1}^{N_{1}^{{}}}{n_{1}^{{}}{{I}_{{{n}_{1}},k}}\left( {{{\tilde{\tau }}}_{k}},{{{\tilde{\omega }}}_{{{d}^{{}}}k}} \right)}.

По этой методике весь интервал интегрирования в корреляторе разбивается на N_1 равных частей длительностью T_1. На этих малых интервалах рассчитываются традиционные корреляционные суммы I_{n_1, k}, Q_{n_1, k}, а потом проводится их взвешенное суммирование. Чем больше N_1, тем точнее оказывается приведенная методика. Допустим "большой" коррелятор копит T = 10 мс, тогда целесообразно выбрать T_1 = 1 мс и N_1 = 10.

Дискриминационная характеристика

Сделано допущение, что \varepsilon_{\omega,k-1} = \varepsilon_{\omega,k}.

U(\varepsilon_\omega) = A_{IQ}^2\rho(\varepsilon_{\tau,k})\rho(\varepsilon_{\tau,k-1})\mbox{sinc}^2(\varepsilon_{\omega,k-1}T/2)\mbox{sin}(\varepsilon_{\omega,k-1}T),

где A_{IQ} = \frac{AL}{2}, A - амплитуда сигнала y(t_{k,l}), L - количество отчетов, накапливаемых в корреляторе, \varepsilon - разность истинного и опорного параметров.

Крутизна дискриминационной характеристики при нулевой расстройке по частоте: S_D = A_{IQ}^2T.

В модели задержка сигнала полагалась известной: \rho(\varepsilon_{\tau,k}), \rho(\varepsilon_{\tau,k-1}) = 1.

Дискриминационная характеристика при различных временах накопления:

Флуктуационная характеристика

Дисперсия шума эквивалентного наблюдения частоты, т.е. шума с выхода дискриминатора, пересчитанного к его входу при нулевой расстройке по частоте [2]:

D_{\widetilde{\eta}_\omega} = \frac{6}{q_{c/n_0}T^3}(1+\frac{1}{q_{c/n_0}T}).

Сравнение с другими ЧД

Интересно сравнить дисперсию шумов по входу для различных дискриминаторов:

 D_1 = D_{\widetilde{\eta}_\omega} = \frac{1}{q_{c/n_0}T_1^3}(1+\frac{1}{2q_{c/n_0}T_1}).
  • Дисперсия шума на входе рассматриваемого в этой статье дискриминатора:
 D_2 = D_{\widetilde{\eta}_\omega} = \frac{6}{q_{c/n_0}T_2^3}(1+\frac{1}{q_{c/n_0}T_2}).

Пусть cross дискриминатор реализован по схеме без перекрытия, тогда T_2 = 2T_1 и

\frac{D_2}{D_1} = \frac{6}{8},

или для СКО:

\sigma_2 = 0.866*\sigma_1.

Дискриминатор cross проигрывает I_kI'_k+Q_kQ'_k около 15% по СКО во всем диапазоне с/ш. На рисунке ниже приведен график зависимости СКО эквивалентных шумов представленных ЧД от отношения сигнал/шум q_{c/n0}

[[File:20151029_Сравнение СКО.png|центр|500px]]

== Листинг модели ==
Ниже представлен листинг модели, с которой сняты картинки.
{{Hider
 |title = Листинг модели
 |content = <source lang = matlab>
 бла бла бла
</source>
 |frame-style = border:1px solid Plum
 |title-style = color:black;background-color:lavender;font-weight:bold;text-align:left
 |content-style = color:black;background-color:ghostwhite;text-align:center
 |hidden = yes 
}}

== Ссылки ==
<references/>

[[Категория:Дискриминаторы]]
[[Категория:Оценивание частоты]]


Ошибка цитирования Для существующего тега <ref> не найдено соответствующего тега <references/>
Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты