FDAtool转C
来源:互联网 发布:苹果5s怎么升级4g网络 编辑:程序博客网 时间:2024/05/21 12:14
1. 首先设计低通滤波器
在simulink里面仿真
得到滤波器系数,并生成头文件:
解得差分方程
acc_xxx(index)=-IIR_A(2)*acc_xxx(index-1)-IIR_A(3)*acc_xxx(index-2)-IIR_A(4)*acc_xxx(index-3);
acc_xxx(index)=acc_xxx(index)+IIR_B(1)*acc_x(index)+IIR_B(2)*acc_x(index-1)+IIR_B(3)*acc_x(index-2)+IIR_B(4)*acc_x(index-3);
编写程序:
%%用来测试低通滤波器的c语言头文件 clear,clc; load('motor(1k0320).mat') load('acc_xx(5Hz).mat') [len a]=size(acc_x); MWSPT_NSEC=5; IIR_B=[2.191480047329e-005,2.727814787772e-006,2.727814787772e-006,2.191480047329e-005]; IIR_A=[1, -2.938376706887, 2.879344290419, -0.9409182983008]; acc_xxx=zeros(1,len); in=0; acc_x_iir=zeros(1,len); for index=1:len if(index==1) acc_xxx(index)=acc_xxx(index)+IIR_B(1)*acc_x(index); elseif(index==2) acc_xxx(index)=-IIR_A(2)*acc_xxx(index-1); acc_xxx(index)=acc_xxx(index)+IIR_B(1)*acc_x(index)+IIR_B(2)*acc_x(index-1); elseif(index==3) acc_xxx(index)=-IIR_A(2)*acc_xxx(index-1)-IIR_A(3)*acc_xxx(index-2); acc_xxx(index)=acc_xxx(index)+IIR_B(1)*acc_x(index)+IIR_B(2)*acc_x(index-1)+IIR_B(3)*acc_x(index-2); else acc_xxx(index)=-IIR_A(2)*acc_xxx(index-1)-IIR_A(3)*acc_xxx(index-2)-IIR_A(4)*acc_xxx(index-3); acc_xxx(index)=acc_xxx(index)+IIR_B(1)*acc_x(index)+IIR_B(2)*acc_x(index-1)+IIR_B(3)*acc_x(index-2)+IIR_B(4)*acc_x(index-3); end% x(1,1)=acc_x(index);% for i=1:MWSPT_NSEC% y(i,1)=0;% y(i,1)=y(i,1)+x(i,1)*IIR_B(i,1);% y(i,1)=y(i,1)+x(i,2)*IIR_B(i,2);% y(i,1)=y(i,1)+x(i,3)*IIR_B(i,3);% y(i,1)=y(i,1)-y(i,2)*IIR_A(i,2);% y(i,1)=y(i,1)-y(i,3)*IIR_A(i,3);% y(i,1)=y(i,1)/IIR_A(i,1);% y(i,3)=y(i,2);% y(i,2)=y(i,1);% x(i,3)=x(i,2);% x(i,2)=x(i,1);% x(i+1,1)=y(i,1);% end% acc_x_iir(index)=x(MWSPT_NSEC+1,1); end xx=acc_xxx-acc_xx(1:len)'; figure(12) subplot(3,1,1); plot(acc_xx(1:len)); title('FDATool'); subplot(3,1,2); plot(acc_xxx); title('C语言'); ylim([-0.6 0.4]); subplot(3,1,3); plot(xx); ylim([-0.01 0.01]);
结果:
- FDAtool转C
- IIR数字滤波器实现(mantlab+C语言) fdatool
- FDATOOL设计滤波器
- Matlab Algorithm 之fdatool
- FDATOOL设计数字滤波器
- MATLAB FDATool IIR数字滤波器设计
- MATLAB FDATool IIR数字滤波器设计
- FDATool工具箱简单设计方法
- fdatool 设置半带滤波器
- MATLAB FDATool IIR数字滤波器设计
- 滤波器设计分析工具FDATOOL
- MATLAB中用FDATool设计滤波器及使用
- MATLAB中的Fdatool/Fvtool/Bertool简介
- Matlab fdatool设计实现一维数字滤波器
- 关于Matlab中用fdatool设计滤波器
- 教你如何使用matlab中的FDATOOL来设计滤波器
- 用Matlab的FDAtool生成IIR滤波器参数
- matlab的fdatool生成的fdacoefs.h注解
- opengl matrix
- codeforces round #174 div2
- Untiy Profiler分析器
- Java inner class
- 消息模式
- FDAtool转C
- Java链接Oracle数据库时候调用含有游标的存储过程(两种不同处理方式)
- 多tomcat部署需要修改的端口
- linux 信号详解
- 获取成员函数地址3种方法
- ORACLE启动 切换实例命令
- binder驱动之我见
- Map通过key删除value
- GCD (Greatest Common Divisor)