С Новым годом! Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 228
1

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

10.04.2019, 10:12. Показов 5308. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день всем!

Есть два сигнала. Давайте выведем их на графики и посмотрим на них. Есть файл данных results_V.txt results_V.txt.zip. Подгружаем из него данные для V_1 и V_2 и выводим их на один график:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
filename3 = 'results_V.txt';
path3 = '/Users/sergey/Documents/Model';
Data = importdata( [ path3 '/' filename3 ] );
time = Data(:, 1);
V = Data(:, 2:end);
 
results_V_1_V_2 = figure('units', 'normalized', 'outerposition', [0 0 1 1], 'visible', 'on');
plot(time, V(:, 1), 'LineWidth', 1);
hold on;
plot(time, V(:, 2), 'LineWidth', 1);
set(gca, 'FontSize', 14);
grid on;
xlim([0 3]);
ylim([-80 25]);
ax = gca;
ax.XTick = [0:0.5:3];
xlabel('Time, sec', 'FontSize', 14);
ylabel('V, mV', 'FontSize', 14);
title('V_1(t) and V_2(t)', 'FontSize', 15);
 
saveas(gcf, 'results_V_1_V_2.png');
close all;
График получается вот таким:
Вычислить изменение фазы во времени для двух сигналов
. Здесь видно что сигналы сначала синфазны, и затем работают в противофазе. Необходимо построить график зависимости изменения фазы сигналов во времени.

Вот эту теорию я прочитал: (URL сайта здесь не вставляется, обрезается, поэтому я вставлю картинкой:
Вычислить изменение фазы во времени для двух сигналов
) Но, так и не пришло понимание как считать мгновенную фазу в зависимости от времени.

Прошу помощи.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2019, 10:12
Ответы с готовыми решениями:

Сравнение сигналов разной амплитуды и фазы
Приветствую. Есть постоянно приходящий массив новых данных. который нужно сравнить (определить...

Объясните изменение фазы
Вот, например, Угловая модуляция, там у нас фаза на 180 меняется. Я сам механизм не пойму, если мне...

Изменение фазы сигнала с использоваением БПФ
Доброго времени суток. Укажите, пожалуста, на ошибку... Нужно повернуть фазу аудиофайла с помощью...

Построить временные диаграммы выходных сигналов триггеров для заданных входных сигналов
1 задание. Построить временную диаграмму выходных сигналов T-триггера при заданных входных...

9
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
10.04.2019, 14:05 2
Можно поступить так:
1) Разделить оба сигнала на N окон, шириной T = длительности периода колебаний. (С помощью функции reshape, например, или любым другим способом)
2) Для каждой пары соответствующих окон вычислить корреляционную функцию (с помощью xcorr).
3) xcorr возвращает массив значений корреляционной функции длиной 2*T-1. Центральный элемент массива (элемент с индексом T) соответствует нулевому сдвигу сигналов (относительно друг-друга). Элемент с индексом T-1 соответствует сдвигу на один отсчет влево, Элемент с индексом T+1 - на один отсчет вправо, и т.д. Ваша задача - найти индекс I максимального элемента в каждом массиве возвращаемом xcorr. Тогда сдвиг сигналов между собой будет равен I-T отсчетов. А уж фазовый угол посчитаете зная, что T = 2*Pi.
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
10.04.2019, 14:41 3
SpaceQuester, посмотрите третий выходной аргумент этой функции.
0
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 228
10.04.2019, 18:27  [ТС] 4
ida2, это так себе решение. Периоды могут меняться у сигналов (но не значительно), они подстраиваются друг под друга. Более интересный пример, в догонку. Нужно найти и построить на графике разность фаз вот таких сигналов:
Вычислить изменение фазы во времени для двух сигналов

R2D2, посмотрел. Здесь D - это одно число, усреднённая задержка двух сигналов, по всей временной реализации. А нужна мгновенная фаза.

