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

Материал из SRNS
Перейти к: навигация, поиск
(Сравнение с другими ЧД)
 
(не показаны 18 промежуточных версий 2 участников)
Строка 1: Строка 1:
 +
{{TOCright}}
 +
 
Дискриминатор частоты '''с временным сдвигом квадратурных компонент''' известен в англоязычной литературе как cross-product дискриминатор<ref name="NavipediaFLL">http://www.navipedia.net/index.php/Frequency_Lock_Loop_(FLL)</ref>.  
 
Дискриминатор частоты '''с временным сдвигом квадратурных компонент''' известен в англоязычной литературе как cross-product дискриминатор<ref name="NavipediaFLL">http://www.navipedia.net/index.php/Frequency_Lock_Loop_(FLL)</ref>.  
  
Дискриминатор использует отсчеты коррелятора с текущего и предыдущего такта работы. <br />
+
Дискриминатор использует отсчеты коррелятора с текущего и предыдущего такта работы: <br />
  
<math>u_{D \omega, k} = 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})</math>,
+
:<math>u_{D \omega, k} = 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})</math>,
  
 
где <br />
 
где <br />
<math>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))</math>,<br />
+
:<math>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))</math>,<br />
<math>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))</math>,<br />
+
:<math>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))</math>,<br />
  
<math>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))</math>,<br />
+
:<math>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))</math>,<br />
<math>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))</math>.<br />
+
:<math>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))</math>.<br />
  
 
== Особенности работы ==
 
== Особенности работы ==
 
[[Файл:20151028_Про перекрытие.png|мини|справа|600пкс|Варианты работы дискриминатора]]
 
[[Файл:20151028_Про перекрытие.png|мини|справа|600пкс|Варианты работы дискриминатора]]
Отметим, что возможна различная интерпретация работы дискриминатора. На рисунке представлено два возможных варианта, условно названных "Перекрытие" и "Перекрытие отсутствует". Поясним рисунок. Пусть в некоторый момент времени <math>t_{k}</math> доступны отсчеты с выхода коррелятора <math>I_k, Q_k</math> и отсчеты из предыдущей эпохи <math>I_{k-1}, Q_{k-1}</math>. На их основе можно сформировать отсчет дискриминатора <math>u_{D\omega,k}</math>. Далее возможны варианты. В случае, если работа идет с "перекрытием", следующий отсчет дискриминатора <math>u_{D\omega,k+1}</math> будет сформирован из новых отсчетов коррелятора <math>I_{k+1}, Q_{k+1}</math> и уже использованных в предыдущем шаге <math>I_k, Q_k</math>. Таким образом, каждое вычисление отсчета дискриминатора использует отсчеты коррелятора, уже использованные в расчете предыдущего значения дискриминатора. Поэтому шум выхода дискриминатора в данном случае оказывается коррелированным, а его СПМ отличается от СПМ белого шума.  В случае работы без "перекрытия" для расчета соседних значений выхода дискриминатора каждый раз используются разные корреляционные суммы. В этом случае, шум дискриминатора будет некорреллированным с равномерной СПМ. Однако, темп работы такого дискриминатора ниже в 2 раза: ему нужно "дождаться" следующей пары отсчетов.
 
  
Формулы для крутизны и дисперсии шумов на выходе/входе ЧД (приведены далее) позволяют моделировать его в виде стат. эквивалента
+
Возможны различные реализация дискриминатора. На рисунке представлено два варианта, условно названных "Перекрытие" и "Перекрытие отсутствует". Поясним рисунок.  
  
<math>u_{D\omega,k} = S_{D}(\omega_k - \widetilde{\omega_k}) + n_{D,k}</math>, где <math>n_{D,k} \sim N(0, D_\eta)</math>  
+
Пусть в некоторый момент времени <math>t_{k}</math> доступны отсчеты с выхода коррелятора <math>I_k, Q_k</math> и отсчеты из предыдущей эпохи <math>I_{k-1}, Q_{k-1}</math>. На их основе можно сформировать отсчет дискриминатора <math>u_{D\omega,k}</math>. Далее возможны варианты.
 +
 
 +
