#include"math.h"
void firwin(n,band,fln,fhn,wn,h)
int n,band,wn;
double fln,fhn,h[];
double window();
beta=0.0;
scanf("&",beta);
}
mid=1;
else
mid=0;
switch(band)
{case 1:
{s=i-delay;
h[i]=(sin(wc1*s)/(pi*s))*window(wn,n+1,i,beta);
h[n-i]=h[i];
break;
h[i]=(sin(pi*s)-sin(wc1*s))/(pi*s);
h[i]=h[i]*window(wn,n+1,i,beta);
static double window(type,n,i,beta)
int i,n,type;
double beta;
{int k;
double pi,w;
double kaiser();
w=1.0;
switch(type)
{w=1.0;
if(i=k)
{w=kaiser(i,n,beta);
return(w);
static double kaiser(i,n,beta)
int i,n;
{
double bessel0();
b1=bessel0(beta);
static double bessel0(x)
double x;
{int i;
d=1.0;
sum=1.0;
{d=d*y/i;
return(sum);
这是窗函数法的,当然还有其他的比如切比雪夫,零相位滤波什么的,我也在研究,不是很懂哈
C语言啊.窗函数,频域最小误差分析,切比雪夫还有零相位滤波.你要代码的话我可以给你,但是零相位滤波我还不太清楚,好像要经过傅里叶变换和时间反转什么的,很复杂啊,我也正在弄,希望我们可以一起解决.
其实很简单的,先用matlab实现切比雪夫滤波器
得到转移函数的分子与分母多项式后,
再按照数字信号处理的公式用C语言来实现吧
以上就是土嘎嘎小编为大家整理的C语言切比雪夫窗函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!