Sorry if this is a super easy question, I am really not a signals guy (more of a statistician, computer scientist). But I was trying to reconstruct/learn a sinusoidal function $x(t)$ with linear regression $f(x) = \langle w , \phi(x) \rangle $ (I'm adding as many polynomial features as I may need) over a fixed interval $[-1,1]$. Then I realized that there is this thing called the Nyquist-Shannon sampling theorem that might help figure out if I have enough samples. The reason that I care about it is because the performance of my regression model is really bad on the test set and I wondering if I am just not getting enough samples from my ground truth signal (which for the moment I control synthetically). I know now that I need my sample frequency $f_s$ to be larger than twice the band width $B$ of my signal:
$$ f_s > 2B$$
to my understanding bandwidth is just the range of the frequencies present in the signal $x(t)$ (I even asked to clarify that to me just in case here: What is the definition of the bandwidth of a signal?). Thus if that is correct then band width is:
$$ B = f_{max} - f_{min} $$
is there a general way to get $f_{max}$,$f_{min}$ from a signal in the time domain?
If I understand this correctly then I just need to get the frequencies that define $x(t)$? Right?
If that is correct then the only way I know is if we know the analytic form of the $x(t)$, which I do for my example, then I just read of the frequencies from the Fourier series $ f(x) = \frac{1}{2}a_0 + \sum^{\infty}_{n=1} a_n cos(nx) + \sum^{\infty}_{n=1} b_n sin(nx) $. Say $n_{max},n_{min}$ are the largest values modifying the inside of sin or cos terms then we read them off and do:
$$ B = \frac{n_{max} }{2 \pi} - \frac{n_{min}}{2 \pi} $$
right? What happens if there is only 1 single term like it only a sin like $x(t) = sin(n t)$, how do we get the smaller frequency if there is no other frequency?
Now that I understand much better what the term frequency means I assume that the answer will point me that if I don't know the analytic form of my signal (as probably happens most in practice) we need to resort to some type of transform used. Probably the Fourier transform? But a quick google search to the frequency domain yielded a list of methods:
- Fourier series – repetitive signals, oscillating systems
- Fourier transform – nonrepetitive signals, transients
- Laplace transform – electronic circuits and control systems
- Z transform – discrete-time signals, digital signal processing Wavelet transform - image analysis, data compression
I don't know when to apply each but it seems the wikipedia article links to more articles for each one...
Is this correct or am I totally off? (which might be the case since I'm not very familiar with this field). I am assuming there are probably engineering details I am totally missing like flow pass filters or something else that might be important for real signals in practice. Though its just a random guess based on the definition of low-pass filter (filters high frequencies out). Though not sure.
Further reading What is the definition of the bandwidth of a signal? makes me suspect that the actual correct answer is as follows:
- Consider a time domain signal $x(t)$.
- Consider its frequency description $X(\omega)$
the the support of $X(\omega)$ is the bandwidth. In other words, "the summations" of the points in the domain (to be more precise, the integral of the domain). So if the domain is the whole interval $[-W,W]$ the the bandwidth would be:
$$ B = \int^{W}_{-W}d \omega = 2W $$
so in general is it:
$$ B = \int_{w \in supp(X(\omega))} d\omega $$
would be my guess.