声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 981|回复: 0

[滤波] [求助]论坛中的一段滤波算法,请求高手转化为C语言,能够脱离matlab运行

[复制链接]
发表于 2009-3-19 16:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
[求助]论坛中的一段滤波算法,请求高手转化为C语言,能够脱离matlab运行

=====================================================================

%带通滤波
%x-输入信号
%fs-输入信号采样频率
%M-滤波器半阶数
%fl-下截止频率
%fh-上截止频率
%xl-返回的滤波结果,其长度为原序列长度减少2M,去掉了前M和后M个不正确的点
function xl=bp(x,fs,M,fl,fh)

N=length(x)-2*M;
[i j]=size(x);
if i~=1
    x=x';
end
k=1:M;
w=0.5+0.5*cos(pi*k/M);

wl=2*pi*fl/fs;
wh=2*pi*fh/fs;
h(1)=(wh-wl)/pi;
h(2:M+1)=(sin(wh*k)-sin(wl*k))./(pi*k).*w;

for k=1:N
    kk=k-1+M;
    xl(k)=x(kk+1)*h(1)+sum(h(2:M+1).*(x(kk+2:kk+M+1)+x(kk:-1:kk-M+1)));
end

if i~=1
    xl=xl';
end
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-27 13:21 , Processed in 0.062913 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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