[an error occurred while processing this directive]
(R) Метод оценки частоты синусоидального сигнала. Часть 1.
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено GM 01 марта 2005 г. 12:49
В ответ на: Метод оценки частоты синусоидального сигнала. Часть 1 отправлено modemdes 28 февраля 2005 г. 20:43

Ну вот, повторяю (по просьбе трудящихся(:-) программеров) исходный пост. Опечатки поправлены, спасибо ВН.

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

Метод сам по себе достаточно простой и заключается в вычислении и последующем усреднении мгновенной частоты квадратурного сигнала.

По определению мгновенная частота сигнала есть производная по времени от полной фазы сигнала, т.е.

Wm=dФ/dt (1)

Для квадратурного сигнала (q(t),i(t)) фазу можно представить в виде

Ф(t)=arctg(q(t)/i(t)) (2)

Перейдя к конечным разностям, получим

Wm~=(Ф(t(n+1))-Ф(t(n)))/(t(n+1)-t(n))=(Ф(n+1)-Ф(n))/ts= (3)
=(arctg(q(n+1)/i(n+1))-arctg(q(n)/i(n)))/ts,

здесь ts=1/fs, а fs - частота выборок.

Таким образом неизвестная частота синусоидального сигнала может быть выражена как

fx=(arctg(q(n+1)/i(n+1))-arctg(q(n)/i(n)))*fs/(2*pi) (4)

Все формулы хорошо известны и их можно найти в разных книжках.

Формула (4) хорошо работает в идеальных условиях без шумов, хотя в нашей реальной схеме мне удалось измерить частоту 1000кГц с точностью примерно 1 кГц (70 выборок ~17 мкс, fs=4,16666(6)МГц, примерно 4 выборки на период).

К сожалению, приходится вычислять арктангенс. Я попытался избавиться от вычисления арктангенса, аналитически взяв производную от формулы (2) и затем перейдя к конечным разностям

dФ(t)/dt=1/(1+(q/i)^2)*(i*dq/dt-q*di/dt)/i^2= (5)
=(i*dq/dt-q*di/dt)/(q^2+i^2)

Отсюда искомая частота

fx=(i(n+1)*(q(n+1)-q(n))-q(n)*(i(n+1)-i(n)))/
(q^2+i^2)*ts/(2*pi) (6)

Полученная формула (6) не работает при заданном числе выборок на период, вернее она работает, но с неприемлемой точностью, и это мягко говоря...

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

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

Спасибо всем, принявшим участие в обсуждении.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru