Перейти к содержанию
    

минимизация погрешности

Есть сигнал. Частота основной гармоники 50 гц.

Используется алгоритм ДПФ. При смещении частоты на 1-5 Гц. Появляется дополнительная погрешность по модулю ДПФ. Оконное сглаживание не годится.

частота дискретизации 1200гц задана жёстко и не меняется, выборок строго 24 за период.

Слышал про алгоритм интерполяции, но так ничего конкретного не нашёл.

Может кто сталкивался или известен источник.????

Необходимо минимизировать погрешность БПФ при смещении частоты сигнала при постоянной частоте дискретизации.

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть сигнал. Частота основной гармоники 50 гц.

Используется алгоритм ДПФ. При смещении частоты на 1-5 Гц. Появляется дополнительная погрешность по модулю ДПФ. Оконное сглаживание не годится.

частота дискретизации 1200гц задана жёстко и не меняется, выборок строго 24 за период.

Слышал про алгоритм интерполяции, но так ничего конкретного не нашёл.

Может кто сталкивался или известен источник.????

Необходимо минимизировать погрешность БПФ при смещении частоты сигнала при постоянной частоте дискретизации.

 

Посмотрите здесь

http://home.comcast.net/~kootsoop/EricJ2/index.htm

Там есть Матлаб-файлы.

Я когда-то пробовал их все. Macleod's estimator лучший в отношении систематических ошибок.

При достаточно большом отношении сигнал/шум они выходят все на предельные ошибки по Крамеру-Рао:

дисперсия ошибки измерения частоты CRLB(f) = 3/(2*pi*pi*N*N*N*SNR)

N - размер блока, SNR - сиигнал/шум

По мере увеличения размера блока и отношения сигнал/шум, когда предельная ошибка стремится к нулю, точность определяется систематическими ошибками алгоритма.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть сигнал. Частота основной гармоники 50 гц.

Да. такое случается.

 

Используется алгоритм ДПФ.

 

Для чего? Чтоб померять мощность этой гармоники?

 

При смещении частоты на 1-5 Гц. Появляется дополнительная погрешность по модулю ДПФ.

 

Погрешность? Типа значение на частоте 50 гц не соответствует амплитуде сигнала во времени?

Размер дпф какой?

 

 

Оконное сглаживание не годится.

 

Спорный тезис...

 

 

частота дискретизации 1200гц задана жёстко и не меняется, выборок строго 24 за период.

Слышал про алгоритм интерполяции, но так ничего конкретного не нашёл.

 

Чего интерполировать хотим? Спектр? Или его модуль?

 

Может кто сталкивался или известен источник.????

Необходимо минимизировать погрешность БПФ при смещении частоты сигнала при постоянной частоте дискретизации.

 

Похоже, минимизировать тут нечего. Если частота гармоники не равна k*1200/N (N - размер дпф k = 0,1...N-1),

мощность гармоники будет размазана по 2-м ближайшим отсчетам дпф.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже, минимизировать тут нечего. Если частота гармоники не равна k*1200/N (N - размер дпф k = 0,1...N-1),

мощность гармоники будет размазана по 2-м ближайшим отсчетам дпф.

 

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

В десятки раз точнее, чем бин DFT. В соответствии с предельными оценками CRLB.

В простейшем случае достаточно вычислить "DFT" в точках отстоящих на пол-бина от энергетического максимума и провести интерполяцию параболой, с тем, чтобы найти максимум и его аргумент (частоту). В литературе это называется ML-extension. По приведённой ссылке другие более непрямые "оценщики"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

В десятки раз точнее, чем бин DFT. В соответствии с предельными оценками CRLB.

В простейшем случае достаточно вычислить "DFT" в точках отстоящих на пол-бина от энергетического максимума и провести интерполяцию параболой, с тем, чтобы найти максимум и его аргумент (частоту). В литературе это называется ML-extension

 

Полностью согласен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интереснео, но не очень понятно. Похоже на передачу информации по силовой сети. Допустим, частота сети может быть 45-55 Гц. НО Она одинакова и для приемника и для передатчика. Так, что тут есть 24 точки для обоих. нормальная синхронизация и ничего не уходит и не размазывается.

:rolleyes: "Вот уж, действительно, Все относительно, Все-все - ВСЕ!"

Изменено пользователем sup-sup

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это нужно для оценки самой сети (в трёхфазной сети скажем). нужно найти ДПФ модуль первой гармноники(50Гц). Нужно как-то обеспечить минимальное влияние плавания частоты на результат ДПФ.

Вообще изначально имеется сигнал 50Гц + гармоники (реальный сигнал сетевой частоты). В данном случае интересует информация об основной гармонике.

 

Один умный человек мне сказал:

