Every signal is the sum of sinusoids.
The spectrum of periodic signal consists of discrete components.
The spectrum of single pulse has no discrete components (better to say has an infinite number of them - it's continuous).
To estimate a spectrum more precisely take more periods of your discrete signal together and apply fft.
What do you exactly mean with this statement? Of course the signals show up in the FFT. I guess, the FFT didn't look like you exepcted it. But what's the problem? Do you know how an on/off keyed sine looks in a fourier transformation? Have you heard about windows and relation of sample length and frequency resolution?But in this example, Fourier did not determine the frequency correctly.
function [ ] = Test()
x = 1:100;
y1 = CreateSin(x, 20, 78, 30);
y2 = CreateSin(x, 13, 60, 45);
y3 = CreateSin(x, 3, 100, 60);
y = y1 + y2 + y3;
subplot(4, 1, 1);
plot(x, y1);
axis([0, 100, -2, 2]);
subplot(4, 1, 2);
plot(x, y2);
axis([0, 100, -2, 2]);
subplot(4, 1, 3);
plot(x, y3);
axis([0, 100, -2, 2]);
subplot(4, 1, 4);
plot(x, y);
axis([0, 100, -2, 2]);
end
% function create sinusoid
% x - domain
% begin - point from which to begin a sinusoid
% finish - the point at which ends sinusoid
% period - sinusoid period
function [ y ] = CreateSin(x, begin, finish, period )
y = zeros(1, length(x));
y(begin:finish) = y(begin:finish) + sin(x(begin:finish) * 2 * pi / period);
end
I think the statement misses the point. The fundamental of the sine segments will still show as peaks in the fourier transformation. Unfortunately you don't show the spectrum.I am in this example would draw your attention to the following: If the sine wave is not defined on the whole window and when it intersects with other unknown sinusoid, the Fourier is not exactly determine the frequency.
Yes. Fourier analysis shows you the spectrum of a signal as you defined it. Apparently you want a spectral analysis, that shows an arbitrary part of the spectrum and ignores the rest.It seems you are trying to push fourier analysis beyond its limits.
But the abrupt cuts are adding broad bands to the spectrum. It's not exactly caused by the zeroed part of the sine, the same thing happens if you transform a sine that completely fills the window, but it's period isn't an integer part of the sequence length.
No, it's a period of 60 for signal length of 97, about 1.5 periods. It's not an alias problem.I also think if I read his code correct he has a 60 Hz sine wave in a sample window of 100?
Other than in the initial post, the waveform is completely defined, being zero outside the defined sine period. That's by design of the problem, but of course, the spectrum will reflect the signal as it's defined.Another issue with this waveform is that the waveform is incomplete. He has not defined the waveforms for the complete sample space.
Other than in the initial post, the waveform is completely defined, being zero outside the defined sine period. That's by design of the problem, but of course, the spectrum will reflect the signal as it's defined.
Yes, or we can say it's an on-off-keyed sine, which causes the observed wide band signals in the spectrum.but the when the sample for a particular signal becomes zero, we wont be able to call it a sine way right.
No, I do not use filters. In this example, the signal clean. That is, there is no interference. Therefore I think that the filters are not needed. I may be wrong. If you think that the filter should be used, advise what, please.First - have you run a digital filter over your block before converting to frquency?
I do not speak English, so I may have misunderstood.Second - have you chosen a realistic sample period, you need to check the frequency resolution of the final result and do your sinusoids sit exactly on a bin or slighly off the bin. Are the sinusoids even in a bin?
My problem is the following:Please define your whole process in words as well as code to see exactly what you are doing.
This is what I wanted to say. I know absolutely nothing about the sinusoids that make up the signal. So I do not know how to decipher the Fourier spectrum. If I was sure that all the signals were all over the window, then any leakage I could interpreted as sinusoid is out of bean.But the abrupt cuts are adding broad bands to the spectrum. It's not exactly caused by the zeroed part of the sine, the same thing happens if you transform a sine that completely fills the window, but it's period isn't an integer part of the sequence length.
I'm afraid I misunderstood you.Yes. Fourier analysis shows you the spectrum of a signal as you defined it. Apparently you want a spectral analysis, that shows an arbitrary part of the spectrum and ignores the rest.
Can be more about momentum? What instrument can be found or measure this momentum?The sharp cut off will look like an impulse and have broad band noise added as you say. I also think if I read his code correct he has a 60 Hz sine wave in a sample window of 100? Aliasing seems probable here unless I mis read the code. But I do not use Matlab so cant really comment till the OP puts some flesh on the problem.
That's right! But, unfortunately, the conditions of the problem, as parents, do not choose.Another issue with this waveform is that the waveform is incomplete. He has not defined the waveforms for the complete sample space. Hence non of those can be considered to be sinusoidals. It is important to define the sinusoidal for the complete sample space. Or else use windowing I guess.
All right. Thank you for understanding my problem.No, it's a period of 60 for signal length of 97, about 1.5 periods. It's not an alias problem.
Other than in the initial post, the waveform is completely defined, being zero outside the defined sine period. That's by design of the problem, but of course, the spectrum will reflect the signal as it's defined.
Here is a fantastic example:Since the sample set has zeroes in the sample space for the sine way, it no longer stays as a sine way. May I am understanding you in a wrong way, but the when the sample for a particular signal becomes zero, we wont be able to call it a sine way right. Please correct me if I have understood things wrongly.
function [ ] = Run()
close all;
clear all;
clc;
moon1 = CreateMoon(100, 1, 100, 100);
moon2 = CreateMoon(100, 27, 64, 50);
moon3 = CreateMoon(100, 50, 70, 75);
subplot(4, 1, 1);
plot(moon1, '.');
axis([0, 100, -2, 2]);
subplot(4, 1, 2);
plot(moon2, '.');
axis([0, 100, -2, 2]);
subplot(4, 1, 3);
plot(moon3, '.');
axis([0, 100, -2, 2]);
subplot(4, 1, 4);
plot(moon1+moon2+moon3, '.');
axis([0, 100, -2, 2]);
end
% function create moon
% dayLength - the number of hours in a day
% appearance - time of appearance
% disappearance - time of disappearance
% period - time for a complete orbit around the planet
function [ y ] = CreateMoon(dayLength, appearance, disappearance, period )
x = 1:dayLength
y = zeros(1, length(x));
y(appearance:disappearance) = y(appearance:disappearance) + sin(x(appearance:disappearance) * 2 * pi / period);
end
You are right. But the solution to this problem will bring me one step more to the difficult and real problem. For example, it will be possible to study the signals that do not appear suddenly, but gradually. That is, they are slowly increasing in amplitude (born) and slowly decrease in amplitude (decay). For example, it could be coming from far away meteorite, which will also affect the water level in our imaginary planetYou have created artificial signals with discontinuities that are far from any real world signals. Choosing signals like this also suggests that you don't have much understanding about the relation of time to frequency domain. These signals will have disastrous effects in the fourier domain.
Yes.In my view, you have tightend your requirements by saying you want to determine start and end time and phase of each signal component (Or at least have told it clearly now).
Maybe I do not understand how we can "on/off keyed sine looks in a fourier transformation". Could you explain it.Do you know how an on/off keyed sine looks in a fourier transformation
Of course, the first coefficient is equal to a constant, the second corresponds to a sinusoid with a frequency of 1. The third coefficient corresponds to a sinusoid with a frequency of 2, etc.Have you heard about windows and relation of sample length and frequency resolution
Sadly, I can not place restrictions on the signal. If your convenience, we can create a signal according to your criteria. But as a temporary solution, which will help us to find a solution for a given example of the planet and moons.In my view, you need to narrow down the problem:
- frequency range of involved signals
- required frequency resolution
- maximum number of signals
- minimal number of periods appearing in the measurement
Can you tell me more about this, please.- allowed modulation envelopes (only on/off or others)
Can you explain this approach by the example of our moon?You can also treat the problem as a model estimation: Assume a set of sine signals and modulation windows, estimate the parameters.
Can you demonstrate how you can do this in our example with moons, operating only the sum of signals. That is, in your possession is not a set of source signals, but only their sum.he main point is that you can restrict the set of possible signals, e.g. to on-off keyed sine waves in a particular frequency and magnitude range. The fourier domain presentation can be still helpful to identify the strongest spectral "lines" as a starting point for the model.
moon1 = CreateMoon(1000, 1, 1000, 100);
moon2 = CreateMoon(1000, 340, 1000, 33);
moon3 = CreateMoon(1000, 1, 700, 70);
Yes.I am begining to understand your question as you explain it further. Once you have added the various time signals together to a single signal the information about their original composition is lost and you cannot get it back. All you can do is analyse the new composite signal you have.
Thank you very much for the help! Could you specify the source where I could read about this technique?There are a number of ways to 'seek' your frequency and where it is maximal in the frame but the processing is quite complex or more I should say processor intensive. You could detect the main frequencies in the composite signal and then apply for each frequency a correlation across the whole signal with a variable length sine wave at the frequency of interest. It is not a new technique but may solve your problem.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?