如何用matlab设计高通滤波器
调用方式取决于你设计的是FIR还是IIR,不论哪种首先把设计的滤波器的参数首先Export。FIR的话直接用
filter(b,1,x),其中b就是FIR滤波器的系数。若是IIR的话需要转化一下,将sos格式利用sos2tf转化为传递函数形式,再用filter函数调用
在MATLAB环境下IIR数字滤波器的典型设计和完全设计等方法。
典型设计是先按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标,据此产生模拟滤波器原型,然后把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器,最后再把模拟滤波器转换成数字滤波器。
完全设计方法中利用函数直接设计出低通、高通、带通和带阻滤波器,并分别用巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器来实现,并比较了各自的频率响应曲线。
在FIR滤波器的设计中,用切比雪夫窗和海明窗设计的带通滤波器的频率响应进行对照,结果表面用海明窗设计的滤波器的频率特性几乎在任何频带上都比切比雪夫窗设计的滤波器的频率特性好,只是海明窗设计的滤波器下降斜度较小。
本文利用不同的滤波器研究了MATLAB环境下的图像处理技术。
对一张无锡马山园林的风景照片进行的二种修正,取得了不同的效果。
先对原图进行线性变换增加了对比度和亮度对这张图像,图像效果有了一定的改善。
后来用非锐化滤波器对修正后的图像再进行了处理,对图像的过渡失真进行了补偿。
本文还对一幅加噪声婚纱照片的去噪效果进行了研究。
比较去噪效果证明,用小波变换的方法进行去噪,图像处理效果更佳。
1,数字高通的技术指标
αp=3db,αs=25db,ωp=0.8pi,ωs=0.5pi
2,模拟高通的技术指标计算
T=1 Ωp=2/T*(tan(ωp/2))αp=3 db Ωs=2/T*(tan(ωp/2)) αs=25 db
3,模拟低通滤波器的技术指标计算
Ωp=1/(2/T*(tan(ωp/2)))Ωs=1/(2/T*(tan(ωp/2)))
αp=3db,αs=25db
将Ωp和Ωs对3db截止频率Ωc归一化,这里Ωc=Ωp
λp=1 λs=Ωc/Ωp
4,设计归一化模拟低通滤波器G(p)
N=-lg(ksp)/lg(λsp)ksp=(10**(0.1*αp)-1)/(10**(0.1*αs))
λsp=λs/λp
查表得到G(p),去归一化,p=s/Ωc,带入得到G(s)
5,将模拟低通转换成高通
H(z)=G(T/2*(1+z**(-1)/(1-z**(-1)))
如果你计算晚N值可以告诉我,我给你查表得到G(p)
联系我的邮箱285739910@qq.com
Ωp=2π*fp*T Ωs=2π*fs*T
过渡带宽度△Ω=Ωp-Ωs
阻带衰减已经超过74db,要选用Kaiser窗了,Kaiser的参数可变,要根据公式确定滤波器的参数
一般都选用Ⅰ型线性相位滤波器即滤波器阶数M为偶数,程序如下:
wp=ws=Ap=1As=100
Rp=1-10.^(-0.05*Ap)Rs=10.^(-0.05*As)
f=[fp fs]
a=[0 1]
dev=[Rp Rs]
[M,wc,beta,ftype]=kaiserord(f,a,dev)
M=mod(M,2)+M
h=fir1(M,wc,ftype,kaiser(M+1,beta))
omega=linspace(0,pi,512)
mag=freqz(h,[1],omega)
plot(omega/pi,20*log10(abs(mag)))
grid
omega1=linspace(0,wp,512)
h1=freqz(h,[1],omega1)
omega2=linspace(ws,pi,512)
h2=freqz(h,[1],omega2)
fprintf('Ap=%.4f\n',-20*log10(min(abs(h1))))
fprintf('As=%.4f\n',-20*log10(max(abs(h2))))
运行程序可以得到滤波器的通阻带衰减,画出频率响应,若同阻带衰减不满足要求还可以使用滤波器的优化,一般使用的等波纹FIR进行优化
对滤波的 总结 : 对特定频率进行有效提取,并对提取部分进行特定的处理(增益,衰减,滤除)的动作被叫做滤波。
最常用的滤波器类型有三种: 通过式(Pass),搁架式(Shelving)和参量式(Parametric)。 滤波器都有一个叫 参考频率(Reference Frequency)的东西 ,在不同类型的滤波器中,具体的叫法会有所不同。
通过式滤波器可以让参考频率一侧的频率成分完全通过该滤波器,同时对另一侧的频率成分做线性的衰减,就是,一边让通过,一边逐渐被滤除。在信号学中,通过的区域被称为通带,滤除的区域被叫做阻带,在通过式滤波器中,参考频率通常被称为截止频率。
高通滤波器(high-pass filters):让截止频率后的高频区域通过,另一侧滤除,低通滤波器(low-pass filters):让截止频率前的低频区域通过,另一侧滤除,通
以下是高通滤波器与低通滤波器的核心参数:
截止频率(Cut-off frequency) :决定了通带(通过的频率部分)与阻带(阻止的频率部分)的分界曲线,截止频率的位置并非是在曲线开始弯曲的那个点,而是在-3dB的位置。以图2左侧的高通滤波器为例,截止频率点之上的部分频率并没有全部被通过,而是有个曲线,在曲线回归平直后其频率才被完全通过。至于为什么要将-3dB的位置设为截止频率,是因为-3dB对于滤波器的设计而言是个非常重要的位置,如果设为其他位置,则会让通过式滤波器的设计变得尤为复杂。
斜率(Slope) :表示的是通带与阻带的分界曲线的倾斜程度,也就是说斜率决定了分界曲线是偏向平缓的,还是偏向垂直的,斜率越大(更陡峭),人工处理的痕迹就越明显。斜率的单位为dB/oct,中文称为分贝每倍频程。虽然绕口,但其实很简单,如6dB/oct,意思为一个倍频程的距离会产生6dB的衰减,数字滤波器常见的斜率选择有6dB/oct,12dB/oct,18dB/oct,24dB/oct,30dB/oct等等(图3)。
scipy.signal.filtfilt(b, a, x, axis=-1, padtype='odd', padlen=None, method='pad', irlen=None)
scipy.signal.butter(N, Wn, btype='low', analog=False, output='ba')
这里假设采样频率为1000hz,信号本身最大的频率为500hz,要滤除10hz以下和400hz以上频率成分,即截至频率为10hz和400hz,则wn1=2*10/1000=0.02,wn2=2*400/1000=0.8。Wn=[0.02,0.8]
1、低通:(Low-pass filter)是容许低于截止频率的信号通过,但高于截止频率的信号不能通过的电子滤波装置。
2、高通:是一种让某一频率以上的信号分量通过,而对该频率以下的信号分量大大抑制的电容、电感与电阻等器件的组合装置。其特性在时域及频域中可分别用冲激响应及频率响应描述。
3、带通:是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。一个模拟带通滤波器的例子是电阻-电感-电容电路(RLC circuit)。这些滤波器也可以用低通滤波器同高通滤波器组合来产生。
4、带阻滤波器:是指能通过大多数频率分量、但将某些范围的频率分量衰减到极低水平的滤波器,与带通滤波器的概念相对。其中点阻滤波器(notch filter)是一种特殊的带阻滤波器,它的阻带范围极小,有着很高的Q值(Q Factor)。
将输入电压同时作用于低通滤波器和高通滤波器,再将两个电路的输出电压求和,就可以得到带阻滤波器,如下图所示。其中低通滤波器的截止频率 应小于高通滤波器的截止频率 ,因此,电路的阻带为( - )。
扩展资料
低通原理利用:
1、巴特沃斯滤波器
巴特沃斯滤波器是滤波器的一种设计分类,其采用的是巴特沃斯传递函数,有高通、低通、带通、带阻等多种滤波器类型。巴特沃斯滤波器在通频带内外都有平稳的幅频特性,但有较长的过渡带,在过渡带上很容易造成失真。
2、切比雪夫滤波器
切比雪夫滤波器是滤波器的一种设计分类,其采用的是切比雪夫传递函数,也有高通、低通、带通、高阻、带阻等多种滤波器类型。同巴特沃斯滤波器相比,切比雪夫滤波器的过渡带很窄,但内部的幅频特性却很不稳定。
高通种类:
1、按照所采用的器件不同分类有源高通滤波器、无源高通滤波器。
无源高通滤波器: 仅由无源元件(R、L 和C)组成的滤波器,它是利用电容和电感元件的电抗随频率的变化而变化的原理构成的。
这类滤波器的优点是:电路比较简单,不需要直流电源供电,可靠性高;缺点是:通带内的信号有能量损耗,负载效应比较明显,使用电感元件时容易引起电磁感应,当电感L较大时滤波器的体积和重量都比较大,在低频域不适用。
有源高通滤波器:由无源元件(一般用R和C)和有源器件(如集成运算放大器)组成。这类滤波器的优点是:通带内的信号不仅没有能量损耗,而且还可以放大,负载效应不明显,多级相联时相互影响很小。
利用级联的简单方法很容易构成高阶滤波器,并且滤波器的体积小、重量轻、不需要磁屏蔽(由于不使用电感元件);缺点是:通带范围受有源器件(如集成运算放大器)的带宽限制,需要直流电源供电,可靠性不如无源滤波器高,在高压、高频、大功率的场合不适用。
2、按照滤波器的数学特性分为一阶高通滤波器、二阶高通滤波器等。
fc1=10 fc2=20 fs=100
[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0], [0.01 0.01 0.01],100)
window=kaiser(n+1,beta) %使用kaiser窗函数
b=fir1(n, Wn,window)%使用标准频率响应的加窗设计函数fir1
freqz(b,1,512) %
t=(0:100)/fs
s=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30)
sf=filter(b,1,s) %
figure
subplot(2,1,1) plot(t,s)
subplot(2,1,2) plot(t,sf)