小编Sta*_*dov的帖子

用于实时信号处理的快速C++正弦和余弦替代方案

我需要实现一个实时同步正交检波器.检测器接收输入数据流(来自PCI ADC)并返回谐波的幅度w.有简化的C++代码:

double LowFreqFilter::process(double in)
{
   avg = avg * a + in * (1 - a);
   return avg;
}


class QuadroDetect
{
   double wt;
   const double wdt;

   LowFreqFilter lf1;
   LowFreqFilter lf2;

   QuadroDetect(const double w, const double dt) : wt(0), wdt(w * dt)
   {}

   inline double process(const double in)
   {
      double f1 = lf1.process(in * sin(wt));
      double f2 = lf2.process(in * cos(wt));
      double out = sqrt(f1 * f1 + f2 * f2);
      wt += wdt;
      return out;
   } …
Run Code Online (Sandbox Code Playgroud)

c++ optimization trigonometry signal-processing

6
推荐指数
1
解决办法
314
查看次数