Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 信号关系和转换:将一个信号转换为另一个?_Algorithm_Matlab_Signal Processing_Fft_Ifft - Fatal编程技术网

Algorithm 信号关系和转换:将一个信号转换为另一个?

Algorithm 信号关系和转换:将一个信号转换为另一个?,algorithm,matlab,signal-processing,fft,ifft,Algorithm,Matlab,Signal Processing,Fft,Ifft,我试图将近岸潮汐信号(点a)与沿着长模型边界的3个点(点B C D)联系起来。我想在bcd之间建立一个关系,通过它我们可以将a预测转换为bc和D。现在我正在做一个单相移,一个零上能级的振幅比,一个零下能级的振幅比,和一个平均能级移 这在高潮落潮和高潮洪水时造成潮汐信号的扭曲,导致模型过度预测落潮流。我想知道是否有人意识到这种转变有一种更复杂的关系 我想捕捉的一点是高水位和低水位之间的相移差异(例如,对于不同的点,正周期与负周期的比值可能不同) 当前进程的示例算法 A = vector (size

我试图将近岸潮汐信号(点a)与沿着长模型边界的3个点(点B C D)联系起来。我想在bcd之间建立一个关系,通过它我们可以将a预测转换为bcD。现在我正在做一个单相移,一个零上能级的振幅比,一个零下能级的振幅比,和一个平均能级移

这在高潮落潮和高潮洪水时造成潮汐信号的扭曲,导致模型过度预测落潮流。我想知道是否有人意识到这种转变有一种更复杂的关系

我想捕捉的一点是高水位和低水位之间的相移差异(例如,对于不同的点,正周期与负周期的比值可能不同)

当前进程的示例算法

A = vector (size n x 1 ) units meters

time_A = vector (size n x 1 )

ph_B = phase shift for AvsB.

pos_amp_B = positive amplitude ration.
neg_amp_B = negative amplitude ration.

B_mean = long term mean of B.

A_mean = long term mean of A.

for i = 1:n
    a = A(i) - A_mean
    if a > 0
       B(i) = a*pos_amp_B
    else
       B(i) = a*neg_amp_B
    end
    time_B(i) = time_A(i) = ph_B
    B(i) = B(i) + B_mean
end
顺便说一句:这种关系是基于大约6个月的数据

编辑1:
首先,考虑两个正弦信号(即振幅、相移),但不规则,例如周期为12.5小时,但正半和负半的斜率和周期不完全相同。你不需要任何背景知识。我只是在寻找一种转换算法

编辑2:

这是一张时间序列和fft比较的图片(fft集中于高能频率(12.5小时(半日)),只是为了说明并非所有频率都能很好地缩放)。在零行中黑色是绿色


如果您对自己的领域没有更详细的了解,就很难为您提供明确的答案。我将在这里假设你的潮汐行为是一个(LTI)系统。从您在问题中显示的数据来看,这似乎是一个合理的假设

现在你可以通过对信号A进行振幅和相位调整来创建B、C和D信号;下面我用复数乘以A。调整复数的振幅和相位,以获得所需的结果。下面是一个用Matlab代码编写的示例:

% Create an example signal at location 'A'
t = 0:0.1:10;
A = 0.35.*sin(2.*pi.*0.5.*t) + 1.*sin(2.*pi.*0.5175.*t) + 0.3.*sin(0.5255.*t);

% We want a complex version of A, so let's apply a Hilbert transform to it
A = hilbert(A);

% Now we can create the other signals by transforming the amplitude and
% phase. Exactly what amplitude and phase to apply needs to be determined.
B = 0.9*exp(j*0.1).*A;
C = 0.8*exp(j*0.4).*A;
D = 0.7*exp(j*0.6).*A;

% Plot what these signals look like
figure(1); hold on;
plot(t,real(A),'k');
plot(t,real(B),'r');
plot(t,real(C),'g');
plot(t,real(D),'b');
xlabel('Time');
ylabel('Amplitude');
legend('A','B','C','D');
这将产生一个在外观上与您在问题中发布的图片非常相似的情节。如果您的潮汐行为无法用LTI系统近似,则您可能必须执行一些更复杂的非线性建模


希望有帮助

潮汐预报模型非常复杂

要获得更精确的预测,您需要更多的数据。请看以下文章(不幸的是,它是用德语写的;我不知道有英文翻译):

幸运的是,这篇论文包含了大量的表格和图片,这些表格和图片在不懂德语的情况下是可以理解的

总而言之:除了A点、B点、C点、D点的潮位之外,你当然需要一些 海底深度剖面的近似值,计算时需要风数据。只有六个月的真实数据是不够的:你需要至少一年的数据来覆盖所有的季节


论文第93页中引用的软件已于2010年被置于GPLv2之下,可以发现这类似于海气系统中受干扰的强迫振荡(由月球驱动)

你能建立一个由四个ODE和一个外部力源组成的系统,比如:

   <<< tidal force field >>>

|         |         |         |
o -vvvvv- o -vvvvv- o -vvvvv- o
A         B         C         D
>
|         |         |         |
o-VVV-o-VVV-o-VVV-o
A、B、C、D
其中
-vvv-
应类似于机械弹簧

所有的弹簧也受到月球的影响,如果两个点之间的距离更远,可能会有一些轻微的相移

您可能可以使用随机微分方程中给出的某种方法-I-wish-I-known来确定系统结果矩阵中的常数。随机微分方程(paywall)的方法,所以我可能不会太远


如果你想生活在边缘,你可以尝试使耦合表现出轻微的非线性(即,当达到最大值时,耦合会略微变平,这可能被认为是海平面上升时海平面的增加)。

你能提供一个链接,链接到源信号和目标信号应该类似的信息吗?或者是你想让这段关系看起来怎么样的情节?或者,在理想情况下,你能以一种不需要特定领域知识的方式来回答你的问题吗?这不是我的知识范围,但我认为一些测量数据是分享的必要条件。此外,还将出色地区分正常潮汐值、地震值、海啸值、其他参数,如空气/水温度、风向/速度/变化+测量站的小地图草图以及与表中时间值的关系(如北方)。如果没有这些数据,我认为预测是不可能的。O以及测量的水的性质并非所有海洋都具有影响所有海洋的相同盐浓度…当你关联(同一类)数据时,你应该看到点之间的关系。。。因此,在这之后,就是识别类并使用正确的关系方程的问题。。。别忘了,如果你为了一个地方这么做。。。另一种情况可能是错误的,首先,只考虑两个正弦信号(即振幅、相移),但不规则,因此,例如周期为12.5小时,但正半部分和负半部分的斜率和周期不完全相同。你不需要任何背景知识。我只是在寻找一个转换算法。谢谢你的回答,但是你所说的“我的领域的详细知识”是什么意思?我已经告诉你们,它们是潮汐信号,它们之间的关系不是线性的。上升和下降标高具有不同的坡度和坡度