echart两个x轴线叠加_简谐波的叠加:相速度与群速度

f1f9c770c394bc0ef935c8f0dbe50eed.png

研究地震的同学们一定少不了要和波动现象打交道,今天我们来谈一谈简谐波的叠加。波传播的独立性原理指出几列简谐波在空间某点相遇后,每一列波都能独立地保持自己原有的特性(频率,波长,振幅,振动方向)传播,就像在各自的路程中,并没有遇到其他波一样。波传播的叠加原理指出在波相遇区域内,任一质点的振动,为各简谐波单独存在时所引起的振动的合振动。而在真实世界中,我们的地震仪接收到的振动是一个合振动,因此,信号就包含很多频率成分,这时候,我们就要分析信号的成分,或者说分解这个信号,即谐波分解,以便后续测量波的相速度与群速度。谐波分解的物理基础是:任一物理上的波动都可以等效为一系列稳态的单一频率的简谐波的共同作用。谐波分解在数学上的理论基础是:任一绝对可积函数都可表示成三角函数(正弦或余弦函数)或者它们积分的线性组合,也就是我们常说的傅立叶变换。

弦上的波动

首先考虑两端固定的弦上的波动,其遵守一维波动方程:

54a6d7f52b75f66be05808913f5ea3d5.png

其中,y是质点振动的位移,v是波动传播的速度,方程(1)的通解,可以用下式来表达:

0c05a1edac432ff4859070bb8a45f5ee.png

其中,

equation?tex=C_%7Bn%7D 是常数,
equation?tex=k_%7Bn%7D 是圆波数,
equation?tex=%5Comega_%7Bn%7D 是圆频率,且二者满足:

13007f8cf4f10975383bb49dab70332a.png

方程(1)的通解可以被看作是一系列波长(频率)不同,速度为v的简谐波的叠加。我们首先考虑两个简谐波的叠加,为便于分析,只考虑一维波动方程通解的第一部分的实部。事实上,真实世界中的信号都是实值的,也只有实部才有物理意义。假设现有两个余弦波,

equation?tex=y_%7B1%7D
equation?tex=y_%7B2%7D ,其表达式为:

6e200ae46c47a55c09b52f21b3a349c3.png

将二者叠加,且由和差化积公式可以得到其合振动y,表达式如下:

6ad406751db6dfbb3e102d1b793d0c27.png

如果

equation?tex=k_%7B1%7D
equation?tex=k_%7B2%7D =
equation?tex=k
equation?tex=%5Comega_%7B1%7D
equation?tex=%5Comega_%7B2%7D =
equation?tex=%5Comega ,则有:

b6d3d0fba09b50d5dfcbf32588047bf2.png

由式(6)可知,叠加波的相位和振幅受到两个速度的控制,分别称为波的相速度和群速度,表示为:

90c73efa80fb68af529cb9f4172de263.png

存在以下三种可能情况:

a)若相速度与频率无关,则群速度与相速度相同,称为无频散;

b) 若相速度随着频率的升高而减小,则群速度小于相速度,称为正常频散;

c) 若相速度随着频率的升高而增大,则群速度大于相速度,称为反常频散。

我们在推导两端固定的弦的波动方程时,假设弦恢复形状的力全部来源于弦(类似于细绳)的张力。实际情况中,还有一部分恢复形状的力来自弦(比如钢丝)的刚性,此时,式(1)、(3)不再成立,需要在式(3)中加入刚性项,即:

019ab12cb44bd9ab7a7ff609765e8218.png

其中,T是弦的张力,μ是弦的线密度,α是刚性系数。由式(7)、(8)可知,加入刚性项后,群速度与相速度不再相等,即弦的振动发生频散。废话不多说,编程(具体细节请看下方代码)计算相速度与群速度。

8d23acbaa4f7cb5576eaabff40298ba5.png

ab0c33be5c9b65c96678110e0d328230.png
%% 两端固定的弦的速度频散关系
clear all;
clc;

T = 250;          % 弦上的张力
mu = 0.01;        % 线密度
v = sqrt(T/mu);   % 只考虑弦的弹性时波的速度
L = 1;            % 弦的长度
alpha = 0.01;     % 刚性系数
% alpha = -0.01;  % 刚性系数

maxn = 12;        % 最大只考虑12次波

vp = zeros(maxn,1); % 相速度
vg = zeros(maxn,1); % 群速度
ko = zeros(maxn,1); % 圆波数,最大只考虑12次波
w = zeros(maxn,1);  % 圆频率

for  i = 1:maxn
     lambda = 2*L/i; % 两端固定的弦的各次波波长
     ko(i) = 2*pi/lambda;
     w(i) = sqrt(v*v*ko(i)*ko(i)+alpha*ko(i)*ko(i)*ko(i)*ko(i));
     vp(i) = sqrt(v*v+alpha*ko(i)*ko(i));
     vg(i) = vp(i)+alpha*ko(i)*ko(i)/vp(i);
