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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在matlab中提取具有多个频率分量的信号相关的知识,希望对你有一定的参考价值。

如果我的信号是具有不同频率的正弦波和余弦波的混合信号,我可以通过设计一个通带频率等于我所需频率的带通滤波器,轻松地提取其中一个。

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

例如,如果我有两个音频信号。显然,音频信号包含许多频率。设两个音频信号为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的组合物可以产生类似s1 + s2的A。因此,将它们分开是不可能的。

以上是关于在matlab中提取具有多个频率分量的信号的主要内容,如果未能解决你的问题,请参考以下文章

语音处理基于matlab GUI音频信号提取分析含Matlab源码 1738期

数字信号去噪基于matlab粒子滤波器与FBSMAP平滑方法数字信号去噪含Matlab源码 2179期

matlab 如何消除信号的高频分量

语音隐写基于matlab GUI DWT音频信号数字水印嵌入提取含Matlab源码 1028期

图像处理基于matlab DWT图像水印嵌入提取攻击含Matlab源码 622期

Matlab:矩形脉冲的傅里叶变换具有非常高的零频率分量