Модель статистических эквивалентов квадратурных сумм — различия между версиями
Материал из SRNS
Korogodin (обсуждение | вклад) (→Листинг) |
Korogodin (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 13: | Строка 13: | ||
|changelog = | |changelog = | ||
|repository = | |repository = | ||
− | |category1 = | + | |category1 = Коррелятор |
− | |category2 = | + | |category2 = |
|category3 = | |category3 = | ||
|category4 = | |category4 = | ||
Строка 35: | Строка 35: | ||
<source lang="matlab"> | <source lang="matlab"> | ||
+ | Tc = 0.001; % Интервал накопления в корреляторе, s | ||
+ | qcno_dB = 45; % Отношение сигнал/шум, dBHz | ||
+ | |||
+ | stdn_IQ = 8; % СКО шума квадратур | ||
+ | nI = stdn_IQ*randn(1,1); % // I-comp noise | ||
+ | nQ = stdn_IQ*randn(1,1); % // Q-comp noise | ||
+ | |||
+ | % EpsTau - расстройка по задержке | ||
+ | % EpsW - расстройка по частоте на начальный момент накопления | ||
+ | % EpsPhi - расстройка по фазе на начальный момент накопления | ||
+ | |||
+ | [A_IQ qcno] = qcno_change(qcno_dB, stdn_IQ(k), Tc); | ||
+ | A_IQ_eff(k) = A_IQ(k)*sinc(EpsW*Tc/2 /pi)*ro(EpsTau); | ||
+ | mI = A_IQ_eff(k) * cos(EpsW*Tc/2 + EpsPhi); | ||
+ | mQ = - A_IQ_eff(k) * sin(EpsW*Tc/2 + EpsPhi); | ||
+ | I = mI + nI; | ||
+ | Q = mQ + nQ; | ||
</source> | </source> | ||
+ | |||
Где функция <code>qcno_change</code>: | Где функция <code>qcno_change</code>: |
Текущая версия на 15:11, 25 апреля 2013
Модель статистических эквивалентов квадратурных сумм | |
---|---|
Описание | Модель расчета стат. эквивалентов коррелятора |
Автор(ы) | Korogodin (Korogodinобсуждение) |
Последняя версия | 1.0 (12.10.2011) |
Загрузить | no link |
Хранилище | no link |
Категории | Коррелятор |
[править] Описание модели
Расчет статистических эквивалентов в Matlab.
[править] Листинг
Tc = 0.001; % Интервал накопления в корреляторе, s
qcno_dB = 45; % Отношение сигнал/шум, dBHz
stdn_IQ = 8; % СКО шума квадратур
nI = stdn_IQ*randn(1,1); % // I-comp noise
nQ = stdn_IQ*randn(1,1); % // Q-comp noise
% EpsTau - расстройка по задержке
% EpsW - расстройка по частоте на начальный момент накопления
% EpsPhi - расстройка по фазе на начальный момент накопления
[A_IQ qcno] = qcno_change(qcno_dB, stdn_IQ(k), Tc);
A_IQ_eff(k) = A_IQ(k)*sinc(EpsW*Tc/2 /pi)*ro(EpsTau);
mI = A_IQ_eff(k) * cos(EpsW*Tc/2 + EpsPhi);
mQ = - A_IQ_eff(k) * sin(EpsW*Tc/2 + EpsPhi);
I = mI + nI;
Q = mQ + nQ;
qcno_dB = 45; % Отношение сигнал/шум, dBHz
stdn_IQ = 8; % СКО шума квадратур
nI = stdn_IQ*randn(1,1); % // I-comp noise
nQ = stdn_IQ*randn(1,1); % // Q-comp noise
% EpsTau - расстройка по задержке
% EpsW - расстройка по частоте на начальный момент накопления
% EpsPhi - расстройка по фазе на начальный момент накопления
[A_IQ qcno] = qcno_change(qcno_dB, stdn_IQ(k), Tc);
A_IQ_eff(k) = A_IQ(k)*sinc(EpsW*Tc/2 /pi)*ro(EpsTau);
mI = A_IQ_eff(k) * cos(EpsW*Tc/2 + EpsPhi);
mQ = - A_IQ_eff(k) * sin(EpsW*Tc/2 + EpsPhi);
I = mI + nI;
Q = mQ + nQ;
Где функция qcno_change
:
%/**
%Расчет амплитуды квадратур для статистических эквивалентов
%@param qcno_dB - отношение qcno = Ps/No в дБГц
%@param stdn_IQ - СКО шума квадратур
%@param Tc - интервал когерентного накопления
%*/
function [A_IQ qcno] = qcno_change(qcno_dB, stdn_IQ, Tc)
qcno = 10.^(qcno_dB/10);
A_IQ = stdn_IQ .* sqrt(2 * qcno * Tc);
end
%Расчет амплитуды квадратур для статистических эквивалентов
%@param qcno_dB - отношение qcno = Ps/No в дБГц
%@param stdn_IQ - СКО шума квадратур
%@param Tc - интервал когерентного накопления
%*/
function [A_IQ qcno] = qcno_change(qcno_dB, stdn_IQ, Tc)
qcno = 10.^(qcno_dB/10);
A_IQ = stdn_IQ .* sqrt(2 * qcno * Tc);
end
Функция ro
:
%/**
%Вычисление значения автокорреляционной функции ДК
%@param x - рассогласование по задержке в тех же единицах, в которых задана глобальная переменная TauChip (длительность одного чипа ДК)
%*/
function f=ro(x)
global TauChip
f = (abs(x) < TauChip).*(1 - abs(x)/TauChip);
end
%Вычисление значения автокорреляционной функции ДК
%@param x - рассогласование по задержке в тех же единицах, в которых задана глобальная переменная TauChip (длительность одного чипа ДК)
%*/
function f=ro(x)
global TauChip
f = (abs(x) < TauChip).*(1 - abs(x)/TauChip);
end