Равномерность при интерполяции

Захват, обработка и генерирование сигнала
Ответить
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Равномерность при интерполяции

Сообщение Kvanto »

Есть двумерный массив Y и X значений. Для примера я сделал его небольшим. Разница между соседними значениями X не одинакова. Для последующей спектрального анализа сигнала, мне необходимо, чтобы значения по Х изменялись равномерно(разница была одинаковая). Для это я произвожу интерполяцию (я использую сплайновую из готового exampla) и выбираю из образовавшегося массива Х нужные мне равномерные значения. А затем ставлю им в соответствие значения Y. Думаю такой метод для многих не открытие. Вопрос: как мне из образовавшегося массива Х вытащить индексы элементов, значения которых наиболее приближенные к ряду целых занчений 0, 250, 500, 750.
Вложения
Interpolation.vi
(31.35 КБ) 139 скачиваний
Spline_interp.JPG
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Равномерность при интерполяции

Сообщение IvanLis »

Kvanto писал(а):Вопрос: как мне из образовавшегося массива Х вытащить индексы элементов, значения которых наиболее приближенные к ряду целых занчений 0, 250, 500, 750.
Threshold 1D Array, только не знаю с такой функцией получится :dntknw: там вроде монотонность требуется

посмотрите Нужна помощь в решении уравнения
IORIK
adviser
adviser
Сообщения: 240
Зарегистрирован: 14 дек 2010, 20:46
Версия LabVIEW: 7.0; 8.2

Re: Равномерность при интерполяции

Сообщение IORIK »

fig1.jpg
fig1.jpg (6.11 КБ) 2442 просмотра
Я бы вам не советовал вообще использовать сплайн, т.к. сплайном вы искажаете ваши же исходные данные. Кроме того в спектре вы можете получить ложные гармоники из-за интерполяции данных, а потом анализировать спектр и удивляться.

Задача получить спектр при неравномерном шаге по времени осциллограммы не нова. Ведь, что такое преобразование Фурье - это посчитать определенный интеграл, а для дискретных сигналов, которые мы и изучаем сидя за компом, - это сумма. при равномерном шаге dt выносится за знак суммы, а для неравномерного - dt=t(i+1)-t(i)

И если вы повнимательней посмотрите на палитру "Spectral & Analisis" вы найдете то, что вам нужно.


Функция Unevenly Sampled Signal Spectrum (Not in Base Package)
Calculates the power spectrum of a signal that is unevenly spaced in time
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Равномерность при интерполяции

Сообщение Kvanto »

Решил задачу с неравномерным спектральным анализом. Может быть кому будет интересно. Подправьте если что не так.
Вложения
Spectr.vi
(88.68 КБ) 122 скачивания
RRmy.txt
(2.28 КБ) 126 скачиваний
Спектр неравномерный.JPG
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Равномерность при интерполяции

Сообщение Kvanto »

задача немножко изменилась, перефразирую ее. Имеется два массива - времени и амплитуды. Но отсчеты приходят через неодинаковые интервалы времени. Хотелось бы проинтерполировать массив амплитуд, чтобы значения по времени следовали через 1 с (1000мс). В прилагаемых массивах время дано в милисекундах.
Вложения
Ampl_and_time.vi
(6.93 КБ) 101 скачивание
Kvanto

Activity Bronze Автор
VIP
VIP
Сообщения: 414
Зарегистрирован: 26 янв 2011, 17:56
Награды: 3
Версия LabVIEW: 10.0

Re: Равномерность при интерполяции

Сообщение Kvanto »

всё. сообразил благодаря примерам добрых людей. Вот что получилось
Вложения
Create ampl_and_time.vi
(18.64 КБ) 117 скачиваний
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Обработка сигнала»