精华内容
下载资源
问答
  • 用基本数学方程设计带通滤波器的程序,对没有信号处理工具箱的人有帮助。 三角正弦函数和汉明窗方程用于创建带通滤波器。 通过改变中心频率、带宽参数,滤波器可以定制到所需的频率。 可以参考相同的程序来创建 ...
  • 带通滤波器电路图设计(一) 传统的带通滤波器设计方法中涉及了很多复杂的理论分析和计算。针对上述缺点,介绍一种使用EDA软件进行带通滤波器的设计方案,详细阐述了使用FilterPro软件进行有源带通滤波器电路的设计...

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

    传统的带通滤波器设计方法中涉及了很多复杂的理论分析和计算。针对上述缺点,介绍一种使用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Ω。

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

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

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

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

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

    展开全文
  • 二阶有源带通滤波器参数计算,设计
  • 二阶有源带通滤波器设计及参数计算,有详细的计算过程,应用在全国大学生电子设计竞赛的综合测评里,提取基波,三次谐波,五次谐波
  • 看到一个带通滤波器的设计如下,开始研究是如何设计的 代码: 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

    ..

     

    展开全文
  • BP型带通滤波器的电路如图所示,其主要特性见表。  BP型带通滤波器的电路  BP型带通滤波器主要特性参数  
  • 滤波器在电子线路中用得特别多,通信电路更是多如牛毛。这是一个关于二阶有源带通滤波器设计及参数计算的资料。希望对大家有用。
  • 带通滤波器的设计

    万次阅读 多人点赞 2019-08-09 12:17:18
    其中射频天线领域主要采用带通滤波器(BPF)。 二、带通滤波器(BPF): ①:RF BPF:从天线中取出期望频带的有效信号,滤除不需要频带的电磁波信号和噪声。 ②:RF BPF:用下级混频器(降频混频器)进行频率转换时...

    一、滤波器:滤波器按照频带划分可以分为:低通滤波器(LPF)高通滤波器(HPF)带通滤波器(BPF)带阻滤波器(BEF)。其中射频天线领域主要采用带通滤波器(BPF)


    二、带通滤波器(BPF):

    ①:RF BPF:从天线中取出期望频带的有效信号,滤除不需要频带的电磁波信号和噪声。

    ②:RF BPF:用下级混频器(降频混频器)进行频率转换时,防止在IF频带中引入干扰信号,用BPF将不期望频率成分滤除。

    ③:IF BPF:从混频器进行频率转换所产生的许多频率成分中,用BPF只取出期望的IF信号,也具有限制接收信号频带的作用。

    ④:IF BPF:用混频器(升频转换器)进行频率转换时,用BPF防止在RF频带中引入干扰信号,也具有限制发射信号频带的作用。

    ⑤:RF BPF:从混频器进行频率转换所产生的许多频率成分中,用BPF只取出期望的RF信号。

    ⑥:RF BPF:用BPF除去功率放大器放大时失真所产生的寄生部分,以及大功率信号的输入在天线开关时所产生的寄生部分,以免寄生成分通过天线发射出去。


    三、带通滤波器(BPF)选择:

    (1)、对于低频电路,选择LC滤波器。LC滤波器通常用于基频领域

    (2)、对于100MHz~1000MH频率范围,选择SAW滤波器。SAW滤波器通常用于IF BPF领域

    (3)、对于2GHz频率电路,选择介质滤波器。介质滤波器通常用于RF BPF领域


    四、带通滤波器(BPF)详解:

    核心思想:BPF基本上是谐振电路。谐振电路分为串联谐振电路并联谐振电路,对于串联谐振电路,若L和C无损耗,则在谐振频率时阻抗变为零;对于并联谐振电路,谐振频率时阻抗变为无穷大。对于串联谐振电路可知,L越大,衰减特性越陡;对于并联谐振电路可知,L越小C越大,衰减特性越陡。

    谐振电路的谐振频率: f_{0}=1/2\pi\sqrt{LC} 

    串联谐振与并联谐振的组合电路:


    五、介质滤波器:


    六、微带线制作滤波器:

    展开全文
  • 带通滤波器matlab程序

    2018-06-02 22:51:14
    自己编写的小程序,matlab程序,带通滤波器,可设置最小截止频率和最大截止频率。 ps。不附带信号文件,很简单的原理,旨在指导带通滤波器的编程思路与原理
  • 该EXCEL表格可用于辅助带通滤波器设计。用户输入带通滤波器性能指标,表格快速给出低通原型滤波器的元件参数以及带通滤波器的归一化耦合系数、输入群时延、外部Q值等
  • 你好,带通滤波器的设计,主要是为了抑制2K的信号而设计,用于声音接收系统。
  • 提出一种新型微带带通滤波器设计,它是由带有J-变频器的零阶谐振ZOR(zeroth-order resonant)系统构成。零阶谐振系统以互补分裂谐振环和一系列沟道组成的左手材料LHM(Left-Handed Material)为基本单元,在传统...
  • 当Yi参数由如下表示式选择时,则可构成带通滤波器。 (6-4-4) 由式(6-4-3)和式(6-4-4)可组成如图6-4-2所示的多环有源带通滤波器电路。此多环有源带通滤波器的特性参数如下  下面以图6-4-2为例...
  • SIR微带带通滤波器

    2018-09-05 17:46:57
    利用hfss10设计SIR微带带通滤波器,并进行相关参数仿真。
  • 利用ADS(Advanced Design System)设计平行耦合微带线带通滤波器,为了缩短设计周期,提高微带线带通滤波器的性能,采用ADS中的无源电路设计向导工具,设计出了一种中心频率为3.0 GHz、带宽为60 MHz的平行耦合微带线...
  • w ( n ) = 1 2 [ 1 − c o s ( 2 π n a ) ] w(n)=\frac{1}{2}[1-cos(\frac{2\pi n}{a})] w(n)=21​[1−cos(a2πn​)] 3、求理想带通滤波器的单位脉冲响应 理想带通滤波器的截止频率: w c l = ( w p l + w s l ) /...

    假设有一段10kHz的语言,现需要对2~3kHz之间的语言信号进行提取,要求1.5kHz及3.5kHz以上的频率需要有40dB的衰减

    1、求数字频率指标

    通带下边频:
    wpl=2πfpl/fs=0.4πw_{pl}=2*\pi *f_{pl}/f_s=0.4\pi
    通带上边频:
    wph=2πfph/fs=0.6πw_{ph}=2*\pi *f_{ph}/f_s=0.6\pi
    下阻带上变频:
    wsl=2πfsl/fs=0.3πw_{sl}=2*\pi *f_{sl}/f_s=0.3\pi
    上阻带下变频:
    wsh=2πfsh/fs=0.7πw_{sh}=2*\pi *f_{sh}/f_s=0.7\pi

    2、选取窗函数

    在这里插入图片描述

    根据阻带衰减查表,可选汉宁窗,过度带宽Δw=wplwsl=0.1π\Delta_w=w_{pl}-w_{sl}=0.1\pi
    由汉宁窗过度带宽确定阶数N
    N=6.2π/Δw=62N=6.2\pi/\Delta_w=62
    取N为奇数N=63
    a=(N1)/2a = (N-1)/2
    因此窗函数:
    w(n)=12[1cos(2πna)]w(n)=\frac{1}{2}[1-cos(\frac{2\pi n}{a})]

    3、求理想带通滤波器的单位脉冲响应

    理想带通滤波器的截止频率:
    wcl=(wpl+wsl)/2w_{cl}=(w_{pl}+w_{sl})/2
    wch=(wph+wsh)/2w_{ch}=(w_{ph}+w_{sh})/2
    理想带通滤波器的单位脉冲响应:

    hd(n)=sin[wch(na)]sin[wcl(na)]π(na)h_d(n)=\frac{sin[w_{ch}*(n-a)]-sin[w_{cl}*(n-a)]}{\pi*(n-a)}

    4、求FIR滤波参数

    h(n)=hd(n)w(n)h(n)=h_d(n)w(n)

    5、算法仿真

    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import signal
    from scipy.fftpack import fft,ifft
    from decimal import Decimal
    import matplotlib
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    matplotlib.rcParams['font.family']='sans-serif'
    
     
    class filter:
        def __init__(self,h):
            self.order=len(h)
            self.h=h
            self.output=[]
        def FIR_Filter(self,vi):
            for i in range(len(vi)):
                sum=0
                if i < self.order:
                    for j in range(i):
                        sum=sum + self.h[j]*vi[i-j]
                else:      
                    for j in range(self.order):
                        sum=sum + self.h[j]*vi[i-j]
                    
                self.output.append(sum)   
            return self.output
            
           
    
    #采样为10Khz
    #1.5khz以下及3.5khz以上至少40db的衰减
    
    f_sl = 1500
    f_sh = 3500
    f_pl = 2000
    f_ph = 3000
    f_s  = 10000
    #通带下边频
    W_pl = 2*np.pi*f_pl/f_s
    
    W_ph = 2*np.pi*f_ph/f_s
    
    W_sl = 2*np.pi*f_sl/f_s
    W_sh = 2*np.pi*f_sh/f_s
    
    W_D = W_pl - W_sl
    
    N = 6.2*np.pi/(W_D)
    if N%2==0:
        N=N+1
    print(N)
    a = (N-1)/2
    n=np.linspace(0,N-1,N)
    
    R_n =  1
    #汉宁窗口函数
    w_n = 0.5*(1-np.cos(2*np.pi*n/(N-1)))
    
    W_cl = (W_pl+W_sl)/2
    W_ch = (W_ph+W_sh)/2
    #用一个靠近a的小数将a值替换掉,避免出现除0的情况
    a=30.9999999999
    h_d  = (np.sin(W_ch*(n-a))-np.sin(W_cl*(n-a)))/(2*np.pi*(n-a))
    h_c = h_d*w_n
    
    numtaps=63
    
    array= h_c
    plt.figure(1)
    yy_1=fft(array)                     #快速傅里叶变换
    yf_1=abs(fft(array))                # 取模
    yf1_1=abs(fft(array))/((len(array)/2))           #归一化处理
    yf2_1 = yf1_1[range(int(len(array)/2))]  #由于对称性,只取一半区间
    #plt.plot(h_d,'b')
    plt.subplot(221)
    plt.title('滤波系数')  # 定义标题
    plt.plot(array,'g')
    plt.plot(h_c,'K')
    plt.subplot(222)
    plt.title('滤波系数FFT')  # 定义标题
    plt.plot(yf2_1,'r')
    plt.show()
    
    x=np.linspace(0,1,f_s)
    signal_array = np.sin(2*np.pi*2000*x)
    for i in range(10):
        if 1000*i != 2000:
            signal_array+=np.sin(2*np.pi*1000*x*i)#+np.sin(2*np.pi*175*x)+np.sin(2*np.pi*350*x)+np.sin(2*np.pi*500*x)
    plt.figure(2)        
    Weight = array
    FIR_filter=filter(Weight)
    output = FIR_filter.FIR_Filter(signal_array)   
    y=  signal_array
    xf = np.arange(len(y)) 
    yy=fft(y)                     #快速傅里叶变换
    yf=abs(fft(y))                # 取模
    yf1=abs(fft(y))/((len(x)/2))           #归一化处理
    yf2 = yf1[range(int(len(x)/2))]  #由于对称性,只取一半区间
    plt.subplot(221)
    plt.title('原始信号')  # 定义标题
    plt.plot(xf,signal_array,'b') #显示原始信号的FFT模值
    
    plt.subplot(222)
    plt.title('原始信号FFT')  # 定义标题
    plt.plot(xf,yf1,'r') #显示原始信号的FFT模值
    
    yy_1=fft(output)                     #快速傅里叶变换
    yf_1=abs(fft(output))                # 取模
    yf1_1=abs(fft(output))/((len(x)/2))           #归一化处理
    yf2_1 = yf1_1[range(int(len(x)/2))]  #由于对称性,只取一半区间
    plt.subplot(223)
    plt.title('滤波后的信号')  # 定义标题
    plt.plot(xf,output,'b') 
    plt.subplot(224)
    plt.title('滤波后的信号FFT')  # 定义标题
    plt.plot(xf,yf1_1,'r') #显示原始信号的FFT模值
    
            
    
    

    6、算法结果

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 二阶巴特沃斯带通滤波器仿真电路图,二阶巴特沃斯带通滤波器仿真电路图
  • 平行耦合微带线带通滤波器在微波电路系统中广泛应用。为了提高带通滤波器性能,缩短设计周期,采用奇偶模原理分析与ADS(Advanced Design System)仿真相结合的方法,设计出一个中心频率为2.5 GHz,相对带宽为10%的...
  • 基带编码信号与本振频率信号混频后,射频输出的中心频率将被搬移到Fi0+Fif和Fi0-Fif。... F5CE-915M00-236带通滤波器主要性能参数指标如图1所示。  图1 F5CE-915M00-236的性能指标  带宽:26MHz。
  • 定义:允许信号的一部分频率成分通过的滤波器被称为带通滤波器。 分类:RC选频电路和LC选频电路 2.1.RC选频电路 如上图所示,通过改变不同的RC参数,即可得到不同的谐振频率。且。 2.2 LC选频电路 谐振频率...
  • 二阶有源带通滤波器设计1、背景对于微弱的信号的处理方式一般是:放大和滤波,这个过程中就涉及到放大电路的选取、滤波器的选择以及偏置电路的设计。本例以实例的方式讲解并附带参数计算、仿真、实物测试三个环节。 ...
  • matlab设计模拟带通滤波器

    千次阅读 2019-06-11 11:37:06
    简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。 代码如下: %设计带通滤波器 %巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆...
  • 讲述了有源带通滤波器的设计与计算过程,并举例说明如何设计带通滤波的相关参数
  • 要求 将下列带通滤波器的设计指标归一化。  带通滤波器,通带中心频率为100Hz,在±15Hz处(85Hz,115Hz)衰减3dB,在±30Hz处(70Hz,130Hz... 图比较了设计指标的滤波器参数  和几何对称等效的关系。 来源:ks99
  • 平行耦合微带线滤波器是一种分布参数滤波器,它是由微带线或耦合微带线组成,其具有重量轻、结构紧凑、价格低、可靠性高、性能稳定等优点,因此在微波集成电路中,它是一种被广为应用的带通滤波器。  在以往设计...
  • 利用阶跃阻抗谐振器(SIR)结构设计波导带通滤波器。该方法减小体积,又可以将杂散谐振频率向高端推移,从而增加阻带宽度,使得结构的设计获得很大的自由。最后,利用电磁场仿真软件对结构尺寸进行优化仿真,并实际...
  •  一个理想的带通滤波器应该有一个完全平坦的通带,在通带内没有放大或者衰减,并且在通带之外所有频率都被完全衰减掉,另外,通带外的转换在极小的频率范围完成。实际上,并不存在理想的带通滤波器。  带阻滤波器...
  • 四阶切比雪夫带通滤波器。中心频率1.675GHz,带宽大于200MHz,带内插损小于0.5dB。

空空如也

空空如也

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

带通滤波器的主要参数