В случае, если работа идет с "перекрытием", следующий отсчет дискриминатора <math>u_{D\omega,k+1}</math> будет сформирован из новых отсчетов коррелятора <math>I_{k+1}, Q_{k+1}</math> и уже использованных в предыдущем шаге <math>I_k, Q_k</math>. Таким образом, каждое вычисление отсчета дискриминатора использует отсчеты коррелятора, уже использованные в расчете предыдущего значения дискриминатора. Поэтому шум выхода дискриминатора в данном случае оказывается коррелированным, а его СПМ отличается от СПМ белого шума.
 +
 
 +
Если дискриминатор работает без "перекрытия", для расчета соседних значений выхода дискриминатора каждый раз используются разные корреляционные суммы. В этом случае, шум дискриминатора будет некорреллированным с равномерной СПМ. Однако, темп работы такого дискриминатора ниже в 2 раза: ему нужно "дождаться" следующей пары отсчетов.
 +
 
 +
Для дискриминатора "с перекрытием" использование статистического эквивалента вида
 +
 
 +
:<math>u_{D\omega,k} = S_{D}(\omega_k - \widetilde{\omega_k}) + n_{D,k}</math>, где <math>n_{D,k} \sim N(0, D_\eta)</math>  
 +
 
 +
при моделировании следящих систем недопустимо, т.к. он не отражает корреляционных свойств. Следует воспользоваться статистическими эквивалентами коррелятора.
  
Стоит отметить, что моделирование по этим формулам нужно проводить для случая "перекрытие отсутствует", т. к. в случае с "перекрытием" необходимо будет моделировать корреллированность шумов во временных отсчетах дискриминатора.
 
 
<br clear="all" />
 
<br clear="all" />
  
Строка 27: Строка 37:
 
Сделано допущение, что <math>\varepsilon_{\omega,k-1} = \varepsilon_{\omega,k}</math>.
 
Сделано допущение, что <math>\varepsilon_{\omega,k-1} = \varepsilon_{\omega,k}</math>.
  
<math>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),</math>
+
:<math>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),</math>
  
 
где <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> - разность истинного и опорного параметров.  
Строка 49: Строка 59:
 
Дисперсия шума эквивалентного наблюдения частоты, т.е. шума с выхода дискриминатора, пересчитанного '''к его входу''' при нулевой расстройке по частоте: <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>
  
 +
=== Сравнение с другими ЧД ===
  
Интересно сравнить дисперсию шумов по входу для разных дискриминаторов. На данный момент у нас есть:
+
Интересно сравнить дисперсию шумов по входу для различных дискриминаторов:
* Собственно дисперсия шума на входе рассматриваемого в этой статье дискриминатора. Обозначим ее как <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>D_1</math>:
  
* Дисперсия шума на входе оптимального при низком отношении сигнал/шум частотного дискриминатора (тот, который <math>I_kI'_k+Q_kQ'_k</math>). Формула из диссера Корогодина И. В., или, например, из этой [[Публикация:Корогодин 2013 Потенциальные характеристики оценивания частоты в некогерентном приемнике|статьи]]. Обозначим ее как <math>D_2</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>I_kI'_k+Q_kQ'_k</math>) <ref name="OptimalFLL">[[Публикация:Корогодин 2013 Потенциальные характеристики оценивания частоты в некогерентном приемнике]]</ref>, <ref name="KorPhD">[[Публикация:Корогодин 2013 Разработка алгоритмов обработки сигналов СНС в аппаратуре определения угловой ориентации объектов]]</ref>. Обозначим ее как <math>D_2</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>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>T_2 = 2T_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>.
+
:<math>\frac{D_2}{D_1} = \frac{6}{8}</math>,  
  
Таким образом, по дисперсии шумов наблюдается не очень то большая разница между сравниваемыми дискриминаторами. На рисунке ниже приведен график зависимости СКО эквивалентных шумов представленных ЧД от отношения сигнал/шум q_{c/n0}.
+
или для СКО:
 +
 
 +
:<math>\sigma_2 = 0.866*\sigma_1</math>.
 +
 
 +
Дискриминатор cross проигрывает <math>I_kI'_k+Q_kQ'_k</math> около 15% по СКО во всем диапазоне с/ш. На рисунке ниже приведен график зависимости СКО эквивалентных шумов представленных ЧД от отношения сигнал/шум <math>q_{c/n0}</math>.
  
 
[[File:20151029_Сравнение СКО.png|центр|500px]]
 
[[File:20151029_Сравнение СКО.png|центр|500px]]
 +
 +
 +
Далее построены нормированные на крутизну дискриминационные характеристики сравниваемых дискриминаторов. Как и при сравнении дисперсий шума, полагаем <math>T_2 = 2T_1</math>.
 +
 +
[[File:20151103_FreqDiskrCompare.png|центр|500px]]
 +
 +
 +
Из приведенного рисунка следует вывод, что апертура обоих частотных дискриминаторов равна <br />
 +
<math>A_\omega=\frac{2}{T_u}</math>.<br />
 +
<math>T_u</math> - темп работы дискриминатора. Ранее дискриминаторы сравнивались при условии <math>T_u = T_2 = 2T_1</math>, т.е. при одинаковом темпе работы. При анализе "cross" дискриминатора нужно помнить, что <math>T_1</math> в формулах его характеристик - это время когерентного накопления в корреляторе, а темп работы самого дискриминатора по схеме без перекрытия <math>T_u = 2T_1</math>.
  
 
== Листинг модели ==
 
== Листинг модели ==
Строка 204: Строка 229:
  
 
== Ссылки ==
 
== Ссылки ==
 +
<references/>
  
 
[[Категория:Дискриминаторы]]
 
[[Категория:Дискриминаторы]]
 
[[Категория:Оценивание частоты]]
 
[[Категория:Оценивание частоты]]

Текущая версия на 15:22, 3 ноября 2015

Содержание

Дискриминатор частоты с временным сдвигом квадратурных компонент известен в англоязычной литературе как cross-product дискриминатор[1].

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

u_{D \omega, k} = 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 раза: ему нужно "дождаться" следующей пары отсчетов.

Для дискриминатора "с перекрытием" использование статистического эквивалента вида

u_{D\omega,k} = S_{D}(\omega_k - \widetilde{\omega_k}) + n_{D,k}, где n_{D,k} \sim N(0, D_\eta)

при моделировании следящих систем недопустимо, т.к. он не отражает корреляционных свойств. Следует воспользоваться статистическими эквивалентами коррелятора.


[править] Дискриминационная характеристика

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

[править] Сравнение с другими ЧД

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

  • Собственно дисперсия шума на входе рассматриваемого в этой статье cross дискриминатора. Обозначим ее как D_1:
 D_1 = D_{\widetilde{\eta}_\omega} = \frac{1}{q_{c/n_0}T_1^3}(1+\frac{1}{2q_{c/n_0}T_1}).
  • Дисперсия шума на входе оптимального при низком отношении сигнал/шум частотного дискриминатора (тот, который I_kI'_k+Q_kQ'_k) [2], [3]. Обозначим ее как D_2:
 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}.

Ошибка создания миниатюры: convert: unable to open image `/app/images/0/07/20151029__.png': No such file or directory @ error/blob.c/OpenBlob/2641.
convert: no images defined `/tmp/transform_18c54be510d4-1.png' @ error/convert.c/ConvertImageCommand/3044.


Далее построены нормированные на крутизну дискриминационные характеристики сравниваемых дискриминаторов. Как и при сравнении дисперсий шума, полагаем T_2 = 2T_1.

20151103 FreqDiskrCompare.png


Из приведенного рисунка следует вывод, что апертура обоих частотных дискриминаторов равна
A_\omega=\frac{2}{T_u}.
T_u - темп работы дискриминатора. Ранее дискриминаторы сравнивались при условии T_u = T_2 = 2T_1, т.е. при одинаковом темпе работы. При анализе "cross" дискриминатора нужно помнить, что T_1 в формулах его характеристик - это время когерентного накопления в корреляторе, а темп работы самого дискриминатора по схеме без перекрытия T_u = 2T_1.

[править] Листинг модели

Ниже представлен листинг модели, с которой сняты картинки.


[править] Ссылки

  1. http://www.navipedia.net/index.php/Frequency_Lock_Loop_(FLL)
  2. Публикация:Корогодин 2013 Потенциальные характеристики оценивания частоты в некогерентном приемнике
  3. Публикация:Корогодин 2013 Разработка алгоритмов обработки сигналов СНС в аппаратуре определения угловой ориентации объектов
Персональные инструменты
Пространства имён

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