Jump to content

    

Измерение частоты

А почему тут все решили, что FFT может измерить частоту с указанной точностью???

Если при БПФ не заложен соответствующий базис (эталон), то это невозможно в принципе.

Вы сможете определить только форму спектра с огромными ошибками, и не более того...

Share this post


Link to post
Share on other sites
А почему тут все решили, что FFT может измерить частоту с указанной точностью???

Если при БПФ не заложен соответствующий базис (эталон), то это невозможно в принципе.

Вы сможете определить только форму спектра с огромными ошибками, и не более того...

 

_PV так сказал, я ему верю как святому.

Если С/Ш достаточен то можно измерить.

 

з.ы. Потом частота сэмплирования может быть кратной (или должна) 1.8 МГц - как эталону.

Share this post


Link to post
Share on other sites
А почему тут все решили, что FFT может измерить частоту с указанной точностью???

Если при БПФ не заложен соответствующий базис (эталон), то это невозможно в принципе.

Вы сможете определить только форму спектра с огромными ошибками, и не более того...

какой еще эталон? то что частоту тактирования АЦП надо знать с точностью 5ppm если хочется 5ppm измерить, вроде и так очевидно.

а вот это вот "с огромными ошибками" можете в каких-нибудь децибелах или Герцах привести?

форму определять не надо, надо найти положение максимума. это можно сделать при достаточно низком уровне шумов

я же выше в посчитал какое будет СКО ошибки определения частоты, там правда не FFT, а наименьшими квадратами синус подгонялся, но по точности это будет то же самое.

Share this post


Link to post
Share on other sites
...

форму определять не надо,...

...

Вот это как раз и есть самое слабое место этого метода. Имха, непреодолимое.

 

Share this post


Link to post
Share on other sites
Вот это как раз и есть самое слабое место этого метода. Имха, непреодолимое.

..был бы у меня тут матлаб я бы уже накидал схемку, генератор семи синусов на частоте 1.8 длительностью 4 мкс + шумы - и блок FFT на приеме, позырить.

 

з.ы.

 

у нас должен быть ПИК расползающийся в стороны, с шириной расползания обратно пропорциональной длительности импульса?

Share this post


Link to post
Share on other sites
Вот это как раз и есть самое слабое место этого метода. Имха, непреодолимое.

Я вот прикидываю простейший случай - нулевая частота - постоянный ток.

40 точек (частота АЦП - 10М время 4 мкс). Пусть даже 100, что дает нам уменьшение ошибки в 10 раз.

Получается 50 миллионных ошибка одного измерения. Должна быть...

Еще прикинем - нужно 10 постоянных времени ждать установления.

Share this post


Link to post
Share on other sites
...

у нас должен быть ПИК расползающийся в стороны, с шириной расползания обратно пропорциональной длительности импульса?

Длительность импульса - это только огибающая спектра импульса, но не сама линия. Расползание - это немного другое.

При кратных частотах вообще никакого расползания не будет.

Если частоты не кратные, чисто формально, можно считать результирующую форму уширением, и как-то это учесть.

Особенно, если делать коррекцию фазы со сведением постоянной составляющей к нулю.

Но сигналы идеальными не бывают. Соответственно, могут возникнуть проблемы из-за фазовой ошибки. И ошибка в фазе перетечёт в форму. со всеми вытекающими.

 

Share this post


Link to post
Share on other sites
Длительность импульса - это только огибающая спектра импульса, но не сама линия. Расползание - это немного другое.

При кратных частотах вообще никакого расползания не будет.

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

Share this post


Link to post
Share on other sites
Я вот прикидываю простейший случай - нулевая частота - постоянный ток.

40 точек (частота АЦП - 10М время 4 мкс). Пусть даже 100, что дает нам уменьшение ошибки в 10 раз.

Получается 50 миллионных ошибка одного измерения. Должна быть...

Еще прикинем - нужно 10 постоянных времени ждать установления.

надо найти не амплитуду одной конкретной гармоники, а частоту. то есть положение максимума.

и эта ошибка будет заметно меньше ошибки нахождения амплитуды одной конкретной гармоники.

 

если не нравится Фурье, просто наименьшими квадратами натяните синус на измеренные данные с шумом, что я выше и сделал с теми же цифрами 4мкс и 10МГц, или там что-то не правильно посчитано?

Share this post


Link to post
Share on other sites
Я вот прикидываю простейший случай - нулевая частота - постоянный ток.

...

Да, с этой стороны тоже забавно получается.

Share this post


Link to post
Share on other sites
если не нравится Фурье, просто наименьшими квадратами натяните синус на измеренные данные с шумом, что я выше и сделал с теми же цифрами 4мкс и 10МГц, или там что-то не правильно посчитано?

..прошу прощения у маэстро, и фурье мне нравиться, но не понимаю этой процедуры : наименьшими квадратами натяните синус на измеренные данные с шумом

для студентов - поясните на пальцах.

 

