- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言写fir低通滤波器.doc
根据fir滤波器的公式y n ∑h m x n-m ; m: 0~ N-1 .利用MATLAB产生滤波器系数(h(n))并归一化,下面为一个LP滤波算法
void filter void uint16 i,j;
fp32 sum;
int16 x1[2030];
fp32 h[19] -0.0027, -0.0025, 0.0050, 0.0157, -0.0000, -0.0471, -0.0482, 0.0838, 0.2953, 0.4013, 0.2953, 0.0838, -0.0482, -0.0471, -0.0000,0.0157, 0.0050, -0.0025, -0.0027 ;
for i 0;i 2020;i++
x1[i] data0[i];
for i 0;i 2020;i++ sum 0.0;
for j 0;j 19;j++ if i j sum+ h[j]*x1[i-j]; else ; data0[i] int16 sum; for i 0;i 2000;i++ data0[i] data0[i+20]; 考虑到前19个点为不完全累加和,故抛去前19个点。(应该是前后各18个点都是不完全累加和,都应该去掉,对于数据分段进入滤波器的情况,应该把前一段的后面数据放到下一段的前面,这段时间我在解调FSK时遇到了这个问题,通过滤波器的数据的分段处理。)
设输入数据x[N],输出数据y[N],滤波器系数h[n]
1.直接法 由y m h 0 *x m +h 1 *x m-1 +...+h N-1 *x m-n-1 ;
void fir short x[], short h[], short y[] int i,j;
long long sum; for j 0; j N; j++ sum 0; for i 0; i n; i++ sum + x[j-i] * h[i]; y[j] sum 15; 乘法器使用次数:N*n
2.逆推法:
void fir short x[], short h[], short y[] int i,j;
long sum; for j 0; j n; j++ for i 0; i N; i++ sum 0; sum h[j] * x[i] y[i] + sum 15; 乘法器使用次数:N*n
3.倒序法:(输入输出可以是同一量)
void fir short x[], short h[], short y[] int i,j;
long long sum; for j N; j 0; j-- sum 0; for i n; i 0; i-- sum + x[j-i] * h[i]; y[j] sum 15; #include
#include
#define true 1
#define false 0
#define n 8
#define bufsize 100 /* the buffer size is 100 */
/* global declarations */
int in_buffer[bufsize]; /* processing data buffers */
int out_buffer[bufsize];
/* functions */
static int processing int *input, int *output ;
static void dataio void ;
static long round long a ;
void main int *input in_buffer[0]; int *output out_buffer[0]; puts the 1st experiment started\n ; /* loop forever */ while true /* * read input data using a probe-point connected to a host file. * write output data to a graph connected through a probe-point. */ // read the input signal. // if the input file is sine1.dat, the signal contains 300hz,400hz and 500hz. // if the input file is sine2.dat, the signal contains 1
文档评论(0)