Синхронизация хорошо осуществляться аналоговым способом. Строится

умножитель частоты на основе ФАПЧ. В вашем случае умножать надо на 24. Вот

эта частота с выхода умножителя и используется как частота квантования.

Эти импульсы запускают АЦП. В этом случае частота квантования становится

переменной.

С постоянной частотой квантования тоже можно, но если она выбрана с

огромным запасом. Например у нас есть примерно 360 точек в

периоде. Тогда мы можем подстраивать интервал по 1 кванту времени,

которому соответствует всего 1 градус. Такую подстройку можно и

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

интервал между переходами через ноль. Скажем, 358 или 361 вместо 360.

А с низкой и постоянной частой квантования... Не думаю... Путем

интерполяции, но это тоже связано будет со сложными вычислениями.

Вот про последнее хотелось узнать по-подробнее.

 

ЗЫ Возможно если частота сигнала изменилась, то можно как-то посчитать переходы через ноль имея выборки такого сигнал.

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так что, частота дискретизации задана от кварца, а частота сети "гуляет" и происходит набег фазы? Интересно. Если говорилось про интерполяцию, то это, возможно, для передискретизации. Только как ее делать, если соотношение частоты сети и 1200Hz может быть произвольным в любой момент. Теоретически, нужна PLL-ка на частоту сети, можно с удвадцатичетверенной частотой, только зачем тогда дискретизация строго на частоте 1200? Можно и на частоте PLL-ки. Если нельзя, то нужна передискретизация с применением интерполяции и децимации (+ фильтры) с переменными коэффициентами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это нужно для оценки самой сети (в трёхфазной сети скажем). нужно найти ДПФ модуль первой гармноники(50Гц). Нужно как-то обеспечить минимальное влияние плавания частоты на результат ДПФ.

...

Если нужна амплитуда основной гармоники не нужно так извращаться, можно:

1) Считать энергетику сигнала не по одному бину FFT а по нескольким, т.е. оценить амплитуду на выходе полосового фильтра с полосой пропускания

[50Нz-delta ... 50Hz+delta]. В примитивном исполнении берете несколько квадратов модулей FFT вокруг интересующей частоты складываете извлекаете корень квадратный из суммы и получается оценка искомой амплитуды. Естественно это все работает если кроме интересующей гармоники в заданном диапазоне больше ничего не живет.

 

2) В топку FFT, делаете фапч , фапч захватывает искомую гармонику, считаете sqrt( avrg(sig*cos(w*t))^2 + avrg(sig*sin(w*t))^2 )

sig - входной сигнал, cos(w*t), sin(w*t) - выходы ГУН ФАПЧ и ГУН ФАПЧ сдвинутый на 90 градусов, avrg - усреднение сделанное тем или иным способом. Все это в цифре , естественно.

p.s. А вообще способ предложенный Fontp наверное самый эффективный...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть сигнал. Частота основной гармоники 50 гц.

Используется алгоритм ДПФ. При смещении частоты на 1-5 Гц. Появляется дополнительная погрешность по модулю ДПФ. Оконное сглаживание не годится.

частота дискретизации 1200гц задана жёстко и не меняется, выборок строго 24 за период.

Если частота плавает то уже не строго!

Слышал про алгоритм интерполяции, но так ничего конкретного не нашёл.

Этого не может быть интернет завален этим добром. Гугль на интерполяция выдает столько всего что полжизни не перечитать!

Необходимо минимизировать погрешность БПФ при смещении частоты сигнала при постоянной частоте дискретизации.

Что значит минимизировать погрешность БПФ? Если речь идет о размазывании гармоники, то оконное сглаживание помогает. Если точность оценки амплитуды не удовлетворяет при использовании оконного сглаживания, то тогда контур ФАПЧ можно предложить, тогда обработка с точностью до фазы даст требуемую точность оценки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это нужно для оценки самой сети (в трёхфазной сети скажем). нужно найти ДПФ модуль первой гармноники(50Гц). Нужно как-то обеспечить минимальное влияние плавания частоты на результат ДПФ.

Вообще изначально имеется сигнал 50Гц + гармоники (реальный сигнал сетевой частоты). В данном случае интересует информация об основной гармонике.

 

Что нужно оценить-то? Мощность первой гарионики? Дык накой тогда дпф нужно?

Нужно расчитать полосовой фильтр с f0=50 и полосой +-df где df - максимально допустимое отклонение частоты.

Можно даже квадратурный фильтр реализовать. И посчитать амплитуду/мощность сигнала на выходе этого фильтра.

 

 

 

Один умный человек мне сказал:

Синхронизация хорошо осуществляться аналоговым способом. Строится

умножитель частоты на основе ФАПЧ. В вашем случае умножать надо на 24. Вот

