Is there any simple way to separate wave components?

  • Follow


I have an input signal as a combination of sin functions: f(x)=sin(k1*x)+sin(k2*x)+sin(k3*x)+.... k1,k2,k3... are the unknown wave frequency.

Is there any toolbox in matlab to obtain the total number of sin functions and separate them?

I know that I can do a fft and then find the peaks and finally do an inverse fft. But this method seems too trouble and not accurate. Any other good methods?

Thank you in advance.
0
Reply Hades 1/24/2010 3:12:03 AM

On Jan 24, 4:12=A0pm, "Hades " <hadesmaje...@yahoo.com.cn> wrote:
> I have an input signal as a combination of sin functions: f(x)=3Dsin(k1*x=
)+sin(k2*x)+sin(k3*x)+.... k1,k2,k3... are the unknown wave frequency.
>
> Is there any toolbox in matlab to obtain the total number of sin function=
s and separate them?
>
> I know that I can do a fft and then find the peaks and finally do an inve=
rse fft. But this method seems too trouble and not accurate. Any other good=
 methods?
>
> Thank you in advance.

So, these sines have unit amplitude and zero phase, and you want the
exact frequencies, not the best fit.  Is that correct?
0
Reply TideMan 1/24/2010 3:25:01 AM


A slight correction of my problem
> I have an input signal as a combination of sin functions: f(x)=A1(x)*sin(k1*x)+A2(x)*sin(k2*x)+A3(x)*sin(k3*x)+.... k1,k2,k3... are the unknown wave frequency. A1,A2,A3... are the unknown wave amplitude. The total number of wave component is unknown. 

I need to exactly obtain
g1(x)= A1(x)*sin(k1*x);
g2(x)= A2(x)*sin(k2*x);
g3(x)= A3(x)*sin(k3*x);
....
Any good methods to do this?
0
Reply Hades 1/24/2010 3:48:02 AM

Why do you need to do this?  I ask because the Fourier transform is
related to this and might work for whatever it is that you need to
do.  The Fourier transform gives you the amplitude at all the
frequencies that are multiples of a fundamental frequency: sin(kx), sin
(2kx), sin(3kx), sin(4kx), etc.
0
Reply ImageAnalyst 1/24/2010 5:59:59 AM

ImageAnalyst <imageanalyst@mailinator.com> wrote in message <c2f70a06-b2b2-4a55-83cd-b0b1c833bddd@b9g2000yqd.googlegroups.com>...
> Why do you need to do this?  I ask because the Fourier transform is
> related to this and might work for whatever it is that you need to
> do.  The Fourier transform gives you the amplitude at all the
> frequencies that are multiples of a fundamental frequency: sin(kx), sin
> (2kx), sin(3kx), sin(4kx), etc.

But when I do a Fourier transformation in matlab, like F=fft(f), I can only obtain F, rather than the each amplitude, frequency, phase of the components of function f, isn't it?
0
Reply Hades 1/24/2010 8:31:02 AM

On 24 Jan, 04:12, "Hades " <hadesmaje...@yahoo.com.cn> wrote:
> I have an input signal as a combination of sin functions: f(x)=sin(k1*x)+sin(k2*x)+sin(k3*x)+.... k1,k2,k3... are the unknown wave frequency.
>
> Is there any toolbox in matlab to obtain the total number of sin functions and separate them?
>
> I know that I can do a fft and then find the peaks and finally do an inverse fft. But this method seems too trouble and not accurate. Any other good methods?

No. The robust methods, like the DFT, are somewhat
inaccurate, but give the analyst a good pricture
of what is going on.

There are other, more elaborate methods that extract
different types of parameters from the data, but these
things first of all rely on certain relation between
the number of sinusoidals present in the data and the
number of data poins, and second, rely on the user to
spceify certain key characteristics of tha data, that
may or may not (usually the latter) be true.

Rune
0
Reply Rune 1/24/2010 9:10:14 AM

On Jan 24, 4:48=A0pm, "Hades " <hadesmaje...@yahoo.com.cn> wrote:
> A slight correction of my problem
>
> > I have an input signal as a combination of sin functions: f(x)=3DA1(x)*=
sin(k1*x)+A2(x)*sin(k2*x)+A3(x)*sin(k3*x)+.... k1,k2,k3... are the unknown =
wave frequency. A1,A2,A3... are the unknown wave amplitude. The total numbe=
r of wave component is unknown.
>
> I need to exactly obtain
> g1(x)=3D A1(x)*sin(k1*x);
> g2(x)=3D A2(x)*sin(k2*x);
> g3(x)=3D A3(x)*sin(k3*x);
> ...
> Any good methods to do this?

You started by telling us the sines had unit amplitude and zero phase.
Now, you're telling us the amplitudes are a function of x, but zero
phase.
This sounds like a load of codswallop to me.

You're a troll, aren't you.
0
Reply TideMan 1/24/2010 9:45:48 AM

On Jan 24, 3:31=A0am, "Hades " <hadesmaje...@yahoo.com.cn> wrote:
> But when I do a Fourier transformation in matlab, like F=3Dfft(f), I can =
only obtain F, rather than the each amplitude, frequency, phase of the comp=
onents of function f, isn't it?
------------------------------------------------------------
And what do you think F is?

0
Reply imageanalyst (7590) 1/26/2010 11:36:59 PM

7 Replies
243 Views

(page loaded in 0.109 seconds)

Similiar Articles:













7/24/2012 6:07:58 PM


Reply: