cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 996|回复: 0

求助关于FIR软件滤波

[复制链接]
发表于 2007-8-1 20:07:03 | 显示全部楼层 |阅读模式
我用PCI5102卡采集到的信号,采样率为10MS/s,希望能够将50Hz的工频电信号滤掉,从别人那里拷来的滤波程序,但对其中的参数设置没搞懂,向大侠们请教,程序如下:
void FIRFilter(double *input, double *output)
{
char errorflag=0;
int  status, firtype=1, firtaps=501, daqrecordlength;
double firfl, firfh, *temp, *FIRCoeffs;
    daqrecordlength=(int)(setsamprate/setvolfrequency);
    temp = malloc(sizeof(double)*(daqrecordlength+firtaps));  
    FIRCoeffs = malloc(firtaps*sizeof(double));
    firfl=50.0;
    firfh=setsamprate/2;
    Clear1D(FIRCoeffs,firtaps);
    status = FIR_Coef (firtype, setsamprate, firfl, firfh, firtaps, FIRCoeffs);
    if (status != NoAnlysErr)
    {
     MessagePopup("      错误", "FIR滤波参数设置有误!");
     errorflag = 1;
    }
    if (errorflag!=1)
    {
         Clear1D(temp,daqrecordlength+firtaps);               
         Convolve (input, daqrecordlength, FIRCoeffs, firtaps, temp);
         Copy1D (temp, daqrecordlength, output);
    }
    free(FIRCoeffs);
    free(temp);
}

问题1:参数firtaps的值应设置为多少合适?改变firtaps的值会影响那些东西?
问题2:若要滤掉50Hz以下的信号,为什么firfl设置到5000以上才见到效果?
问题3:不论是低通方式还是高通方式,改变firfh的值似乎并不影响滤波效果,是这样吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-22 17:21 , Processed in 0.859401 second(s), 8 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表