эта частота с выхода умножителя и используется как частота квантования.

Эти импульсы запускают АЦП. В этом случае частота квантования становится

переменной.

С постоянной частотой квантования тоже можно, но если она выбрана с

огромным запасом. Например у нас есть примерно 360 точек в

периоде. Тогда мы можем подстраивать интервал по 1 кванту времени,

которому соответствует всего 1 градус. Такую подстройку можно и

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

интервал между переходами через ноль. Скажем, 358 или 361 вместо 360.

А с низкой и постоянной частой квантования... Не думаю... Путем

интерполяции, но это тоже связано будет со сложными вычислениями.

Вот про последнее хотелось узнать по-подробнее.

 

И это чтоб померять мощность гармоники? Ну, тады ой...

 

ЗЫ Возможно если частота сигнала изменилась, то можно как-то посчитать переходы через ноль имея выборки такого сигнал.

 

Дпф - линейное преобразование над сигналом. Подгонять сигнал под заранее заданный результат дпф - мне кажется, несколько антинаучно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите здесь

http://home.comcast.net/~kootsoop/EricJ2/index.htm

Там есть Матлаб-файлы.

Я когда-то пробовал их все. Macleod's estimator лучший в отношении систематических ошибок.

При достаточно большом отношении сигнал/шум они выходят все на предельные ошибки по Крамеру-Рао:

дисперсия ошибки измерения частоты CRLB(f) = 3/(2*pi*pi*N*N*N*SNR)

N - размер блока, SNR - сиигнал/шум

По мере увеличения размера блока и отношения сигнал/шум, когда предельная ошибка стремится к нулю, точность определяется систематическими ошибками алгоритма.

 

... попробовал Macleod's estimator. Так и не понял точно что возвращается как x в результате вычисления и что делать дальше с полученным числом.

Это очень похоже на метод определения частоты по максимуму спектральной плотности...

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... попробовал Macleod's estimator. Так и не понял точно что возвращается как x в результате вычисления и что делать дальше с полученным числом.

Это очень похоже на метод определения частоты по максимуму спектральной плотности...

 

Это он и есть. Только в десяток раз точнее, чем даёт максимум ДПФ, при разумном отношении cигнал/шум.

В широком диапазоне отношений сигнал/шум оценка выходит на предельно возможную по максимуму правдоподобия.

Если просто взять максимум спектра ДПФ, то максимальная погрешность определения частоты равна +- пол бина ДПФ.

Если найти максимум, а потом запустить тот Macleod's estimator, то он возвращает x-дробное смещение относительно максимального дискретного бина и как показывает модель точность в основном определяется шумом (и числом отсчетов N, конечно) и в разы лучше бина. То есть для единствиной гармоники можно победить дискретность сигнала и его ДПФ

 

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

 

Понятно, что всё это не работает, если линий в спектре 2 или несколько. Модель построена для одной спектральной линии на фоне белого шума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть сигнал. Частота основной гармоники 50 гц.

Используется алгоритм ДПФ. При смещении частоты на 1-5 Гц. Появляется дополнительная погрешность по модулю ДПФ. Оконное сглаживание не годится.

частота дискретизации 1200гц задана жёстко и не меняется, выборок строго 24 за период.

Слышал про алгоритм интерполяции, но так ничего конкретного не нашёл.

Может кто сталкивался или известен источник.????

Необходимо минимизировать погрешность БПФ при смещении частоты сигнала при постоянной частоте дискретизации.

как то это очень напоминает вот это ЭТО

Я лично не уверен, что статистические методы дадут результат на одном периоде сигнала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мы тут уже сделали прибор для измерения парметров сети на таком принципе. Только у нас частота оцифровки сильно выше (25600), но нам нужно было еще гармоники до 40-й считать. Так что, если только основную частоту - то может, и хватит. Точность алгоритма - порядка 1е-7, точность всего прибора (уже метрологическая) 0.01% и определяется, в основном температурным уходом резистров. Мы не используем скользящих буферов, берется буфер 8192 отсчета (отоло 16 периодов сети), на него накладывается Гауссовское окно (с правильной нормировкой, чтобы не изменяло выходных значений. Стандартная нормировка не годится), считается ДПФ, далее находится максимум пика, от него берется по несколько отсчетов в обе стороны (кол-во определяется параметрами Гаусса), суммирем их квадратично и получаем амплитуду гармоники. при таком алгоритме от частоты ничего не зависит в широких пределах. Единственная проблема - если частота изменяется на длине одного блока выборки - тогда ошибка увеличивается, но незначительно. В реальных измерениях этот эффект не приводит к большой погрешности по амплитуде. Вот с фазой - это да, там все начинает бегать очень сильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...