紧急求助:巴特沃斯滤波器的原理与应用 的毕业设计要写哪些内容呢?拜谢各位啦,真是无从下手

紧急求助:巴特沃斯滤波器的原理与应用 的毕业设计要写哪些内容呢?拜谢各位啦,真是无从下手,第1张

  滤波器是一种选频装置,可以使信号中特定的频率成分通过,而极大地衰减其它频率成分。在测试装置中,利用滤波器的这种选频作用,可以滤除干扰噪声或进行频谱分析。

  广义地讲,任何一种信息传输的通道(媒质)都可视为是一种滤波器。因为,任何装置的响应特性都是激励频率的函数,都可用频域函数描述其传输特性。因此,构成测试系统的任何一个环节,诸如机械系统、电气网络、仪器仪表甚至连接导线等等,都将在一定频率范围内,按其频域特性,对所通过的信号进行变换与处理。

  本节所述内容属于模拟滤波范围。主要介绍模拟滤波器原理、种类、数学模型、主要参数、RC滤波器设计。尽管数字滤波技术已得到广泛应用,但模拟滤波在自动检测、自动控制以及电子测量仪器中仍被广泛应用。 带通滤波器

  二、滤波器分类

  ⒈根据滤波器的选频作用分类

  ⑴ 低通滤波器

  从0~f2频率之间,幅频特性平直,它可以使信号中低于f2的频率成分几乎不受衰减地通过,而高于f2的频率成分受到极大地衰减。

  ⑵ 高通滤波器

  与低通滤波相反,从频率f1~∞,其幅频特性平直。它使信号中高于f1的频率成分几乎不受衰减地通过,而低于f1的频率成分将受到极大地衰减。

  ⑶ 带通滤波器

  它的通频带在f1~f2之间。它使信号中高于f1而低于f2的频率成分可以不受衰减地通过,而其它成分受到衰减。

  ⑷ 带阻滤波器

  与带通滤波相反,阻带在频率f1~f2之间。它使信号中高于f1而低于f2的频率成分受到衰减,其余频率成分的信号几乎不受衰减地通过

  低通滤波器和高通滤波器是滤波器的两种最基本的形式,其它的滤波器都可以分解为这两种类型的滤波器,例如:低通滤波器与高通滤波器的串联为带通滤波器,低通滤波器与高通滤波器的并联为带阻滤波器。

  低通滤波器与高通滤波器的串联

  低通滤波器与高通滤波器的并联

  ⒉ 根据“最佳逼近特性”标准分类

  ⑴ 巴特沃斯滤波器

  从幅频特性提出要求,而不考虑相频特性。巴特沃斯滤波器具有最大平坦幅度特性,其幅频响应表达式为:

  ⑵ 切比雪夫滤波器

  切贝雪夫滤波器也是从幅频特性方面提出逼近要求的,其幅频响应表达式为:

  ε是决定通带波纹大小的系数,波纹的产生是由于实际滤波网络中含有电抗元件;Tn是第一类切贝雪夫多项式。

  与巴特沃斯逼近特性相比较,这种特性虽然在通带内有起伏,但对同样的n值在进入阻带以后衰减更陡峭,更接近理想情况。ε值越小,通带起伏越小,截止频率点衰减的分贝值也越小,但进入阻带后衰减特性变化缓慢。切贝雪夫滤波器与巴特沃斯滤波器进行比较,切贝雪夫滤波器的通带有波纹,过渡带轻陡直,因此,在不允许通带内有纹波的情况下,巴特沃斯型更可取;从相频响应来看,巴特沃斯型要优于切贝雪夫型,通过上面二图比较可以看出,前者的相频响应更接近于直线。

  ⑶ 贝塞尔滤波器

  只满足相频特性而不关心幅频特性。贝塞尔滤波器又称最平时延或恒时延滤波器。其相移和频率成正比,即为一线性关系。但是由于它的幅频特性欠佳,而往往限制了它的应用。

  二、理想滤波器

  理想滤波器是指能使通带内信号的幅值和相位都不失真,阻带内的频率成分都衰减为零的滤波器,其通带和阻带之间有明显的分界线。也就是说,理想滤波器在通带内的幅频特性应为常数,相频特性的斜率为常值;在通带外的幅频特性应为零。

  理想低通滤波器的频率响应函数为:

  其幅频及相频特性曲线为:

  分析上式所表示的频率特性可知,该滤波器在时域内的脉冲响应函数 h(t)为 sinc函数,图形如下图所示。脉冲响应的波形沿横坐标左、右无限延伸,从图中可以看出,在t=0时刻单位脉冲输入滤波器之前,即在t0时,滤波器就已经有响应了。显然,这是一种非因果关系,在物理上是不能实现的。这说明在截止频率处呈现直角锐变的幅频特性,或者说在频域内用矩形窗函数描述的理想滤波器是不可能存在的。实际滤波器的频域图形不会在某个频率上完全截止,而会逐渐衰减并延伸到∞。

  三、实际滤波器

  ⒈ 实际滤波器的基本参数

  理想滤波器是不存在的,在实际滤波器的幅频特性图中,通带和阻带之间应没有严格的界限。在通带和阻带之间存在一个过渡带。在过渡带内的频率成分不会被完全抑制,只会受到不同程度的衰减。当然,希望过渡带越窄越好,也就是希望对通带外的频率成分衰减得越快、越多越好。因此,在设计实际滤波器时,总是通过各种方法使其尽量逼近理想滤波器。

  如图所示为理想带通(虚线)和实际带通(实线)滤波器的幅频特性。由图中可见,理想滤波器的特性只需用截止频率描述,而实际滤波器的特性曲线无明显的转折点,两截止频率之间的幅频特性也非常数,故需用更多参数来描述。

  ⑴ 纹波幅度d

  在一定频率范围内,实际滤波器的幅频特性可能呈波纹变化,其波动幅度d与幅频特性的平均值A0相比,越小越好,一般应远小于-3dB。

  ⑵ 截止频率fc

  幅频特性值等于0707A0所对应的频率称为滤波器的截止频率。以A0为参考值,0707A0对应于-3dB点,即相对于A0衰减3dB。若以信号的幅值平方表示信号功率,则所对应的点正好是半功率点。

  ⑶ 带宽B和品质因数Q值

  上下两截止频率之间的频率范围称为滤波器带宽,或-3dB带宽,单位为Hz。带宽决定着滤波器分离信号中相邻频率成分的能力——频率分辨力。在电工学中,通常用Q代表谐振回路的品质因数。在二阶振荡环节中,Q值相当于谐振点的幅值增益系数, Q=1/2ξ(ξ——阻尼率)。对于带通滤波器,通常把中心频率f0( )和带宽 B之比称为滤波器的品质因数Q。例如一个中心频率为500Hz的滤波器,若其中-3dB带宽为10Hz,则称其Q值为50。Q值越大,表明滤波器频率分辨力越高。

  ⑷ 倍频程选择性W

  在两截止频率外侧,实际滤波器有一个过渡带,这个过渡带的幅频曲线倾斜程度表明了幅频特性衰减的快慢,它决定着滤波器对带宽外频率成分衰阻的能力。通常用倍频程选择性来表征。所谓倍频程选择性,是指在上截止频率fc2与 2fc2之间,或者在下截止频率fc1与fc1/2之间幅频特性的衰减值,即频率变化一个倍频程时的衰减量

  或

  倍频程衰减量以dB/oct表示(octave,倍频程)。显然,衰减越快(即W值越大),滤波器的选择性越好。对于远离截止频率的衰减率也可用10倍频程衰减数表示之。即〔dB/10oct〕。

  ⑸ 滤波器因数(或矩形系数)

  滤波器因数是滤波器选择性的另一种表示方式 ,它是利用滤波器幅频特性的 -60dB带宽与-3dB带宽的比值来衡量滤波器选择性,记作 ,即

  理想滤波器 =1,常用滤波器 =1-5,显然, 越接近于1,滤波器选择性越好。

 

