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

Материал из SRNS
Перейти к: навигация, поиск
(Флуктуационная характеристика)
(Дискриминационная характеристика)
Строка 31: Строка 31:
 
Файл:20151028_DhChd_newT5ms.png|Дискриминационная характеристика при T=5 мс
 
Файл:20151028_DhChd_newT5ms.png|Дискриминационная характеристика при T=5 мс
 
</gallery></center>
 
</gallery></center>
 +
 +
 +
{{Hider
 +
|title = Листинг модели
 +
|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>
 +
|frame-style = border:1px solid Plum
 +
|title-style = color:black;background-color:lavender;font-weight:bold
 +
|content-style = color:black;background-color:ghostwhite;text-align:center
 +
|footer = См. [[другую статью]]
 +
|footer-style = background-color:lightgray;text-align:right
 +
}}
  
 
== Флуктуационная характеристика ==
 
== Флуктуационная характеристика ==

Версия 18:30, 28 октября 2015

Содержание

Описание дискриминатора

Дискриминатор использует отсчеты коррелятора с текущего и предыдущего такта работы.

u_{d \omega } = I_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k})Q_{k-1}(\widetilde{\tau}_{k-1},\widetilde{\omega}_{d\,k-1}) - Q_k(\widetilde{\tau}_k,\widetilde{\omega}_{d\,k})I_{k-1}(\widetilde{\tau}_{k-1},\widetilde{\omega}_{d\,k-1}),

где
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-1}(\widetilde{\tau}_{k-1},\widetilde{\omega}_{d\,{k-1}}) = \sum_{l=1}^{L}y(t_{k-1,l})h_{c}(t_{k-1,l}-\widetilde{\tau}_{k-1})\mbox{cos}(\omega_0t_{k-1,l}+\widetilde{\omega}_{d\,k-1}(l-1)T_d)),
Q_{k-1}(\widetilde{\tau}_{k-1},\widetilde{\omega}_{d\,k-1}) = \sum_{l=1}^{L}y(t_{k-1,l})h_{c}(t_{k-1,l}-\widetilde{\tau}_{k-1})\mbox{sin}(\omega_0t_{k-1,l}+\widetilde{\omega}_{d\,k-1}(l-1)T_d)).

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

Варианты работы дискриминатора

Отметим, что возможна различная интерпретация работы дискриминатора. На рисунке представлено два возможных варианта, условно названных "Перекрытие" и "Перекрытие отсутствует". Поясним рисунок. Пусть в некоторый момент времени t_{k} доступны отсчеты с выхода коррелятора I_k, Q_k и отсчеты из предыдущей эпохи I_{k-1}, Q_{k-1}. На их основе можно сформировать отсчет дискриминатора u_{d\omega,k}. Далее возможны варианты. В случае, если работа идет с "перекрытием", следующий отсчет дискриминатора u_{d\omega,k+1} будет сформирован из новых отсчетов коррелятора I_{k+1}, Q_{k+1} и уже использованных в предыдущем шаге I_k, Q_k. Таким образом, каждое вычисление отсчета дискриминатора использует отсчеты коррелятора, уже использованные в расчете предыдущего значения дискриминатора. Поэтому шум выхода дискриминатора в данном случае оказывается коррелированным, а его СПМ отличается от СПМ белого шума. В случае работы без "перекрытия" для расчета соседних значений выхода дискриминатора каждый раз используются разные корреляционные суммы. В этом случае, шум дискриминатора будет некорреллированным с равномерной СПМ. Однако, темп работы такого дискриминатора ниже в 2 раза: ему нужно "дождаться" следующей пары отсчетов.

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

Сделано допущение, что \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.



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

Получены зависимости СКО шума на выходе дискриминатора от q_{c/n_0} для различных времен накопления. Теоретические кривые пунктирной линией.

20132504 CKO(q,T) ChD.png

Дисперсия эквивалентных шумов на входе дискриминатора при нулевой расстройке

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

Персональные инструменты
Пространства имён

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