end

freq = w/2*pi; % 频率

figure(1)
h = plot(freq,vp,'b-*',freq,vg,'r-*','linewidth',1);
legend(h,'相速度','群速度');
xlabel('频率/(Hz)');
ylabel('速度/(m/s)');
title('刚性系数{italpha} = 0.01');
% title('刚性系数{italpha} = -0.01');
grid on;

由图1、2可知,刚性系数为负数时,相速度随着频率的增大而减小,群速度小于相速度,此时为正常频散;刚性系数为正数时,相速度随着频率的增大而增大,群速度大于相速度,此时为反常频散。

波的叠加

至此,我们已经从两列简谐波的叠加中引入了相速度与群速度,并给出了简谐波发生频散的条件。最后,让我们考虑六列不同波长(不考虑刚性时速度相同)的波的叠加,并录制其波形行进的视频,具体细节请参见文末代码。视频中红色波形是六个蓝色波形的叠加波形。刚性系数α为0,对应于无频散余弦波的叠加。刚性系数α为负数,对应于正常频散余弦波的叠加。

无频散余弦波的叠加

α为0时,无频散发生,六列蓝色的余弦波的群速度、相速度均相同,体现在视频中就是六列蓝色波的行进速度相同。红色波形在行进过程中,波形(包络)不会发生改变,这是因为六列余弦波时刻同步叠加(无频散),因此,红色波形的行进速度也就与蓝色波形的行进速度相同。

0bba6d2c3c665d64715263b5536dede0.png
无频散余弦波的叠加https://www.zhihu.com/video/1247868603506368512

正常频散余弦波的叠加

α为负数时,单个余弦波的群速度与相速度不同,会发生频散,波形间存在相速度、群速度差异,体现在视频中就是波形间行进速度不同,不能同步叠加。因此,叠加波的波形(包络)会在行进过程中发生明显的改变,这就是频散对简谐波叠加的影响。

59f514f7f105e12230952c9a6536d8d8.png
正常频散余弦波的叠加https://www.zhihu.com/video/1247869594532491264
%% 波的叠加,理解相速度与群速度
clear all;
clc;
waven = 6;       % 简谐波的个数
lambda_min = 10; % 简谐波的最短波长
dlambda = 10;
lambda = lambda_min:dlambda:lambda_min+(waven-1)*dlambda;

v = 300;           % 只考虑弹性时的速度
ko = 2*pi./lambda; % 圆波数

% alpha = 0;         % 刚性系数,不考虑频散
% alpha = -2*10^5; % 刚性系数
alpha = 2*10^5;  % 刚性系数

w = sqrt(v*v*ko.*ko+alpha*ko.*ko.*ko.*ko); % 圆频率

vp = sqrt(v*v+alpha*ko.*ko);  % 简谐波的相速度

dx = lambda_min/10;  % 空间域采样间隔,设为最小波长的1/10
X = 3*lambda(end);   
x = 0:dx:X;

l = length(x);
y = zeros(waven,l);   % 简谐波在某一时刻的振幅
yy =zeros(waven,l);   % 为了画图显示,修正简谐波的振幅信息
dt = 0.5*dx/max(vp);  % 时间域采样间隔,要小于波在一个空间域采样间隔内传播时间
T = 3;                % 总传播时间

videof = VideoWriter('record.avi'); % 写入视频文件
open(videof); % 打开视频文件,等待写入

t = 0;
h = figure(1);
for i = 1:waven
        y(i,:) = cos(ko(i)*x - w(i)*t);
        yy(i,:) = y(i,:)+(i-1)*3;
end
y_sup = sum(y,1);   % 叠加波在某一时刻的振幅
yy_sup = y_sup-2*waven; % 为了画图显示,修正叠加波的振幅信息

plot(x,yy,'b-');
hold on;
plot(x,y_sup-2*waven,'r-');
xlim([0 X]);
ylim([-20 20]);
set(gca,'nextplot','replacechildren'); 
frame = getframe(gcf);    % 获得帧
writeVideo(videof,frame); % 将视频帧写入

for t=dt:dt:T
    for i = 1:waven
        y(i,:) = cos(ko(i)*x - w(i)*t);
        yy(i,:) = y(i,:)+(i-1)*3;
    end
    
    y_sup = sum(y,1);
    yy_sup = y_sup-2*waven;
    hold off;
    plot(x,yy,'b-');
    hold on;
    plot(x,y_sup-2*waven,'r-');
    xlim([0 X]);
    ylim([-20 20]);
    frame = getframe(gcf);    % 获得帧
    writeVideo(videof,frame); % 将视频帧写入
end
close(videof); % 关闭写入

PS: 感兴趣的知友,可以从以下百度网盘分享链接下载全部代码哦(有效期7天)~~

百度企业网盘-企业云存储解决方案-协同办公​eyun.baidu.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值