Optimization 加速MATLAB滤波命令

Optimization 加速MATLAB滤波命令,optimization,filtering,signal-processing,matlab,Optimization,Filtering,Signal Processing,Matlab,我对使用MATLAB滤波器比较陌生。我尝试使用以下命令过滤一个相当大的数据集(大约200万个数据点 rrc = rcosdesign(0.25, 10, floor(Fs/symRate), 'sqrt'); filtered = filter(rrc, 1, samples); filtered = filtered / sqrt(floor(Fs/symRate)); 当我运行MATLAB分析器时,它显示 filtered = filter(rrc, 1, samples); 运行时间超

我对使用MATLAB滤波器比较陌生。我尝试使用以下命令过滤一个相当大的数据集(大约200万个数据点

rrc = rcosdesign(0.25, 10, floor(Fs/symRate), 'sqrt');
filtered = filter(rrc, 1, samples);
filtered = filtered / sqrt(floor(Fs/symRate));
当我运行MATLAB分析器时,它显示

filtered = filter(rrc, 1, samples);
运行时间超过500秒。有没有办法加快速度?我曾尝试使用我在网上找到的FilterM函数(),但它花费的时间相同。还有人有什么想法吗

提前感谢

一些想法:

  • 如果您有FIR滤波器(从代码中可以看出),您可以使用
    conv2
    来获得性能,它使用Intel IPP,这可能会加快速度。使用“有效”标志获取
    过滤器
    结果
  • 如果滤波器较长且数据较长,请尝试使用
    xcorr
    ,因为它使用FFT加速相关。由于您正在进行过滤,请记住翻转您的过滤系数
  • 使用Visual Studio 2013或更高版本的“英特尔C编译器2013”(带优化标志)(
    /03
    )编译
    filterX
    )。使用它时,直接使用
    filterX
    命令(跳过
    FilterM
    wrapper)
  • 手动使用FFT执行卷积
  • 创建MEX版本的“英特尔MKL/英特尔IPP过滤器”函数
  • 其中任何一项都应该有相当大的帮助