Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 3

Диаграмма Боде корреляции двух сигналов

31.03.2015, 11:03. Показов 2988. Ответов 4
Метки нет (Все метки)

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

Имеется два биологических сигнала, представленные в виде двух векторов (A и B), и массив временных точек (time).
Ожидается, что разность фаз сигналов составляет 180 градусов.

Необходимо построить диаграмму Боде. То есть найти зависимость амплитуд и фаз в частотной области.
Для этого использую кросс-корреляцию.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
%%  Data upload
Data = xlsread('Data.xls');
time = Data(:,1);
A = Data(:,2);
B = Data(:,3);
 
%% Cross-correlation
e = fft(A);
f = fft(B);
 
g = e.*conj(f);
 
h = ifft(g); % cross correlation coefficiens
 
%% Plots
figure('Name','Corr Coef')
plot(time, h)
grid on
xlabel('Time')
ylabel('Amp')
 
% Amp = 10*log10(h); % Перевод в Db
 
F = (1:length(e))*(1/(time(2)-time(1)))/length(e); %Частотная сетка
 
figure('Name','Amp')
plot(F,abs(g))
% semilogx(F,abs(h))
% semilogx(F,Amp)
%xlim([0 10])      
grid on
xlabel('Frequency [Hertz]')
ylabel('Amp [???]')
 
phase = angle(g)*180/pi;
 
figure('Name','Phase')
plot(F,phase)
% xlim([0 10])
grid on
xlabel('Frequency [Hertz]')
ylabel('Phase [Degrees]')
Вопрос в том, как амплитуду в графике ачх (второй по счёту) перевести в реальные значения (значения отношений одного сигнала к другому)? Это отношение должно колебаться в районе единицы.
А также, правильно ли я считаю фазовый сдвиг в частотном диапазоне? Меня интересует промежуток [0 10]Гц. Но там фазовым сдвигом в 180 градусов и не пахнет.
Вложения
Тип файла: xls Data.xls (59.0 Кб, 4 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2015, 11:03
Ответы с готовыми решениями:

Корреляции сигналов
Здравствуйте. Помогите, пожалуйста! У меня есть 20 сигналов. Мне нужно найти корреляции между кусками этих сигналов (коэффициенты,...

Сравнение спектра двух сигналов
Здравствуйте! Мне дали задание сравнить спектры двух сигналов. Фурье преобразование сделал, спектры в одном окне вывел. Но преподаватель...

Создание двух сигналов в MATLABe
Доброго времени суток. Возникла проблема с одной задачкой. Необходимо создать 2 сигнала, начало и конец которых должны совпадать,...

4
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
01.04.2015, 09:20
Цитата Сообщение от lanabanani Посмотреть сообщение
Для этого использую кросс-корреляцию.
Велосипед уже придуман. Он называется xcorr.
Я, так понимаю, Вам нужно найти что то на подобии передаточной характеристики биообъекта? Т.е. отношение амплитуд и разность фаз?
0
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 3
01.04.2015, 09:42  [ТС]
Хорошо, пусть корреляция находится с помощью xcorr:
Matlab M
1
h = xcorr(B,A,'coeff')
Тем не менее, вопрос не снимается.
Как коэффициенты корреляции перевести в значения амплитуд?

Два сигнала выглядят, как на картинке. Мне нужно найти отношения-пиковых-амплитуд в частотной области.
А также Фазы в частотной области.
Миниатюры
Диаграмма Боде корреляции двух сигналов  
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
02.04.2015, 03:36
lanabanani, уверенны, что именно пиковых амплитуд? Может просто поточечно сравнить амплитудный и фазовый спектры?
0
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 3
02.04.2015, 12:20  [ТС]
R2D2,
Цитата Сообщение от R2D2 Посмотреть сообщение
Может просто поточечно сравнить амплитудный и фазовый спектры?
Да, наверное, так.

Попробовала другой способ, через создание динамической системы командой iddata, и затем, используя два разных спектральных анализа(tfest и etfe), строю bode график.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Data = xlsread('Data.xls');
time = Data(:,1);
A = Data(:,2);
B = Data(:,3);
tr = time(2)-time(1);
 
opts = bodeoptions('cstprefs');
opts.FreqScale = 'linear';
opts.MagScale = 'linear';
opts.PhaseUnits = 'deg';
opts.MagUnits = 'abs';
opts.Grid = 'on';
opts.Xlim = [0 10];
opts.Title.FontSize = 14;
opts.XLabel.FontSize = 14;
opts.YLabel.FontSize = 14;
 
DAT = iddata(A,B,tr);   %time domain
sys = tfest(DAT, 2);
figure('Name','Bode1 (tfest)')
bodeplot(sys, opts);
 
FDAT = fft(DAT);    %frequency domain
sys1 = etfe(FDAT, 128);
figure('Name','Bode1 (etfe)')
bodeplot(sys1, opts);
Но получаются довольно разные результаты.
Миниатюры
Диаграмма Боде корреляции двух сигналов   Диаграмма Боде корреляции двух сигналов  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2015, 12:20
Помогаю со студенческими работами здесь

Нахождение разницы двух сигналов
Здравствуйте. Имеется 2 сигнала: один до обработки, другой после. Нужно посчитать разницу этих 2-сигналов (определить погрешность...

ВКФ от определенного количества отсчетов двух сигналов
Имеется сигнал. До и после кодека. Необходимо получить ВКФ от различного количества отсчетов оного сигнала, не подскажите в каком...

Коэффициент корреляции сигналов
Здравствуйте, знатоки! Помогите разобраться с задачкой: нужно найти коэффициент корреляции двух последовательностей. Корреляция Пирсона...

Коэффициент корреляции для двух нормально заданных случайно величин
Здравствуйте. Есть две нормальные величины, X=N(m1, 1), Y=N(m2, 1). Подскажите пожалуйста, как можно выразить их ковариацию(в виде...

Вычисление коэффициента корреляции между соответствующими данными двух одномерных массивов
Нужно составить программу 1.Вычисление коэффициента корреляции между соответствующими данными двух одномерных массивов размерности N.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru