精华内容
下载资源
问答
  • 二阶有源带通滤波器设计及参数计算,有详细的计算过程,应用在全国大学生电子设计竞赛的综合测评里,提取基波,三次谐波,五次谐波
  • 二阶有源带通滤波器参数计算设计
  • 摘要:传统的带通滤波器设计方法中涉及了很多复杂的理论分析和计算.针对上述缺点,介绍一种使用EDA软件进行带通滤波器的设计方案,详细阐述了使用FilterPro软件进行有源带通滤波器电路的设计步骤,然后给出了在...
  • 二阶巴特沃斯带通滤波器仿真电路图,二阶巴特沃斯带通滤波器仿真电路图
  • 滤波器在电子线路中用得特别多,通信电路更是多如牛毛。这是一个关于二阶有源带通滤波器设计及参数计算的资料。希望对大家有用。
  • 导读: 要设计一个滤波器,首先要分析滤波器的技术指标,选择合适的滤波器形式,确定滤波器的级数,分析滤波器的带外特性以及通带特性,估算滤波器中心衰减和带外抑制的大小,对滤波器进行合理的设计与计算,最后要...
  • 喜欢就本文就点个赞吧~~版权...今天就来个一步一步描述如何设计部署一个IIR滤波器到你的系统。写这篇文章考虑到很多粉丝是做单片机系统开发的,经常会需要采集模拟信号,系统中往往存在各种各样的干扰,干扰常常让...

    33eeafbe7baabafe32e3432fbe57ef1f.png

    喜欢就本文就点个赞吧~~

    版权声明:所有文章版权归嵌入式客栈所有,如商业使用,须嵌入式客栈授权。欢迎关注微信公众号,内容更丰富。

    275e39a195d4116df65dc274b5ddc883.png

    【导读】:在嵌入式系统中经常需要采集模拟信号,采集模拟信号的信号链中难免引入干扰,那么如何滤除干扰呢?今天就来个一步一步描述如何设计部署一个IIR滤波器到你的系统。写这篇文章考虑到很多粉丝是做单片机系统开发的,经常会需要采集模拟信号,系统中往往存在各种各样的干扰,干扰常常让人一筹莫展,所以花了一周时间整理出IIR滤波器设计部署的干货文章,照此一步一步做,你必会解决大部分干扰问题。

    编外语:文章写作过程虽谈不上呕心沥血,但也可算绞尽脑汁。在此也呼吁粉丝朋友积极参与互动,或点在看,或分享,或留言评论!如果大家对此类话题感兴趣,我会写出系列信号处理文章以答谢各位的厚爱,如果大家对此类话题不感兴趣,就不在花过多时间整理发布了。在此感谢各位关注厚爱

    何为IIR滤波器?

    无限冲激响应(IIRInfinite Impulse Response)是一种适用于许多线性时不变系统的属性,这些系统的特征是具有一个冲激响应h(t),该冲激响应h(t)不会在特定点上完全变为零,而是无限期地持续。这与有限冲激响应(FIRFinite Impulse Response)系统形成对比,在有限冲激响应(FIR)系统中,对于某个有限T,在时间t> T时,冲激响应确实恰好变为零。线性时不变系统的常见示例是大多数电子和数字滤波器。具有此属性的系统称为IIR系统或IIR滤波器。对于什么叫冲激响应,这里就不展开解释了,有兴趣的可以查阅相关书籍。

    这是常见的教科书式数学严谨定义,很多人看到这一下就蒙了,能说人话吗?

    线性时不变系统理论俗称LTI系统理论,源自应用数学,直接在核磁共振频谱学、地震学、电路、信号处理和控制理论等技术领域运用。它研究的是线性、非时变系统对任意输入信号的响应。虽然这些系统的轨迹通常会随时间变化(例如声学波形)来测量和跟踪,但是应用到图像处理和场论时,LTI系统在空间维度上也有轨迹。因此,这些系统也被称为线性非时变平移,在最一般的范围理论给出此理论。在离散(即采样)系统中对应的术语是线性非时变平移系统。由电阻、电容、电感组成的电路是LTI系统的一个很好的例子。比如一个运放系统在一定频带范围内满足信号的时域叠加,输入一个100Hz和200Hz正弦信号,输出频率是这两种信号的线性叠加。

    用数学对LTI系统描述:

    线性:输入x1(t),产生响应 y1(t),而输入x2(t),产生相应y2(t) , 那么放缩和加和输入 ax1(t)+bx1(t), 产生放缩、加和的响应ay1(t)+by1(t),其中a和b是标量,对于任意的有:

    输入

    095e2ed9b0b116e9d08e18f0e678f98a.png

    产生响应为:

    702089b4ab1c0b88fda25178b741125e.png

    时不变性:指如果将系统的输入信号延迟δ秒,那么得到的输出响应也相应延时δ秒。用数学描述,也即如果输入x1(t),产生响应y1(t) ,而输入x1(t+δ) ,产生响应 y1(t+δ)。
    这么描述还是不易懂,来个图,有图有真相:

    ebf3cb5b2afc8f47457927b5eb441a67.png

    假定一个信号放大电路对100Hz正弦信号放大2倍:则输出为:

    f75284768c09a26c340ae9ad1b6c6fcc.png

    而对200Hz的正弦信号,假定其放大倍数为1.7倍。(做过运放电路设计的朋友应该有经验,在其同频带其放大倍数往往并不平坦,也即幅频响应在频带内不平坦,这是比较常见的)。也即输入为:

    8dabb71232e2a221b6af49848adc0036.png

    则输出波形为:

    68410d1898a43b8570b1a36553b9a0e0.png

    那么如果输入100Hz和200Hz的时域叠加信号,则其输入为:

    e7cde4d713a1a1ef772c6890715c0881.png

    则其响应为:

    6471f6176549acd9a53692c83de15644.png

    上面这么多文字只是为了描述在什么场合可以使用IIR滤波器对信号进行数字滤波。总结而言,就是在线性时不变系统中适用。换言之,在大多数电路系统中我们都可以尝试采用IIR滤波器进行数字滤波。

    那么究竟什么是IIR滤波器呢?从数字信号处理的书籍中我们能看到这样的Z变换信号流图:

    50cc5729ed275caf5dce9c1be724ee87.png

    Z的-1次方表示延迟一拍,在数字系统中表示对于输入信号而言,即为上一次采样值,对于输出而言,即为上一次的输出值。

    在时域中对于上述流图,用时域描述即为:

    1307f7fe27ffd709d3d5b7b565ed6bfd.png

    上述数字滤波器,如果从编程的角度来看,x(n-1),表示上一次的信号,可能是来

    如果熟悉Z变换,则Z变换传递函数为:

    0bd3e892bbf41962a074e81b375a89be.png

    上述数字滤波器,如果从编程的角度来看,x(n-1),表示上一次的信号,可能是来自ADC的上次采样,而y(n-1)则为上一次滤波器的输出值,对应就比较好理解x(n-N)就表示前第n次输入样本信号,而y(n-M)则为前第M次滤波器的输出。

    说了这么多,只是为了更好的理解概念,只有概念理解正确,才能使用正确。概念理解这对工程师而言,非常之重要。

    如何设计呢?

    MATLAB提供了非常容易使用的FDATool帮助我们设计数字滤波器,真正精彩的地方开始了,让我们拭目以待究竟如何一步一步设计并实施一个IIR滤波器。首先打开MATLAB,在命令行中敲fdatool,然后敲回车

    23ee6fea24d33fd6d2862568c636ad21.png

    弹出窗体就是fdatool了,如下:

    f79d65c709951481f52a2e0ffd9590b7.png

    在设计具体,有几个相关概念需要澄清:Fs:采样率,单位为Hz,真实部署在系统中,请务必确保样本是按照恒定采样率进行采样,否则将得不到想要的效果。Fpass: 通频带,单位为Hz,即系统中期望通过的最高频率。Fstop: 截至频率,即幅频响应的-3dB处的频率,这个如不理解,请自行查阅相关书籍。分贝dB: 这是一个无单位反应输出与输入倍数的一个术语。电学中分贝与放大倍数的转换关系为:

    • A(V)(dB)=20lg(Vo/Vi);电压增益,Vo 为输出电压,Vi为输入电压
    • A(I)(dB)=20lg(Io/Ii);电流增益,Io 为输出电流,Ii为输入电流
    • A(p)(dB)=10lg(Po/Pi);功率增益,Po 为输出功率,Pi为输入功率

    滤波器类型:这里有Butterworth(巴特沃斯)、Chebyshev Type I,Chebyshev Type II、(切比雪夫)、Elipic 等可选。

    3141e18a3bfa4d8ffa5b2ea86f792120.png
    • 巴特沃斯 Butterworth,也被称作最大平坦滤波器。巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有纹波。
    • 切比雪夫 Chebyshev,是在通带或阻带上频率响应幅度等波纹波动的滤波器。切比雪夫滤波器在过渡带比巴特沃斯滤波器的衰减快,但频率响应的幅频特性不如后者平坦。
    • 椭圆 Elliptic,椭圆滤波器是在通带和阻带等波纹的一种滤波器。
    • …这里就不一一介绍了,有兴趣可以去查信号处理书籍。

    就其特点,这里对其中几种略作介绍:

    • 巴特沃斯具有最平坦的通带。
    • 椭圆滤波器衰减最快,但是通带、阻带都有波纹。
    • 切比雪夫滤波器衰减比巴特沃斯快,但比椭圆滤波器慢,波纹区域可选择。

    假设我们需要设计一个IIR滤波器,采样率为32000Hz, 有用信号频率在10000Hz内,设计IIR滤波器对信号进行数字滤波。这里为节省算力,我们指定滤波器的阶数,也即传递函数中N/M中的最大值,一般而言N大于M。

    这里指定阶数为8阶,类型指定为巴特沃斯型IIR滤波器,输入阶数8阶,采样率32000Hz,然后点击Design Filter如下图所示:

    f51434539a78a91e91a98f9e709a89af.png

    其相频响应曲线如下:

    21087923a49295224dc9184ab7d6b181.png

    除此之外,我们还可以将幅频与相频曲线放在一个频率坐标上去看设计结果:

    010b21fd498197ea8da63c75fb838530.png

    导出滤波器参数,这里我们选择,然后就得到了一个文件,保存2KHz_LPF.fcf,文件名随你喜欢。

    a1b1371892c15c4891eadf524e0a8881.png

    215a9c25e2d962a9788e897d451eef4a.png

    文件内容如下:

    % Generated by MATLAB(R) 8.4 and the Signal Processing Toolbox 6.22.
    % Generated on: 27-Mar-2020 21:27:06
    
    % Coefficient Format: Decimal
    
    % Discrete-Time IIR Filter (real)                            
    % -------------------------------                            
    % Filter Structure    : Direct-Form II, Second-Order Sections
    % Number of Sections  : 4                                    
    % Stable              : Yes                                  
    % Linear Phase        : No                                   
    
    
    SOS Matrix:                                                  
    1  2  1  1  -1.7193929141691948  0.8610574795347461          
    1  2  1  1  -1.5237898734101736  0.64933827386370635         
    1  2  1  1  -1.4017399331200424  0.51723237044751591         
    1  2  1  1  -1.3435020629061745  0.45419615396638446         
    
    Scale Values:                                                
    0.035416141341387819                                         
    0.031387100113383172                                         
    0.028873109331868367                                         
    0.027673522765052503                                          

    至此设计工作就结束了,马上进入滤波器的部署测试阶段。

    这里有个概念需要略作解释:什么叫直接II型 SOS 二阶块

    9e6ce247b268d4cb647453d39b10e134.png

    所谓直接II型,SOS(second order section)理解很简单,本质是将IIR Z传递函数分解为上述二阶块的级联形式。

    部署测试滤波器

    到这里,没有经验的朋友可能会说,这么一堆参数我该咋用呢?

    需要自己去写前面描述的计算公式吗?当然你也可以这么做,这里就不写了,ARM的CMSIS库已经帮大家设计好了种类繁多的数字信号处理函数实现了,而且经过了测试,这里直接拿来用即可。有兴趣自己写也不难,只要理解Z传递函数概念内涵,非常容易实现。这里我们采用32位浮点实现函数:

    arm_biquad_cascade_df1_f32。该函数位于:

    CMSISDSPSourceFilteringFunctionsarm_biquad_cascade_df1_init_f32.c中

    以及CMSISDSPSourceFilteringFunctionsarm_biquad_cascade_df1_f32.c

    我们来看一看这个函数:

    arm_biquad_cascade_df1_init_f32.c:

    /*
    

    arm_math.h 定义了须用到的结构体,对于本例相关的结构体为arm_biquad_casd_df1_inst_f32

    typedef 

    滤波器具体滤波函数为arm_biquad_cascade_df1_f32

    /**
    

    开始测试:

    #include 

    利用csv文件,将模拟数据存储,直接用excel打开,将行数据生成曲线图如下:

    b8dd015e593bb568310e81898ae3bf8a.png

    670e133c038f60d9796b07e22761ae1a.png

    304e88cc76a4b4d8a5ffe092c576e067.png

    bd7ac49c1f10cbc9762f5d19834d4201.png

    7a4bd839e4cc91df52bd06c2e425cc3a.png
    • 第一幅图,为800Hz信号混入随机噪声的波形
    • 第二幅图,为4000Hz信号,对假定系统为无用干扰信号
    • 第三幅图, 为800Hz 混入随机噪声过滤后,已经很好的还原有用信号频率
    • 第四幅图, 为800Hz信号混入随机噪声,同时叠加4000Hz干扰的波形,对系统而言,从时域中,明显可见,有用信号已经完全扭曲
    • 第五幅图,为800Hz信号混入随机噪声,同时叠加4000Hz干扰的输入,经过该低通滤波器后的波形,与第三幅图基本一样,已经非常好的滤除了干扰信号。

    总结

    • IIR滤波器在线性时不变系统中可以很好的解决工程中一般噪声问题
    • 如果需要设计带通、高通滤波器其步骤基本类似,只是滤波器的参数以及SOS块个数可能不一样而已
    • 需要提醒的时,IIR的相频响应不线性,如果系统对相频响应有严格要求,就需要采用其他的数字滤波器拓扑形式了
    • 实际应用中,如果阶数不高时,现在算力强劲的单片机或者DSP以及可以直接使用浮点处理。
    • 如果对处理速度有严格的实时要求,需要在极短时间进行滤波处理,可以考虑降低阶数,或采用定点IIR滤波算法实现。也或者将文中函数进行汇编级优化。

    版权声明:所有文章版权归嵌入式客栈所有,如商业使用,须嵌入式客栈授权。

    如喜欢本文就点个关注,或者微信扫一扫,关注公众号

    275e39a195d4116df65dc274b5ddc883.png
    展开全文
  • 设计一个滤波器,首先要分析滤波器的技术指标,选择合适的滤波器形式,确定滤波器的级数,分析滤波器的带外特性以及通带特性,估算滤波器中心衰减和带外抑制的大小,对滤波器进行合理的设计与计算,最后要对滤波器...
  • 利用高通、低通滤波器级联可以实现宽带带通滤波器,利用此方法设计了一个工作频段在100~400 MHz 的LC宽带带通滤波器。将所设计的截止频率为100 MHz的高通滤波器HPF以及截止频率为400 MHz的低通滤波器 LPF级联实现...
  • 传统的带通滤波器设计方法中涉及了很多复杂的理论分析和计算。针对上述缺点,介绍一种使用EDA软件进行带通滤波器的设计方案,详细阐述了使用FilterPro软件进行有源带通滤波器电路的设计步骤,然后给出了在Proteus中...

    带通滤波器电路图设计(一)

    传统的带通滤波器设计方法中涉及了很多复杂的理论分析和计算。针对上述缺点,介绍一种使用EDA软件进行带通滤波器的设计方案,详细阐述了使用FilterPro软件进行有源带通滤波器电路的设计步骤,然后给出了在Proteus中对所设计的滤波器进行仿真分析和测试的方法。测试结果表明,使用该方法设计的带通滤波器具有性能稳定。设计难度小等优点,也为滤波器的设计提供了一个新的思路。

    带通滤波器是一种仅允许特定频率通过,同时对其余频率的信号进行有效抑制的电路。由于它对信号具有选择性,故而被广泛地应用现在电子设计中。但是,带通滤波器的种类繁多,各个类型的设计差异也很大,这就导致了在传统滤波器的设计方法中不可避免地要进行大量的理论计算与分析,不但损失了宝贵的时间,同时也提升了电路的设计门槛。为了解决上述弊端,本文介绍了一种使用FilterPro和Proteus相结合的有源带通滤波器的设计方案,随着EDA技术的不断发展,这种方法的优势也将越来越明显。

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    图1  使用理想运放的带通滤波器

    电路原理图如图1所示。然后可在Proteus中搭建电路进行仿真分析,前面已经提到,FilterPro生成的滤波器中的运放使用的理想运放模型,所以仿真时需要先用理想运放进行分析,然后再进行替换。

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    图2  实际搭建的滤波器电路

    设计中运放选择TI产品典型的通用双放LM358,LM358里面包括两个高增益、独立的、内部频率补偿的双运放,适用于电压范围很宽的单电源,而且也适用于双电源工作方式,特点方面具有低输入偏置电流、低输入失调电压和失调电流,它的共模输入电压范围较宽,差模输入电压范围等于电源电压范围,单电源供电电压3-32V,双电源供电±1.5-±16V,单位增益带宽为1MHz,适用于一般的带通滤波器的设计,同时具有低功耗的功能,对于设计阶数相对高一些的带通滤波器的话,可以选用TI的四运放LM324,其性能与LM358大体相同,应用起来节省空间。对于运放的要求此设计不是特别高,只要运放的频率满足低通的截止频率即可,如果精确度要求高的话那么首先运放的供电电压要足够稳定,或者选择精密运放,如TLC274A,否则通用的即可,例如推荐TI的LM224四运放。

    巴特沃斯带通滤波器幅频响应在通带中具有最平幅度特性,但是从通带到阻带衰减较慢,如果对于过渡带要求稍高,可以增加阶数来实现,否则改选用切比雪夫滤波电路。

    下面讨论设计两种带通滤波器,其一为二阶低通滤波器和二阶高通滤波器组成的四阶带通滤波器,如下图:

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    图 3  四阶带通滤波器

     

    参数选择与计算:

    对于低通滤波器的设计,电容一般选取1000pF,对于高通滤波器的设计,电容一般选取0.1uF,然后根据公式R=1/2Πfc计算得出与电容相组合的电阻值,即得到此图中R2、R6和R7,为了消除运放的失调电流造成的误差,尽量是运放同相输入端与反向输入端对地的直流电阻基本相等,同时巴特沃斯滤波器阶数与增益有一定的关系(见表1),根据这两个条件可以列出两个等式:30=R4*R5/(R4+R5),R5=R4(A-1),36=R8*R9/(R8+R9),R8=R9(A-1)由此可以解出R4、R5、R8、R9,原则是根据现实情况稍调整电阻值保持在一定限度内即可,不要相差太大,注意频率不要超过运放的标定频率。

    表1巴特沃斯低通、高通电路阶数与增益的关系

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    其二是二阶有源带通滤波器,只用一个放大区间,如下图:

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    图4  二阶带通滤波器

    带通滤波器电路图设计(二)

    由图(1)所示带通滤波电路的幅频响应与高通、低通滤波电路的幅频响应进行比较,不难发现低通与高通滤波电路相串联如图(2),可以构成带通滤波电路,条件是低通滤波电路的截止角频率WH大于高通电路的截止角频率WL,两者覆盖的通带就提供了一个带通响应。

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    这是一个通带频率范围为100HZ-10KHZ的带通滤波电路,在通带内我们设计为单位增益。根据题意,在频率低端f=10HZ时,幅频响应至少衰减26dB。在频率高端f=100KHZ时,幅频响应要求衰减不小于16dB。因此可以选择一个二阶高通滤波电路的截止频率fH=10KHZ,一个二阶低通滤波电路的fL=100HZ,有源器件仍选择运放LF142,将这两个滤波电路串联如图所示,就构成了所要求的带通滤波电路。

     

    由巴特沃斯低通、高通电路阶数n与增益的关系知Avf1=1.586,因此,由两级串联的带通滤波电路的通带电压增益(Avf1)2=(1.586)2=2.515,由于所需要的通带增益为0dB,因此在低通滤波器输入部分加了一个由电阻R1、R2组成的分压器。

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    元件参数的选择和计算

    在选用元件时,应当考虑元件参数误差对传递函数带来的影响。现规定选择电阻值的容差为1%,电容值的容差为5%。由于每一电路包含若干电阻器和两个电容器,预计实际截止频率可能存在较大的误差(也许是+10%)。为确保在100Hz和10kHz处的衰减不大于3dB.现以额定截止频率90Hz和1kHz进行设计。

    前已指出,在运放电路中的电阻不宜选择过大或较小。一般为几千欧至几十千欧较合适。因此,选择低通级电路的电容值为1000pF,高通级电路的电容值为0.1μF,然后由式RCWC1可计算出精确的电阻值。

    对于低通级由于已知c=1000pF和fh=11kHz,由式RCWC1算得R3=14.47kΩ,先选择标准电阻值R3=14.0kΩ。对于高通级可做同样的计算。由于已知C=0.1μF和fL=90Hz,可求出R7=R8≈18kΩ。

    考虑到已知Avf1=1.586,同时尽量要使运放同相输入端和反相输入端对地的直流电阻基本相等,现选择R5=68k,R10=82k,由此可算出R4=(Avf1-1)R5≈39.8k,R9=(Avf1-1)R10≈48k,其容差为1%。

    设计完成的电路如图所示。信号源vI通过R1和R2进行衰减,它的戴维宁电阻是R1和R2的并联值,这个电阻应当等于低通级电阻R3(=14k)。因此,有

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    由于整个滤波电路通带增益是电压分压器比值和滤波器部分增益的乘积,且应等于单位增益,

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    联解式和,并选择容差为1%的额定电阻值,得R1=35.7kΩ和R2=23.2kΩ。

    带通滤波器电路图设计(三)

    实用的带通滤波器电路原理图

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    该电路在负反馈支路上是一个带阻滤波齐器,以使其只允许通过被反馈支路阻断的频率信号。

    带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

    展开全文
  • 该EXCEL表格可用于辅助带通滤波器设计。用户输入带通滤波器性能指标,表格快速给出低通原型滤波器的元件参数以及带通滤波器的归一化耦合系数、输入群时延、外部Q值等
  • 看到一个带通滤波器设计如下,开始研究是如何设计的 代码: band_low = 0.3; band_high = 1.2; fs_origin = 25; hd_band = design(fdesign.bandpass('N,F3dB1,F3dB2',4,band_low,band_high,fs_origin),'...

    写在前面的话:

    由滤波器系数得到传输函数:

    使用matlab fdatool设计滤波器,得到幅频响应,得到滤波器系数,由系数如何得到滤波器的参数?

    我的方法是 使用:点击Filt-Export to simulink Model, simulink打开后,出现了简单的滤波器或者在 simulink中设计滤波器,双击设计好的滤波器,可以参看其框图,根据框图可以将传输函数写出,即可得到滤波器的参数。

    看到一个带通滤波器的设计如下,开始研究是如何设计的

    带通滤波器设计matlab代码:

    band_low = 0.3;       
    band_high = 1.2;       
    fs_origin = 25; 
    hd_band = design(fdesign.bandpass('N,F3dB1,F3dB2',4,band_low,band_high,fs_origin),'butter'); %带通滤波器
    %fvtool(hd_band); % view
    measure(hd_band) %Measure the frequency response characteristics of the filter 
    %filtered = filter(hd_band,x);  % 滤波器的使用,输入数组x,输出数组filtered

    查看官网MathWorks,找到关于滤波器的设计design,带通滤波器的设计fdesign.bandpass

    The fdesign.bandpass function returns a bandpass filter design specification object that contains specifications for a filter such as passband frequency, stopband frequency, passband ripple, and filter order. Use the design function to design the filter from the filter design specifications object.

    本处只解析此处滤波器的设计参数,若查看更多,移至官网MathWorks

    • N:Filter order for FIR filters. Or both the numerator and denominator orders for IIR filters when Na and Nb are not provided. Specified using FilterOrder. 关于滤波其的阶数
    • F3dB1:Frequency of the 3 dB point below the passband value for the first cutoff, specified in normalized frequency units. Applies to IIR filters.
    • F3dB2:Frequency of the 3 dB point below the passband value for the second cutoff, specified in normalized frequency units. Applies to IIR filters.
    • Fs bandpassSpecs = fdesign.bandpass(___,Fs) provides the sample rate in Hz of the signal to be filtered. Fs must be specified as a scalar trailing the other numerical values provided. In this case, all frequencies in the specifications are in Hz as well. 

    上面这句话解释了传入采样频率的必要性。

    'N,F3dB1,F3dB2'butter

    以上参数的设置使用与IIR butter

    fdesign.bandpass('N,F3dB1,F3dB2',4,band_low,band_high,fs_origin)
    show:  
    bandpass (具有属性):
    
                   Response: 'Bandpass'
              Specification: 'N,F3dB1,F3dB2'
                Description: {3×1 cell}
        NormalizedFrequency: 0
                         Fs: 25
                FilterOrder: 4
                      F3dB1: 0.3000
                      F3dB2: 1.2000

    fvtool(hd_band)% 查看幅频特性

    measure(hd_band) %Measure the frequency response characteristics of the filter 

    Sample Rate             : 25 Hz       
    First Stopband Edge     : Unknown     
    First 6-dB Point        : 250.7041 mHz
    First 3-dB Point        : 300 mHz     
    First Passband Edge     : Unknown     
    Second Passband Edge    : Unknown     
    Second 3-dB Point       : 1.2 Hz      
    Second 6-dB Point       : 1.4315 Hz   
    Second Stopband Edge    : Unknown     
    First Stopband Atten.   : Unknown     
    Passband Ripple         : Unknown     
    Second Stopband Atten.  : Unknown     
    First Transition Width  : Unknown     
    Second Transition Width : Unknown  

    使用fdatool同样实现此滤波器的设计

    设计的滤波器通过File-Export导出到工作区;

    也可以在analysis中查看器信息,比如系数、幅频、相频特性。比如查看analysis中点击Filter Information中可以看到fdesign使用的内容:'N,F3dB1,F3dB2'

    完成了带通滤波器的设计,就在考虑如何转化为C语言代码,这里有个网站可以进行转化,设计滤波器转为C语言实现,但是结果并没有达到我想要的要求,我的目的是怎样将fdatool中设计的滤波器系数中得到其对应的传递函数H(Z),有了传递函数,就可以自己写C语言实现了

    在上面fdatool设计的滤波器中,两种方法查看设计的滤波器,任意一种都可以;

    1. 点击Filt-Export to simulink Model, simulink打开后,出现了简单的滤波器,
    2. 或者采用如下图操作,从左到右三个按键

       

    双击可以看到滤波器的内部结构,如图显示为两个二阶滤波器级联:

    放大其中一个滤波器如下

    简单作了标记如下

    并给出其对应的C语言实现,此代码无法直接运行只是提取了一部分带通滤波器实现部分

    /* IIR fourth-order filter coefficients */
    typedef struct 
    {
    	float(*a)[3];
    	float(*b)[3];
    	float* gain;
    } IIR_ORDER4_COEFF_T;
    
    /* Save the in-process' data of the second-order filter */
    typedef struct 
    {
    	float m1;
    	float m2;
    } FILTER_ORDER2_T;
    
    /*三轴信号处理前的滤波:四阶带通(0.3-1.2)Hz)滤波,由两个二阶滤波级联起来*/
    float a_raw[2][3] = {
    	{ 1.00, (float)-1.9175958145710057, (float)0.9246554650412394 },    //第一级二阶滤波,分母
    	{ 1.00, (float)-1.7227109782351659, (float)0.7854234338937474 }    //第二级二阶滤波,分母
    };//分母
    float b_raw[2][3] = {
    	{ 1.00, (float)0.00, (float)-1.00 },    //第一级二阶滤波,分子
    	{ 1.00, (float)0.00, (float)-1.00 }    //第二级二阶滤波,分子
    };//分子
    float gain_raw[2] = { (float)0.1048485643154691/*第一级增益*/, (float)0.1048485643154691/*第二级增益*/ };
    
    /******************************************************************************/
    /** Start, initialize the parameters
    * @param[in]
    *
    * @return
    *
    *//*
    * History        :
    * 1.Date         : 2020/8/28
    *   Author       : 
    *   Modification : Created function
    
    *******************************************************************************/
    void StartSwim(void) 
    {
    	/* signal filter parameter initialization */
    	IIR_Raw.a = a_raw;
    	IIR_Raw.b = b_raw;
    	IIR_Raw.gain = gain_raw;
    }
    
    /*
    x: input
    m1:保存中间滤波器数据
    m2:保存中间滤波器数据
    a:滤波器系数
    b:滤波器系数
    gain:增益,对于只支持定点小数运算的,需要把增益分配到每个二阶IIR滤波器的系数中,使得每次中间的结果都不溢出,即使其频率响应的最大值最接近0dB
    */
    float filterOrder2(float* x, float* m_1, float* m_2, float* a, float* b, float* gain){
    	float y, m;
    	//计算没有增益的滤波输出,存于y_
    	m = *x - a[1] * *m_1 - a[2] * *m_2;    //求当前m,同时作为求y_的中间步骤
    	y = m + b[1] * *m_1 + b[2] * *m_2;
    	//更新*m_1和*m_2
    	*m_2 = *m_1;
    	*m_1 = m;
    	//返回带增益的滤波输出
    	return y* *gain;
    }
    
    /******************************************************************************/
    /** filter: Fourth-order filter, direct type II
    * @param[in]
    * filter_state	:Store the middle state of the filter
    * @return
    *
    *//*
    * History        :
    * 1.Date         : 2020/8/28
    *   Author       : 
    *   Modification : Created function
    
    *******************************************************************************/
    float FilterOrder4(float data, FILTER_ORDER4_T* filter_state, IIR_ORDER4_COEFF_T* IIR_coeffs)
    {
    	float data_filtered;
    
    	filter_state->first_order2_out = filterOrder2(&data, &filter_state->first_order2.m1, &filter_state->first_order2.m2, IIR_coeffs->a[0], IIR_coeffs->b[0], IIR_coeffs->gain);  //第一级二阶滤波
    	data_filtered = filterOrder2(&filter_state->first_order2_out, &filter_state->second_order2.m1, &filter_state->second_order2.m2, IIR_coeffs->a[1], IIR_coeffs->b[1], &IIR_coeffs->gain[1]);  //第二级二阶滤波
    	
    	return data_filtered;
    }
    
    /******************************************************************************/
    /** Band-pass filtering for the norm data: 0.25-2Hz
    * @param[in] x:norm data
    *
    * @return filtered data
    *
    *//*
    * History        :
    * 1.Date         : 2020/8/28
    *   Author       : 
    *   Modification : Created function
    
    *******************************************************************************/
    float BandFilter(float x)
    {
    	float y = FilterOrder4(x, &xyz_filter, &IIR_vec);
    
    	return y;
    }

    关于fdatool设计的带通滤波器的系数使用

    使用Matlab的FDAtool工具可以很方便地设计IIR滤波器。使用File菜单中的export选项可以把滤波器的参数输出到Matlab的工作空间中。若滤波器为IIR型,则输出的变量名为G和SOS。它把高阶的IIR滤波器转换为一系列二阶IIR滤波器的级联。SOS为二阶IIR滤波器的系数(b,a),G为各级的增益系数,可用来调节各级通带的衰减。计算IIR滤波器的输出的时候,先将输入数据乘以G, 然后一一通过SOS中的每个IIR滤波器,就得到最终的结果了。

    SOS的每一行表示一级二阶IIR滤波器系[b0,b1,b2,a0,a1,a2],G的每个元素表示相应级的增益系数。也即将G乘上SOS的b0,b1,b2。得到一组新的滤波器系数SOS',可调用MATLAB滤波函数sosfilt对输入信号进行滤波。

    但是如果二阶IIR滤波器的程序只支持定点小数运算的话,那么就需要调整一下系数了。因为设计出来的G有时候很小(不知道会不会很大),这样一旦把输入数据乘以G后,就会使得二阶IIR滤波器的输入过小,造成很大的误差。我们需要把G分配到每个二阶IIR滤波器的系数中,使得每次得到的中间结果都刚好不会溢出。若以IIRi表示第i个二阶IIR滤波器的话,则我们需要保证IIR1, IIR1 * IIR2, IIR1 * IIR2 * IIR3, … 的频率响应都不超过0dB,*号表示级联。为了使得输出的精度最好,我们还需要让上面这些滤波器的频率响应中的最大值最接近0dB。

    级联型:将系统传递函数H(z)因式分解为多个二阶子系统,系统函数就可以表示为这些二阶子系统传递函数的乘积。实现时将每个二阶子系统用直接型实现,整个系统函数用二阶环节的级联实现。

    高阶IIR滤波器的实现是采用二阶滤波器级联的方式来实现的。默认情况下,Filter Coefficients把结果分成多个2阶Section显示,其中还有增益。增益的目的是为了保证计算的精度和系统的稳定性。

     

    简单介绍低通滤波器的使用,其函数参考fdesign官网

    如下

    简单设计了低通滤波

    %% 低通滤波
    function filtered = LowFilter(x)
    fs_origin=1;
    fc=0.03;
    N=4;
    hd_low = design(fdesign.lowpass('N,F3dB',N,fc, fs_origin),'butter');
    filtered = filter(hd_low,x); 
    end

    ..

     

    展开全文
  • 引言  滤波器的基础是谐振电路,它是一个二端口网络,对通带内的频率信号呈现匹配传输,对阻带频率信号失配而进行发射衰减... 在以往设计各种滤波器时,往往需要根据大量复杂的经验公式计算及查表来确定滤波器的各级
  • hfss 基于HFSS的带通滤波器设计论文
  • 二阶带通滤波器电路设计

    千次阅读 多人点赞 2020-05-27 21:42:40
    掌握有源滤波器电路设计基本方法。 掌握电路仿真软件的基本使用方法。 二、实验内容及结果 实验内容 参考查表法或辅助软件法,利用集成运放设计二阶音频滤波器,实现音频信号的消噪。假设输入信号幅度在0.1Vpp...

    一、实验目的

    1. 掌握有源滤波器电路设计基本方法。
    2. 掌握电路仿真软件的基本使用方法。

    二、实验内容及结果

    1. 实验内容
      参考查表法或辅助软件法,利用集成运放设计二阶音频滤波器,实现音频信号的消噪。假设输入信号幅度在0.1Vpp以内,要求通带增益为0dB,3dB截止频率分别为20Hz~20kHz,通道增益要求平坦,电路负载为1kΩ。根据上述要求设计出该电路,并对该电路的幅频特性进行仿真。
      实验具体要求如下:
      (1)设计电路,说明设计原理,电阻、电容选择为系列值,要求截至频率误差在10%以内。
      (2)确定电路中运放的型号,简单说明运放选型的原则。
      (3)利用Multisim电路仿真软件绘制原理图。
      (4)对所设计电路进行幅频特性仿真。给出通道增益、截至频率、过渡带衰减的仿真值。

    2. 实验结果
      (1)在下方列出所设计电路的原理图(Multisim完成,确定电路中所有器件的型号和参数)
      multisim仿真文件链接
      在这里插入图片描述

      图1 所设计电路的原理图

    (2)结合所设计的电路图说明该电路的设计思路和过程,通过计算得到该电路的理论截至频率值,计算误差。
    设计思路:
    需要满足题目要求的通带增益0dB,3dB截至频率20Hz~20kHz,则需要构造二阶带通滤波器。二阶带通滤波器由一个VCVS式二阶低通滤波器和一个VCVS式二阶高通滤波器构成,二阶低通滤波器确定上限3dB截止频率为20kHz,二阶高通滤波器决定下限3dB截止频率为20Hz。
    设计过程:
    由查表法可以分别确定出低通滤波器和高通滤波器的各元器件值如下图:
    二阶低通滤波器查表:在这里插入图片描述
    二阶高通滤波器查表:在这里插入图片描述
    由表中得到R1=1.422KΩ,R2=5.399KΩ,C=6500pF,C1=1588pF;C2=5uF,C3=5uF,R3=2.251KΩ,R4=1.125KΩ,负载R5=1KΩ
    计算过程:
    理论低通与高通滤波器通带增益均为:Ap=1+0=1
    理论低通滤波器上限截止频率:fc=1/(2πR2C1) ≈ 18572.8Hz=18.5728kHz
    理论高通滤波器下限截止频率:fc=1/(2πR4C3) ≈ 20.2Hz
    但真实仿真结果如下
    低频:19.716Hz
    在这里插入图片描述

    高频:20.288Hz
    在这里插入图片描述

    计算得出下限截止频率误差≈2.39%,上限截止频率误差≈8.45%,误差都在10%以内,满足要求

    (3)对所设计电路进行输入输出仿真,给出输入幅度为0.1Vpp,频率分别为20Hz、20kHz时的输出波形图,并记录输出幅度。

    20Hz时:
    在这里插入图片描述

    20KHz时:
    在这里插入图片描述

    图2 输出波形图仿真图

    (4)对所设计电路进行幅频特性仿真,给出幅频特性仿真图,记录3dB截至频率和两过渡带的衰减。
    在这里插入图片描述
    在这里插入图片描述

    图3 幅频特性仿真图

    三、实验思考题
    1、为什么设计出滤波器的截至频率会产生误差?
    答:
    1、电器元件间的误差导致。
    2、由于仪器、实验条件、环境等因素的限制,测量不可能无限精确,测量值与客观存在的真实值之间总会存在着一定的差异。
    3、电路设计仍有可以改进的地方只不过没找到。

    2、总结设计宽带带通滤波器的方法。
    答:
    带通滤波器可以由一个低通滤波器和一个高通滤波器构成,而带宽的确定可以使用查表法决定电路中各个元器件的值,再连接完电路后进行仿真,根据仿真结果对电路中元器件值再进行一些适当的调整,可最终设计出一个性能比较好的带通滤波器。

    展开全文
  • 要求 有源带通滤波器,在3000~9000 Hz范围内,衰减的最大变化值为1dB,低于1000 Hz和高于18 000Hz范围内,最小衰减为35dB,增益为+20dB。  解 ①由于上截止频率和下截止频率之比远大于一个倍频程,因此该设计可以...
  • 要求 同步调谐带通滤波器,中心频率为455kHz,在±5kHz处衰减为3dB,在±35kHz处最小衰减为30dB,电感的Q值为4000。  解 ①计算带通陡度系数:  图1所示曲线表明,三阶同步调谐滤波器可以满足衰减的要求。  ...
  • 最基本的开关电容电路是由电子开关和电容组成的,主要应用是构成各种低通、高通、带通、带阻等开关电容滤波器(Switched-Capacitor Filter,SCF)。将开关电容电路运算放大器结合,组成的开关电容有源滤波器具有很多...
  • 开关电源几乎用于所有电子设备中。它们由于尺寸小、成本低和效率高而具有极高的价值。但是,它们最大的缺点就是高开关瞬态导致高输出噪声。这个缺点使它们无法用于...因此,有必要设计经过优化和阻尼处理的多级滤波...
  • 要求 带通滤波器,中心频率为LOkHz,在±250 Hz处衰减3dB,在±750 Hz处最小衰减为60dB,R=】00Ω,最小R,=1n1-lt71Ω,可用电感Q值为99R。  解 ①因为滤波器的带宽窄,故该指标可作为算术对称形式处理。从下...
  • 对于临界采样和过采样,我们都可以用一个以原点为中心,带宽为 带通滤波器把原始函数过滤出来;而如果欠采样,是一种有损采样,是无论如何也还原不回原函数的了。 那么这个问题就转换为求解临界采样的时候,连续...
  • 要求 将以下带通滤波器设计指标归一化。  带通滤波器,1dB通带的边界频率为12kHz及14kHz,在6kHz处最小衰减为20dB,在4kHz处最小衰减为30dB,在56kHz处最小衰减为40dB。  解 ①首先计算中心频率:  fL=12...
  • 其中相关电容和电感值的计算如下: 双调谐阻尼滤波器(Double-tuned damped filter)--- 双调谐滤波升级版: 有如下三种典型的接线方案: 其中 (a)和(b)接线方案将在调谐点附近产生阻尼效果(称为带通阻尼);...
  • 二阶有源带通滤波器设计及参数计算.pdf
  • 讲述了有源带通滤波器设计与计算过程,并举例说明如何设计带通滤波的相关参数
  • 要求 设计一个满足下列指标的有源带通滤波器,中心频率为2500Hz,在±15Hz处衰减为3dB,在±45 Hz处最小衰减为15dB,在Z500Hz处的增益是+12dB。  解 ①带通陡度系数由下式给出:  使用图1所示的,2阶0.1dB...
  • 基于Multisim的带通滤波器仿真设计实验 【实验目的】 熟悉Multsim电路仿真软件; 熟悉并了解Multsim在模拟电子线路中的应用; 掌握Multisim电路仿真设计; 掌握Multsim电路分析和仿真测试。 【实验要求】 利用...
  • 死磕带通滤波器

    千次阅读 2021-04-24 20:51:17
    陷波器类似,带通滤波器在数字电源控制领域有重要作用。比如在三相LCL逆变器的谐振抑制控制方面,通过带通滤波器可以提取谐振点附近的频谱做进一步的控制策略。在有源电力滤波器利用带通滤波器可以提取电网信号的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,541
精华内容 1,016
关键字:

带通滤波器设计与计算