C语言编写FIR数字低通滤波器

主要是获取滤波器参数和卷积算法,参数根据自己的滤波器特性用matlab上面的一个fdatool工具配置生成,然后将这些参数写入程序里面即可(参数可适当的乘以一个系数,对滤波没任何影响),我这里Fs = 2k,Fpass= 1k,Fstop = 2k,至于输入数据你可以自己产生几个不同频率正弦波的叠加。我这里随便给的一个输入例子:

f1=1k,f2=6k,fs=20k
采样数据:200
30 12 -3 5 -2 -10 9 11 -14 -18 -10 -19 -12 13 7 -10 -1 4 -3 15 30 10 -3 5 -4 -9 11 9 -16 -17 -10 -20 -9 14 4 -11 1 3 -3 17 29 7 -2 5 -5 -8 12 7 -17 -16 -11 -20 -7 15 2 -10 2 2 -2 20 28

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
C语言中实现FIR低通滤波器的代码可以参考以下示例代码: ```c #define N 51 // 滤波器系数的长度 #define M 100 // 输入信号的长度 float h\[N\] = {0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.19, 0.18, 0.17, 0.16, 0.15, 0.14, 0.13, 0.12, 0.11, 0.1, 0.09, 0.08, 0.07, 0.06, 0.05, 0.04, 0.03, 0.02, 0.01, 0.0}; // 滤波器系数数组 float x\[M\]; // 输入信号数组 float y\[M\]; // 输出信号数组 int main() { // 生成输入信号,这里以正弦波为例 float frequency = 1000; // 正弦波频率 float amplitude = 1.0; // 正弦波幅值 float samplingRate = 2000; // 采样率 for (int i = 0; i < M; i++) { x\[i\] = amplitude * sin(2 * M_PI * frequency * i / samplingRate); } // FIR滤波器处理过程 for (int n = 0; n < M; n++) { y\[n\] = 0; for (int k = 0; k < N; k++) { if (n - k >= 0) y\[n\] += h\[k\] * x\[n - k\]; } } // 输出滤波结果 for (int i = 0; i < M; i++) { printf("%f\n", y\[i\]); } return 0; } ``` 在这个示例代码中,我们首先定义了一个长度为N的滤波器系数数组h\[\],并且生成了一个长度为M的正弦波输入信号数组x\[\]。然后,我们进行FIR滤波器处理过程,即对每个时刻n,将输入信号在时域上和滤波器系数进行卷积操作得到输出信号y\[n\]。最后,我们输出滤波结果。\[2\]\[3\] #### 引用[.reference_title] - *1* [C语言编写FIR数字低通滤波器](https://blog.csdn.net/u012746607/article/details/70045508)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [用C语言实现一个FIR低通滤波器算法](https://blog.csdn.net/xinbo7077/article/details/130875988)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值