mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-05 14:47:50 -04:00
FFT Window: in place apply methods
This commit is contained in:
parent
4e66097993
commit
e8c11c3085
@ -57,18 +57,36 @@ void FFTWindow::create(Function function, int n)
|
|||||||
|
|
||||||
void FFTWindow::apply(const std::vector<Real>& in, std::vector<Real>* out)
|
void FFTWindow::apply(const std::vector<Real>& in, std::vector<Real>* out)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < m_window.size(); i++)
|
for(size_t i = 0; i < m_window.size(); i++) {
|
||||||
(*out)[i] = in[i] * m_window[i];
|
(*out)[i] = in[i] * m_window[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FFTWindow::apply(const std::vector<Complex>& in, std::vector<Complex>* out)
|
void FFTWindow::apply(const std::vector<Complex>& in, std::vector<Complex>* out)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < m_window.size(); i++)
|
for(size_t i = 0; i < m_window.size(); i++) {
|
||||||
(*out)[i] = in[i] * m_window[i];
|
(*out)[i] = in[i] * m_window[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FFTWindow::apply(std::vector<Complex>& in)
|
||||||
|
{
|
||||||
|
for(size_t i = 0; i < m_window.size(); i++) {
|
||||||
|
in[i] *= m_window[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FFTWindow::apply(const Complex* in, Complex* out)
|
void FFTWindow::apply(const Complex* in, Complex* out)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < m_window.size(); i++)
|
for(size_t i = 0; i < m_window.size(); i++) {
|
||||||
out[i] = in[i] * m_window[i];
|
out[i] = in[i] * m_window[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FFTWindow::apply(Complex* in)
|
||||||
|
{
|
||||||
|
for(size_t i = 0; i < m_window.size(); i++) {
|
||||||
|
in[i] *= m_window[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,9 @@ public:
|
|||||||
void create(Function function, int n);
|
void create(Function function, int n);
|
||||||
void apply(const std::vector<Real>& in, std::vector<Real>* out);
|
void apply(const std::vector<Real>& in, std::vector<Real>* out);
|
||||||
void apply(const std::vector<Complex>& in, std::vector<Complex>* out);
|
void apply(const std::vector<Complex>& in, std::vector<Complex>* out);
|
||||||
|
void apply(std::vector<Complex>& in);
|
||||||
void apply(const Complex* in, Complex* out);
|
void apply(const Complex* in, Complex* out);
|
||||||
|
void apply(Complex* in);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<float> m_window;
|
std::vector<float> m_window;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user