Я вот прикидываю простейший случай - нулевая частота - постоянный ток.

40 точек (частота АЦП - 10М время 4 мкс). Пусть даже 100, что дает нам уменьшение ошибки в 10 раз.

Получается 50 миллионных ошибка одного измерения. Должна быть...

Еще прикинем - нужно 10 постоянных времени ждать установления.

 

..а где вы успели перейти от относительных величин к абсолютным?

Конкретный С/Ш нам даст понять - измерим мы точно что требуется или нет.

А абстрактное - "уменьшение ошибки в десять раз" нам ничего не даёт.

У вас в примере , сферический АЦП и такая же постоянная составляющая.

Share this post


Link to post
Share on other sites
..прошу прощения у маэстро, и фурье мне нравиться, но не понимаю этой процедуры : наименьшими квадратами натяните синус на измеренные данные с шумом

для студентов - поясните на пальцах.

https://www.google.com/search?q=нелинейный+...ньших+квадратов

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

 

самое простое: взяли некий начальный набор параметров, частоты и амплитуды A*sin(w*t). посчитали Sum(f[ti]-A*sin(w*ti))^2, потом изменили немного амплитуду A+delta, и опять посчитали Sum(f[ti]-A*sin(w*ti))^2, если стало больше значит А изменили не в ту сторону, и надо сделать A-delta, то же самое с частотой w и повторять N раз пока оно в какой-нибудь минимум не придёт. то есть разница между значениями f[t] и функцией A*sin(wt) не станет минимальной.

 

каким именно методом действует по умолчанию Mathematica в функции FindFit честно не знаю, но для небольшого заданного диапазона частот проблем в нахождении минимума быть недолжно и как быстро оно в этот минимум придёт не принципиально.

Share this post


Link to post
Share on other sites
...даже при кратных частотах мы ровную палочку не увидим...

Речь шла о FFT, однако. Ещё как увидим.

 

 

 

...метод наименьших квадратов только для нелинейных функций

...

Это вполне потянет. Делали в своё время что-то похожее. Но с погрешностями измерения еще разбираться придётся. И чего-то сомнения возникают...

Share this post


Link to post
Share on other sites
если не нравится Фурье, просто наименьшими квадратами натяните синус на измеренные данные с шумом, что я выше и сделал с теми же цифрами 4мкс и 10МГц, или там что-то не правильно посчитано?

Да дело даже не в алгоритме вычисления.

 

Спектр, который мы видим после АЦП, равен произведению АЧХ всего тракта (включая АЦП) на спектр измеряемого сигнала: Sацп(f)=K(f)*Sвх(f).

 

Но спектр самого входного сигнала Sвх(f) из-за того, что импульс короткий, оказывается достаточно широким ~0,5 МГц и, как следствие, будет иметь достаточно пологий максимум.

 

После умножения спектра сигнала Sвх(f) на АЧХ всего входного тракта K(f), который может иметь ненулевую производную по частоте вблизи точки экстремума функции Sвх(f),

 

экстремум функции Sацп(f) сместится в направлении роста функции K(f) и смещение это может оказаться намного больше чем 10 Гц.

 

На практике, разлагая все функции в ряд вблизи экстремума функции Sвх, получаем:

 

K(f) ~= Kмакс+Kлин*f,

Sвх(f) ~= Sмакс-Sквад*f^2,

 

тогда:

 

K(f)*Sвх(f) = (Kмакс+Kлин*f)*(Sмакс-Sквад*f^2) = Kмакс*Sмакс + Kлин*f*Sмакс - Kмакс*Sквад*f^2 - Kлин*Sквад*f^3.

 

Находим производную:

 

d{K(f)*Sвх(f)}/df = Kлин*Sмакс - 2*Kмакс*Sквад*f - 3*Kлин*Sквад*f^2.

 

Считая, что смещение мало видим, что:

 

Kлин*Sмакс - 2*Kмакс*Sквад*f = 0,

 

Откуда, получаем ошибку вычисления максимума:

 

f = Kлин*Sмакс/2*Kмакс*Sквад.

 

Из этой формулы видно, что чем меньше коэффициент Sквад (т.е, чем более пологий спектр сигнала) и чем больше коэффициент Kлин (т.е., чем сильнее наклон АЧХ входного тракта),

 

тем больше систематическая ошибка определения максимума спектра сигнала. Поможет ли при таких требованиях к точности (5ppm) калибровка, не уверен..

 

Как-то так..

Share this post


Link to post
Share on other sites
Речь шла о FFT, однако. Ещё как увидим.

пусть есть синус длительностью 4мкс и частотой 1.8МГц

возьмите не FFT, а просто посчитайте интеграл Фурье для частот 1799997Гц, 1799998, 1799999, 1800000, и т.д.

так как полоса одного отсчёта Фурье будет 250кГц то можно конечно и не с таким мелким шагом, но всё равно, получится не тоненькая палка на 1.8МГц, а с толщиной 250кГц.

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this