1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-02-03 09:44:01 -05:00

FFT Window: in place apply methods

This commit is contained in:
f4exb 2019-10-01 00:21:02 +02:00
parent 4e66097993
commit e8c11c3085
2 changed files with 23 additions and 3 deletions

View File

@ -57,18 +57,36 @@ void FFTWindow::create(Function function, int n)
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];
}
}
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];
}
}
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)
{
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];
}
}
void FFTWindow::apply(Complex* in)
{
for(size_t i = 0; i < m_window.size(); i++) {
in[i] *= m_window[i];
}
}

View File

@ -42,7 +42,9 @@ public:
void create(Function function, int n);
void apply(const std::vector<Real>& in, std::vector<Real>* 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(Complex* in);
private:
std::vector<float> m_window;