能实行,c语言不能显示图像,但是你要懂得如何用c调用matlab,过程比较复杂,这个程序任何参数都可以用,不限制

 

 

 

#include<engineh>

#include<mathh>

#include<stdioh>

#include<stdlibh>

#include<stringh>

 

double calcN(double fp,double ap, double fs, double as)

{

double i = pow(10,(as/10)) - 1;

double tmp = ap/10;

double j = pow(10,tmp) - 1; 

double k = log10((i/j));

double t = log10(fs/fp);

double N = 05k/t + 1;

 

 

return N;

};

 

int main(void)

{

 

int fp,ap,fs,as;

printf("请输入fp:");

scanf("%d", &fp);

 

printf("请输入ap:");

scanf("%d", &ap);

 

printf("请输入fs:");

scanf("%d", &fs);

 

printf("请输入as:");

scanf("%d", &as);

 

int f = calcN(fp, ap, fs, as);

 

printf("N=%d\n",f); 

 

char lin[40];

char str = "N=\0";

lin[0]='\0';

char in[4];

itoa(f,in,10);

 

strcat(lin,str);

strcat(lin,in);

strcat(lin, ";"); 

///////////////////////////////////////////////////////////

Engine ep;

if(!(ep = engOpen(NULL)))

{

printf("open failed! please try again\n");

}

 

engSetVisible(ep, 0);

//mxArray xx = mxCreateDoubleMatrix(1,N,mxREAL);

// mxArray yy = mxCreateDoubleMatrix(1,N,mxREAL);

 

// memcpy(mxGetPr(xx),Nsizeof(double));

// memcpy(mxGetPr(yy),Nsizeof(double));

 

// engPutVariable(ep,"xx",xx);

//engPutVariable(ep,"yy",yy);

engEvalString(ep, "n=0:001:2;");

engEvalString(ep, lin);

engEvalString(ep, "[z,p,k]=buttap(N);");

engEvalString(ep, "[b,a]=zp2tf(z,p,k);");

engEvalString(ep, "[H,w]=freqs(b,a,n);");

engEvalString(ep, "magH=(abs(H))^2;");

engEvalString(ep, "plot(w,magH);");

engEvalString(ep, "axis([0 2 0 1])");

engEvalString(ep, "xlabel('w/wc');");

engEvalString(ep, "ylabel('|H(jw)|^2');");

engEvalString(ep, "title('Butterworth analog filter prototype');");

engEvalString(ep, "grid;");

getchar(); 

//mxDestroyArray(xx);

// mxDestroyArray(yy);

 

// engClose(ep);

return 0;

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/12176694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存