реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> И опять определение частотного смешения, что лучше?
DMax
сообщение May 6 2010, 16:35
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234



Есть несущая частота, принятая с шумом и снесённая на номинальный ноль. В идеале весь мой сигнал выродится в зашумлённую константу, но на практике из-за того, что есть частотное смещение, я получу комплексную экспоненту с маленькой частотой. Вот мне нужно эту частоту определить самым простым и быстрым способом.

Алгоритм 1:
Я беру две выборки сигнала длиной N отсчетов и скалярно помножаю друг на друга (понятно, начала этих выборок находятся во времени друг от друга ближе, чем минимальный период искомой частоты). Аргумент полученного комплексного скаляра делённый на количество отсчетов в выборке - это есть прирост фазы на отсчёт. Если я его поделю на 2*Pi и умножу на Fs, то получу искомую частоту.

Алгоритм 2:
Предположим, что фаза меняется медленно. Я беру две выборки длиной N отсчетов и усредняю каждые K соседних отсчетов в каждой выборке. Таким образом я получаю две выборки длинной (N/K) отсчетов и далее действую по алгоритму 1. В предельном случае, при определённых ограничениях на N, можно взять K = N.

В отсутствие шума результаты алгоритмов совпадают. Но если шум присутствует, то в результате второго алгоритма, как бы получается, что перед тем, как находится прирост фазы на сэмпл, мы усредняем шум, уменьшая его амплитуду в sqrt(k) раз. Или мне это приглючилось и алгоритмы одинаково эффективны?
Go to the top of the page
 
+Quote Post
Pechka
сообщение May 6 2010, 16:53
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



На первый взгляд мне кажется так: в первом случае получается уменьшение шума в sqrt(N) раз поскольку делите аргумент полученного комплексного скаляра на число отсчётов в выборке т.е. на N. Во втором случае вы сначала делите на k, уменьшая шум в sqrt(k) раз, а после по алгоритму 1 ещё в sqrt(N/k) раз (поскольку у вас осталось не N, а N/k отсчётов в выборке) итого выигрыш во втором случае равен sqrt(k)*sqrt(N*k)=sqrt(N).
Мне думается, что эффективность будет одинаковой, хотя может где-то чего-то и наврал.
А моделировать не пробовалось?
Go to the top of the page
 
+Quote Post
DMax
сообщение May 6 2010, 18:01
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234



Цитата(Pechka @ May 6 2010, 20:53) *
На первый взгляд мне кажется так: в первом случае получается уменьшение шума в sqrt(N) раз поскольку делите аргумент полученного комплексного скаляра на число отсчётов в выборке т.е. на N. Во втором случае вы сначала делите на k, уменьшая шум в sqrt(k) раз, а после по алгоритму 1 ещё в sqrt(N/k) раз (поскольку у вас осталось не N, а N/k отсчётов в выборке) итого выигрыш во втором случае равен sqrt(k)*sqrt(N*k)=sqrt(N).
Мне думается, что эффективность будет одинаковой, хотя может где-то чего-то и наврал.
А моделировать не пробовалось?

Пока не пробовалось. Нет под рукой матлаба sad.gif
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 7 2010, 05:25
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Pechka @ May 6 2010, 20:53) *
На первый взгляд мне кажется так: в первом случае получается уменьшение шума в sqrt(N) раз поскольку делите аргумент полученного комплексного скаляра на число отсчётов в выборке т.е. на N. Во втором случае вы сначала делите на k, уменьшая шум в sqrt(k) раз, а после по алгоритму 1 ещё в sqrt(N/k) раз (поскольку у вас осталось не N, а N/k отсчётов в выборке) итого выигрыш во втором случае равен sqrt(k)*sqrt(N*k)=sqrt(N).
Мне думается, что эффективность будет одинаковой, хотя может где-то чего-то и наврал.
А моделировать не пробовалось?

Не правильно. Второй алгоритм лучше (если изменение фазы за время k не велико), т.к. для первого случае уменьшение шума будет в sqrt(N/2) раз.
Пусть s, s1, - фрагменты сигнала, n, n1 - шум, все вектор столбец. Скалярное произведение
(s'+n')*(s1+n1) = s'*s1 + s'*n1 + n'*s1 + n'*n1.
s'*s1 - полезный сигнал,
s'*n1 + n'*s1 - шумовая компонента, ее дисперсия будет в 2*N раз больше чем дисперсия исходного шума
n'*n1 - для больших сигнал шум этим можно пренебречь.

ps шум предполагается не коррелированным.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
DMax
сообщение May 7 2010, 08:39
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234



