Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Создание спектроанализотора

Вы не вошли.

 Поиск | Регистрация | Вход 

Денис
20.08.2015 09:28:02
#1

Гость

Создание спектроанализотора

Здравствуйте. Пытаюсь создать программу, которая будет использовать данные с модуля Е14-440 для построения спектра. Хотелось бы посоветоваться с обитателями форума, кто какие библиотеки применял для построения спектра. Пробовал использовать исходный код с википедии, но на высоких частотах получается неверное определение частоты в спектре. Библиотеку BASS.DLL знакомые не рекомендуют использовать. Предлагаю обсудить тему.

20.08.2015 10:34:18
#2

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Создание спектроанализотора

Денис пишет:

...получается неверное определение частоты в спектре.

Из теории: расстояние на частотной оси между соседними спектральными линиями ∆F, в герцах: ∆F = 1/(NT), где N - размер массива, T - период дискретизации.
В случае Е14-440 в многоканальном режиме под периодом дискретизации мы понимаем период опроса данного канала (зависит от настройки параметров кадра сбора данных и установленной частоты АЦП). Таким образом, теоретически неверное определение частоты в спектре может быть вызвано  двумя причинами: неверно заданными  N или T, если частота сигнала меньше, чем половины частоты дискретизации (1/T). Если же частота сигнала больше  половины частоты дискретизации, то речь идёт о стробоскопическом режиме АЦП, при котором спектральные линии накладываются на область частот 0...0,5/T, в этом случае для определения частоты нужно ещё учесть в какой области частот находится сигнал:  0,5/T...1/T, 1/T...1,5/T, и т.д.

Денис
20.08.2015 11:24:58
#3

Гость

Re: Создание спектроанализотора

Гарманов Александр пишет:
Денис пишет:

...получается неверное определение частоты в спектре.

Из теории: расстояние на частотной оси между соседними спектральными линиями ∆F, в герцах: ∆F = 1/(NT), где N - размер массива, T - период дискретизации.
В случае Е14-440 в многоканальном режиме под периодом дискретизации мы понимаем период опроса данного канала (зависит от настройки параметров кадра сбора данных и установленной частоты АЦП). Таким образом, теоретически неверное определение частоты в спектре может быть вызвано  двумя причинами: неверно заданными  N или T, если частота сигнала меньше, чем половины частоты дискретизации (1/T). Если же частота сигнала больше  половины частоты дискретизации, то речь идёт о стробоскопическом режиме АЦП, при котором спектральные линии накладываются на область частот 0...0,5/T, в этом случае для определения частоты нужно ещё учесть в какой области частот находится сигнал:  0,5/T...1/T, 1/T...1,5/T, и т.д.

следовательно, для решения возникшей проблемы необходимо увеличить частоту съёма данных АЦП до величины, при которой в необходимом диапазоне частот подобного явления не наблюдалось.

20.08.2015 11:37:38
#4

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Создание спектроанализотора

Денис пишет:

...следовательно, для решения возникшей проблемы...

В отличие от чата, на форуме техподдержки желательно проблемы описывать количественно. Что обсуждать-то, если исходные данные Вы не приводите?

Денис
20.08.2015 12:17:16
#5

Гость

Re: Создание спектроанализотора

количество отсчётов в запросе к АЦП 65536
кол-во каналов для съёма данных с АЦП 4
частота дискретизации АЦП 65,536 кГц
требуемая ширина спектра 4кГц
расстояние между спектральными линиями 0,5Гц

при этих параметрах что получаем на выходе:
частота задаваемая генератором -->пик, определяемый в спектре программой
500Гц --> 500Гц
1000Гц --> 1001Гц
2000Гц --> 2002 Гц
3000Гц--> 3147 Гц
3500 Гц-->3672 Гц

Денис
20.08.2015 12:29:22
#6

Гость

Re: Создание спектроанализотора

Увеличение частоты дискретизации АЦП положительного эффекта не дало (увеличивал до 131,072 и 262,144 кГц)

20.08.2015 12:43:18
#7

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Создание спектроанализотора

В Вас относительная погрешность измерения частоты резко возрастает при частоте сигнала выше 2000 кГц. Если полученный спектр сигнала (по снятым данным) - чистый, то это либо ошибка генератора, либо это  погрешность метода измерения частоты (в этой программе).  Если сам спектр сигнала грязный, то это совсем другой случай.

Денис
20.08.2015 13:14:25
#8

Гость

Re: Создание спектроанализотора

Поменял программный генератор на аппаратный. Получились следующие результаты:
250 Гц-->249
500 Гц-->499
1000Гц-->998
2000Гц-->1998
3000Гц-->2997
3500Гц-->3497
4000Гц-->3996
Результаты значительно лучше. Но необходима точность в 1 Гц.
Увеличение частоты дискретизации увеличивает ошибку. Подскажите как добиться необходимой точности.

20.08.2015 14:00:38
#9

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Создание спектроанализотора

Денис пишет:

Подскажите как добиться необходимой точности.

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

20.08.2015 14:11:58
#10

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Создание спектроанализотора

Денис пишет:

необходима точность в 1 Гц.

1 Гц при какой максимальной частоте сигнала?

Денис
20.08.2015 14:32:39
#11

Гость

Re: Создание спектроанализотора

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

20.08.2015 14:39:40
#12

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Создание спектроанализотора

Денис пишет:

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

Я могу оценить предельно достижимую точность измерения, если ответите на мой вопрос, заданный выше: 1 Гц при какой максимальной частоте сигнала?

Денис
20.08.2015 14:47:15
#13

Гость

Re: Создание спектроанализотора

частота сигнала до 4000Гц. При этом точность определяемой частоты менее 1Гц в диапазоне до 400Гц. Текущая точность на частотах выше 400 Гц удовлетворяет требованиям.

20.08.2015 15:27:15
#14

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Создание спектроанализотора

Денис пишет:

частота сигнала до 4000Гц. При этом точность определяемой частоты менее 1Гц в диапазоне до 400Гц. Текущая точность на частотах выше 400 Гц удовлетворяет требованиям.

По поводу точности частоты преобразования E14 читайте статью:
http://www.lcard.ru/support/faq/fs_measur_ltr_e14
Итак, +-50 ppm = +- 50*10^-6  - эту относительную погрешность измерения частоты можно считать предельно достижимой (без учёта погрешности метода измерения), если применять  E14 для измерения частоты. Для частоты сигнала 400 Гц - это +-0,02 Гц. Для частоты сигнала 4000 Гц - это +-0,2 Гц.
По поводу метода измерения. Если применён метод определения частоты по спектру, то точность зависит от:
- Синусоидальности входного сигнала (от чистоты спектра), от SFDR. Например, полученный SFDR > 65 дБ можно считать "чистым спектром" для такой задачи. 
- Количества точек в массиве и от частоты дискретизации (как я объяснял выше).
- Типа применённого окна при вычислении спектра (от этого зависит ширина спектрального пика).  В наихудшем случае (прямоугольное окно) точность метода можно считать +-5/(NT).
В частности, если погрешность измерения спектральным методом не уменьшается с ростом количества точек, то либо это спектр грязный, либо эта погрешность вообще никак не связана с методом измерения.

20.08.2015 15:46:50
#15

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,378

Re: Создание спектроанализотора

Вам также следует учитывать, что реально нельзя выставить любую частоту сбора для модуля Е14-440, частота сбора получается как деление 24МГц на целое число. Соответственно, библиотека подбирает наиболее близкое значение (и функция должна вернуть реально установленную частоту дискретизации) и ровно 65,536 кГц у Вас не получится. Именно из реально установленной и нужно исходить при расчете расстояния между отсчетами, иначе будет доп. ошибка от несоответствия этих частот.

Денис
20.08.2015 18:26:57
#16

Гость

Re: Создание спектроанализотора

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

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4

Многоканальный телефон:+7 (495) 785-95-25

Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск