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: Is there any simple way to separate wave components? - comp.soft ...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 ... Signal-to-noise ratio for a sine signal?? - comp.soft-sys.matlab ...Since the frequency of the sine wave is known ... I wonder if there is a simple definition for my case. ... useful for measuring additive noise and there must be a way to ... X and Y must be vectors of the same length. - comp.soft-sys.matlab ...> Is there any other way to do it? hold on will retain last ... above. scatter tries to plot the graph on a separate ... Any simple examples would be fine especially with ... How to checlk kernel limitations for specific user at Solaris 10 ...... SHMSEG SEMMNS SEMMNI SEMMSL It is simple to ... was available also for 8 and 9, but as separate ... Don't think there's any API or scriptable way to do this. Sorting JTable with fixed column - comp.lang.java.gui... docs/books/tutorial/uiswing/components/table.html >> >> The discussion includes a way ... be feasible, such as two separate ... Is there any way to make the first two ... special effects library? - comp.graphics.api.opengl... have enough time to code the core components of the app and code any ... What is the proper way to read/write sparse matrix? - comp.soft ... Is there any special suggestion ... Swing uses bad features - comp.lang.java.guiSince there isn't any call to a standardized ... to worry about legitimate values for any other components. ... javadoc could use is a uniform and easy way to separate ... WAV file in dB's - comp.soft-sys.matlabhi, I have a wave file (fs=51200) of 10 secs. ... is known that on a third octave analysis, at 1kHz there ... dB from a WAV file Hi everyone, I suppose this is an easy ... Preventing A New Window From Grabbing Focus - comp.lang.java ...Is there any simple way to separate wave components? - comp.soft ... Preventing A New Window From Grabbing Focus - comp.lang.java ... I'm going to have to d/l Java6 and ... unicode display of common characters - comp.emacsThe saved file, when opened (with a simple file ... and it, and the four following digits are separate iso ... Is there any way to get emacs HTML mode to do that? Is there any simple way to separate wave components? - comp.soft ...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 ... Wave function - Wikipedia, the free encyclopediaFunctions are easy to produce ... are many particles, in general there is only one wave function, not a separate ... The components of a wave function describing the same ... 7/24/2012 6:07:58 PM
|