Цитата(alex_os @ May 7 2010, 09:25) *
Не правильно. Второй алгоритм лучше (если изменение фазы за время k не велико), т.к. для первого случае уменьшение шума будет в sqrt(N/2) раз.
Пусть s, s1, - фрагменты сигнала, n, n1 - шум, все вектор столбец. Скалярное произведение
(s'+n')*(s1+n1) = s'*s1 + s'*n1 + n'*s1 + n'*n1.
s'*s1 - полезный сигнал,
s'*n1 + n'*s1 - шумовая компонента, ее дисперсия будет в 2*N раз больше чем дисперсия исходного шума
n'*n1 - для больших сигнал шум этим можно пренебречь.

ps шум предполагается не коррелированным.


Всё правильно. Спасибо! Чего-то вчера вечером уже башка не работала smile.gif

Всех с наступающим праздником!
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 7 2010, 16:24
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(DMax @ May 6 2010, 20:35) *
Есть несущая частота, принятая с шумом и снесённая на номинальный ноль. В идеале весь мой сигнал выродится в зашумлённую константу, но на практике из-за того, что есть частотное смещение, я получу комплексную экспоненту с маленькой частотой. Вот мне нужно эту частоту определить самым простым и быстрым способом.

В этом источнике описан целый ряд алгоритмов по оценке частоты Прикрепленный файл  P.J._Kootsookos._A_Review_of_the_Frequency_Estimation_and_Tracking_Problems.pdf ( 331.63 килобайт ) Кол-во скачиваний: 798
Go to the top of the page
 
+Quote Post
Pechka
сообщение May 11 2010, 14:15
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Цитата(alex_os @ May 7 2010, 09:25) *
Не правильно. Второй алгоритм лучше (если изменение фазы за время k не велико), т.к. для первого случае уменьшение шума будет в sqrt(N/2) раз.
Пусть s, s1, - фрагменты сигнала, n, n1 - шум, все вектор столбец. Скалярное произведение
(s'+n')*(s1+n1) = s'*s1 + s'*n1 + n'*s1 + n'*n1.
s'*s1 - полезный сигнал,
s'*n1 + n'*s1 - шумовая компонента, ее дисперсия будет в 2*N раз больше чем дисперсия исходного шума
n'*n1 - для больших сигнал шум этим можно пренебречь.

ps шум предполагается не коррелированным.


А по-моему правильно, за исключением оценки подавления шума. Пусть первый алгоритм давит шум в sqrt(N/2) раз.
N - полное число отсчётов в выборке
k - число усреднений при получении одной точки (во втором алгоритме)
n=N/k
тогда если через второй алгоритм работать получаем: sqrt(k), после переходим к алгоритму (1) и получаем sqrt(n/2). перемножаем и получаем sqrt(k)*sqrt(n/2)=sqrt(k)*sqrt(N/2k)=sqrt(N/2).
Так, что вроде бы алгоритмы одинаковые.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 11 2010, 14:48
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Добрый день. На днях столкнулся с подобного рода задачей. Интересует следующий вопрос: если в качестве ядра алгоритма оценки используется преобразование Фурье с дальнейшей интерполяцией отсчетов спектра, то существует ли какая-нибудь методика оптимального (с точки зрения минимального отклонения по частоте) выбора основания преобразования Фурье, или же проблема рещается просто: чем выше разрешение пр-ия Фурье, тем лучше оценка, и тогда ничего не надо интерполировать?
Go to the top of the page
 
+Quote Post
Pechka
сообщение May 11 2010, 15:04
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Цитата(Serg76 @ May 11 2010, 18:48) *
Добрый день. На днях столкнулся с подобного рода задачей. Интересует следующий вопрос: если в качестве ядра алгоритма оценки используется преобразование Фурье с дальнейшей интерполяцией отсчетов спектра, то существует ли какая-нибудь методика оптимального (с точки зрения минимального отклонения по частоте) выбора основания преобразования Фурье, или же проблема рещается просто: чем выше разрешение пр-ия Фурье, тем лучше оценка, и тогда ничего не надо интерполировать?

В общем виде работает правило чем выше разрешение преобразования, тем лучше. Однако, если есть какая-либо априорная информация о сигнале ( ключевых частотах спектра, например) то основание для преобразования можно оптимизировать так, чтобы ключевые частоты не расползались по соседним бинам. Это нужно моделировать на конкретных сигналах.

Сообщение отредактировал Pechka - May 11 2010, 15:05
Go to the top of the page
 
