%zhouzhichao
%25年6月3日
%测试不同位置弹力框的应力和信号3D时频图的反作用力clear
clc
close all%%
%生成信号
list = [ 2, 6;0.3, 4;0.17 , 2;0.125, 0;0.07, -2;0.05, -4;];%信号生成:[s1,h1] = mysigduo(0.25,'BPSK');
% [s2,h2] = mysigduo(index_rd(2),'BPSK');
% [s3,h3] = mysigduo(index_rd(3),'LFM');
% [s4,h4] = mysigduo(index_rd(4),'FRANK');% S_raw = 3.1*s1 + 2.5*s2 + s3 + 2.5*s4;
S_raw = 3.1*s1;snr_i=5;%信号加噪:
snr = list(snr_i, 2);S = list(snr_i, 1)*S_raw + rand(size(S_raw));%生成时频图:
[tfr,t,f] = tfrctfd2(S);%生成3D时频图:
% 获取幅度
tfr_asb = abs(tfr);% 计算最大值,用于caxis
level = max(max(tfr_asb(:, 200:800)));
new_t = t / 1000; % 将t轴的值缩小1000倍
tfr_asb = tfr_asb/max(tfr_asb(:));
% 创建三维图形
figure;% origin_y1 = 0.225;
% origin_y2 = 0.275;
%
% y1 = origin_y1 + 0;
% a = round(y1/0.5*1024);
% tfr_asb(a-1:a+1,:)=1;surf(new_t, f, tfr_asb, 'EdgeColor', 'none'); % 使用surf来创建3D图xlim([0,1])
ylim([0.2,0.3])
% 设置x轴的刻度% 设置轴标签
% xlabel('Normalized Time');
% ylabel('Normalized Frequency');
% zlabel('Normalized Amplitude');% 调整视角
view(-42.6, 84);
% 可选:暂停使图形实时更新
pause(0.05);set(gca, 'FontName', 'Times New Roman');ax = gca; % 获取当前坐标轴
ax.XColor = 'none'; % 隐藏 x 轴
ax.ZColor = 'none'; % 隐藏 z 轴
grid off;ax = gca; % 获取当前坐标轴
ax.YAxis.FontSize = 14; % 设置 y 轴刻度标签的字体大小为 14
% surf(X, Y, Z, 'FaceColor', 'interp', 'EdgeColor', 'none'); % 设置颜色插值和去除边框
% box off;%%
%Rubber band算法
F_list = [];
resistance_list = [];
delta_L_list = [];
k_list = [];
%差了0.05
%0.05-0.03=0.02
L0 = 0.01;origin_y1 = 0.225;
origin_y2 = 0.275;for k=0:0.001:0.02k_list = [k_list;k];y2 = origin_y2 - k;y1 = origin_y1 + k;delta_y = y2 - y1;delta_L = 2*(delta_y-L0);delta_L_list = [delta_L_list;delta_L/L0];F = 0.125*delta_L/L0;a = round(y1/0.5*1024);% tfr_asb(a-1:a+1,:)=1;height = max(tfr_asb(a,:));resistance = mean(tfr_asb(a,:));F_list = [F_list;F];resistance_list = [resistance_list;resistance];
end
