gpt4 book ai didi

matlab - 在Matlab中提取具有多个频率分量的信号

转载 作者:行者123 更新时间:2023-12-02 23:05:22 26 4
gpt4 key购买 nike

如果我的信号是不同频率的正弦波和余弦波的混合,那么我可以通过设计一个带通频率等于我想要的频率的带通滤波器来轻松提取其中之一。

如果必须提取具有多个频率分量的信号怎么办?

例如,如果我有两个音频信号。显然,音频信号包含许多频率。假设两个音频信号为a1,a2。

现在,我将它们添加为A = a1 + a2;

请注意,我没有将一种音频附加到另一种。我添加了它们的振幅。

为此,我正在这样做:

[a1,fs1]=audioread('1.mp3');
[a2,fs2]=audioread('sample.mp3');
A=zeros(1,max(length(a1),length(a2)));
for i=1:length(a1)
A(i)=a1(i);
end
for i=1:length(a2)
A(i)=A(i)+a2(i);
end

现在,我有一个复合音频,类型为 A

现在,如果我想从 a1中提取 A,我该怎么做?如果这是一个简单的频率范围,我将非常容易地提取它。但是这里两个音频信号几乎具有相同的频率集。是否有可能像这样提取?

谢谢 :)

编辑:

根据要求的傅立叶图,我将其粘贴:

Plot 1

Plot 2

最佳答案

如果您有一个引用信号s1,您可以将其从汇总信号A中减去并获得目标信号:
s2 = A-s1。

但是,如果您没有这些信号之一,就无法获得单独的信号。可以创建像s1 + s2这样的A的信号s1和s2的成分的数量无穷大。因此,将它们分开是不可能的。

关于matlab - 在Matlab中提取具有多个频率分量的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45730899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com