+Quote Post
Stanislav
сообщение May 11 2010, 21:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(DMax @ May 6 2010, 20:35) *
Есть несущая частота, принятая с шумом и снесённая на номинальный ноль. В идеале весь мой сигнал выродится в зашумлённую константу, но на практике из-за того, что есть частотное смещение, я получу комплексную экспоненту с маленькой частотой. Вот мне нужно эту частоту определить самым простым и быстрым способом.
Существует несколько способов быстрой оценки частоты комплексного гармонического сигнала. Для начала, следует задаться границами её изменения, а также другими характаристиками сигнала (напр., стационарность имеет важное значение).
А о шуме что-нибудь известно?

Цитата(DMax @ May 6 2010, 20:35) *
Алгоритм 2:
Предположим, что фаза меняется медленно. Я беру две выборки длиной N отсчетов и усредняю каждые K соседних отсчетов в каждой выборке. Таким образом я получаю две выборки длинной (N/K) отсчетов и далее действую по алгоритму 1. В предельном случае, при определённых ограничениях на N, можно взять K = N.
Первый алгоритм сгодится для оценки только при достаточно большом отношеннии сигнал-шум.
Второй выглядит несколько получше, но тоже далёк от оптимума, насколько я могу судить.
Думается, (кусочная) полиномиальная или комплексно-экспоненциальная аппроксимация функции будет работать лучше. По методу наименьших квадратов, например, если шум гауссов.

Цитата(Serg76 @ May 11 2010, 18:48) *
Добрый день. На днях столкнулся с подобного рода задачей. Интересует следующий вопрос: если в качестве ядра алгоритма оценки используется преобразование Фурье...
При малом числе периодов функции, ДПФ будет давать сильно смещённую оценку, и не из-за низкого разрешения, а, в основном, по причине растекания спектральных компонентов (явления Гиббса).


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
AlikM
сообщение May 16 2010, 16:01
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 5-10-09
Пользователь №: 52 767



Цитата(DMax @ May 6 2010, 20:35) *
Есть несущая частота, принятая с шумом и снесённая на номинальный ноль. В идеале весь мой сигнал выродится в зашумлённую константу, но на практике из-за того, что есть частотное смещение, я получу комплексную экспоненту с маленькой частотой. Вот мне нужно эту частоту определить самым простым и быстрым способом.

В литературе описано огромное кол-во методов оценки частоты. А Вам нужно сделать правильный выбор для вышей конкретной задачи и доступных ресурсов для ее решения. Например, по критерию максимального правдоподобия отимальный метод - это БПФ.
Посмотрите еще здесь Прикрепленный файл  A_SIMPLE_CARRIER_SYNCHRONIZATION_ALGORITHM.pdf ( 183.51 килобайт ) Кол-во скачиваний: 572




Цитата(Serg76 @ May 11 2010, 18:48) *
Добрый день. На днях столкнулся с подобного рода задачей. Интересует следующий вопрос: если в качестве ядра алгоритма оценки используется преобразование Фурье с дальнейшей интерполяцией отсчетов спектра, то существует ли какая-нибудь методика оптимального (с точки зрения минимального отклонения по частоте) выбора основания преобразования Фурье, или же проблема рещается просто: чем выше разрешение пр-ия Фурье, тем лучше оценка, и тогда ничего не надо интерполировать?

Не совсем так, явление "утечки" в БПФ может пивести к неправильным результатам, даже при больших разрешениях БПФ. Так, бин в котором расположена интересующая нас спектральная компонента может быть сильно искажен боковыми лепестками соседних бинов, в которых расположены мощные мешающие сигналы. Для борьбы с эффектом "утечки" применяют окна, но платить придется уменьшением разрешающей способности.
Еще совет, если точно известны все возможные значения частоты (например OFDM), то частоту дискретизации сигнала и размер БПФ следует выбирать так чтобы эти частоты находились в середине бинов.
И по-поводу интерполяции, это тоже метод smile.gif . Вот, например, простой и эффективный метод локализации спектрального пика.
mpeak = mmax - Re(delta), delta = (X(mmax+1) - X(mmax-1)) / (2*X(mmax) - X(mmax+1) - X(mmax-1) ), где mmax - целочисленный индекс наибольшей по модулю спектарльной компоненты |X(mmax)|. X(mmax+1), X(mmax-1) - комплексные спектральные отсчеты по сторонам от наибольшего отсчета. fpeak = mpeak*Fs/N, mpeak - дробный
Этот метод дает погрешность при сигнал/шум 3 дБ примерно 0.06 от ширины бина.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 20:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01421 секунд с 7
ELECTRONIX ©2004-2016