Signal separation of displacement multimodal superposition in structural dynamics

조회 수: 5 (최근 30일)
华
2025년 7월 23일
댓글: 2025년 8월 30일
clc; clear;
% 参数定义
L = 10;
v = 1;
A1 = 1;
A2 = 0.1;
x0 = L / 3;
% 时间轴
t = linspace(0, 10, 1000);
U_t = A1 * sin(pi * v * t / L) * sin(pi * x0 / L) + ...
A2 * sin(2 * pi * v * t / L) * sin(2 * pi * x0 / L);
figure;
plot(t, U_t, 'r-', 'LineWidth', 2);
xlabel('时间 t (s)');
ylabel('位移 U(t)');
grid on;
For such signals, is there any method to separate these two signals from the perspective of data?

답변 (1개)

Mathieu NOE
Mathieu NOE 2025년 7월 23일
hello
you could do that :
clc; clear;
L = 10;
v = 1;
A1 = 1;
A2 = 0.1;
x0 = L / 3;
t = linspace(0, 10, 1000);
u1 = A1 * sin(pi * v * t / L) * sin(pi * x0 / L);
u2 = A2 * sin(2 * pi * v * t / L) * sin(2 * pi * x0 / L);
U_t = u1 + u2;
% extraction based on cos / sin projection
% u2 = 1 period signal
omega = 2 * pi * v / L;
u2c = 2*sum(u2.*cos(omega * t ))/numel(t);
u2s = 2*sum(u2.*sin(omega * t ))/numel(t);
u2_estimated = u2c*cos(omega * t ) + u2s*sin(omega * t );
u1_estimated = U_t - u2_estimated;
% plot the estimated signals with a downsampling factor of r
r = 25;
ind = 1:r:numel(t);
figure;
plot(t, U_t, 'r-', 'LineWidth', 2);
hold on
plot(t, u1, 'b-', 'LineWidth', 1);
plot(t(ind), u1_estimated(ind), 'b*', 'LineWidth', 2);
plot(t, u2, 'c-', 'LineWidth', 1);
plot(t(ind), u2_estimated(ind), 'c*', 'LineWidth', 2);
xlabel('t (s)');
ylabel('U(t)');
grid on;
legend ('U_t','u1','u1 estimated','u2','u2 estimated');
  댓글 수: 9
Mathieu NOE
Mathieu NOE 2025년 8월 25일
hello again
can we assume that start and end points have always y = 0 value ? (fixed or pinned end points ?)
华
2025년 8월 30일
Yes, both ends are fixed. This refers to the mode superposition of a simply supported beam in dynamics. How to decouple it?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Descriptive Statistics에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by