Существует ли вообще универсальный алгоритм отыскания разности фаз между двумя (не синусоидальными) сигналами? Очень нужно.
0
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 228
10.04.2019, 18:59  [ТС] 5
Нашел первоисточник на инглише: https://stackoverflow.com/ques... en-signals, но затрудняюсь как применить это.
Даже по ключевым словам "matlab instantaneous phase between two signals" ничего толкового не находится...
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
10.04.2019, 19:20 6
Цитата Сообщение от SpaceQuester Посмотреть сообщение
Периоды могут меняться у сигналов
В этом месте нужно сказать, погодите. Понятие сдвиг фаз может быть применено только к периодическим сигналам одинаковой частоты. И не иначе.

Может быть, вам тогда стоит искать расстояния между пиками с одинаковым индексами (т.е. между первым и первым, между вторым и вторым, и т.д.). Функция findpeaks для этого.
0
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 228
10.04.2019, 21:11  [ТС] 7
ida2, не совсем корректно. Взаимодействие этих сигналов проявляется в сдвигах фаз. Именно это и нужно мне увидеть.

Если вы говорите про пики, то я их и так ищу, нахожу разницу между пиками, это будут у меня периоды = T_i (они меняются во времени, прикиньте), далее я считаю omega_i = 1 / T_i, смотрю плотность распределения этих частот, нормирую на единицу, и вижу спектр. Конечно, несущая частота здесь будет присутствовать. Вот частоты для этих двух сигналов:
Вычислить изменение фазы во времени для двух сигналов
. Они переодически смещают свои фазы друг относительно друга и подстраиваются под одну частоту. Происходит это "почти периодически", а может и через какой то долгий промежуток переходного процесса и перестать происходить. Только эта информация мне не поможет увидеть разницу фаз между сигналами
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
10.04.2019, 21:46 8
Цитата Сообщение от SpaceQuester Посмотреть сообщение
не совсем корректно. Взаимодействие этих сигналов проявляется в сдвигах фаз.
Я имел в виду, что сдвиг двух сигналов, в случае когда периоды их колебаний не равны, не совсем корректно называть фазовым сдвигом. Но это так, лирика ...

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

А в частотной области можно попробовать получить фазовые спектры для каждого периода каждого сигнала и сравнивать фазовый сдвиг первых (основных) гармоник для двух соответствующих периодов. Но, т.к. период колебаний ваших сигналов, как я понял, изменяются во времени, то боюсь, что ничего хорошего не выйдет.
0
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 228
10.04.2019, 22:20  [ТС] 9
Цитата Сообщение от ida2 Посмотреть сообщение
Когда я говорил про поиск пиков, я имел в виду пики сигнала во временной области, не в частотной. Типа, найти координаты каждого острого пика в каждом сигнале, а затем сравнивать координаты соответствующих пиков из разных сигналов.
Не вопрос. Вот растр пиков-спайков:
Вычислить изменение фазы во времени для двух сигналов

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


Что с чем сравнивать что бы найти зависимость разности фаз во времени?
0
164 / 134 / 61
Регистрация: 16.05.2015
Сообщений: 372
10.04.2019, 23:13 10
Цитата Сообщение от SpaceQuester Посмотреть сообщение
Что с чем сравнивать
Если у вас есть массивы координат (метки времени или номера отсчетов) пиков для каждого сигнала (скажем X3 и X4), может стоит попытаться вычислять сдвиг как простую разность X3[1]-X4[1], X3[2]-X4[2] и т.д.?
0
10.04.2019, 23:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2019, 23:13
Помогаю со студенческими работами здесь

Построить временные диаграммы выходных сигналов триггеров для заданных входных сигналов
1 задание. Построить временную диаграмму выходных сигналов T-триггера при заданных входных...

Построить временные диаграммы выходных сигналов триггеров для заданных входных сигналов
1 задание. Построить временную диаграмму выходных сигналов T-триггера при заданных входных...

Дискретизация сигналов во времени
2. Построить периодическую функцию δT (t) =∑ δ(t – n*T). Суммирование ведётся по n в диапазоне...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru