【 MATLAB 】ellip 函数介绍(椭圆滤波器设计)

ellip

Elliptic filter design

Syntax

[b,a] = ellip(n,Rp,Rs,Wp)

[b,a] = ellip(n,Rp,Rs,Wp,ftype)

[z,p,k] = ellip(___)

[A,B,C,D] = ellip(___)

[___] = ellip(___,'s')

Description

[b,a] = ellip(n,Rp,Rs,Wp) 返回具有归一化通带边缘频率Wp的n阶低通数字椭圆滤波器的传递函数系数。

得到的滤波器具有峰峰值通带纹波的 Rp 分贝和从峰值通带值向下衰减的阻带衰减的 Rs 分贝。


Lowpass Elliptic Transfer Function

设计一个6阶低通椭圆滤波器,具有5 dB的通带纹波,40 dB的阻带衰减和300 Hz的通带边缘频率,对于以1000 Hz采样的数据,它对应于0.6 \pi rad / sample。 绘制其幅度和相位响应。 用它来过滤1000个样本的随机信号。

[b,a] = ellip(6,5,40,0.6);
freqz(b,a)

【 MATLAB 】ellip 函数介绍(椭圆滤波器设计)_第1张图片

dataIn = randn(1000,1);
dataOut = filter(b,a,dataIn);

[b,a] = ellip(n,Rp,Rs,Wp,ftype) 设计低通,高通,带通或带阻椭圆滤波器,具体取决于ftype的值和Wp的元素数量。 将所得的带通和带阻设计是2n阶。


Bandstop Elliptic Filter

Design a 6th-order elliptic bandstop filter with normalized edge frequencies of  and  rad/sample, 5 dB of passband ripple, and 50 dB of stopband attenuation. Plot its magnitude and phase responses. Use it to filter random data.

[b,a] = ellip(3,5,50,[0.2 0.6],'stop');
freqz(b,a)

dataIn = randn(1000,1);
dataOut = filter(b,a,dataIn);

[z,p,k] = ellip(___)设计低通,高通,带通或带阻数字椭圆滤波器,并返回其零点,极点和增益。 此语法可包括先前语法中的任何输入参数。


设计一个6阶高通椭圆滤波器,其通带边缘频率为300 Hz,对于以1000 Hz采样的数据,对应于0.6\pirad / sample。 指定3 dB的通带纹波和50 dB的阻带衰减。 绘制幅度和相位响应。 将零,极点和增益转换为二阶段以供fvtool使用。

[z,p,k] = ellip(6,3,50,300/500,'high');
sos = zp2sos(z,p,k);
fvtool(sos,'Analysis','freq')

【 MATLAB 】ellip 函数介绍(椭圆滤波器设计)_第2张图片

当然也可以通过原来的方法:

clc
clear
close all

[b,a] = ellip(6,3,50,300/500,'high');
freqz(b,a)

【 MATLAB 】ellip 函数介绍(椭圆滤波器设计)_第3张图片


[A,B,C,D] = ellip(___) 设计低通,高通,带通或带阻数字椭圆滤波器,并返回指定其状态空间表示的矩阵。


Bandpass Elliptic Filter

Design a 20th-order elliptic bandpass filter with a lower passband frequency of 500 Hz and a higher passband frequency of 560 Hz. Specify a passband ripple of 3 dB, a stopband attenuation of 40 dB, and a sample rate of 1500 Hz. Use the state-space representation. Design an identical filter using designfilt.

设计一个20阶椭圆带通滤波器与500Hz的低通频带频率和560赫兹的高通频带频率。 指定3 dB的通带纹波,40 dB的阻带衰减和1500 Hz的采样率。 使用状态空间表示。 使用designfilt设计相同的过滤器。

[A,B,C,D] = ellip(10,3,40,[500 560]/750);
d = designfilt('bandpassiir','FilterOrder',20, ...
    'PassbandFrequency1',500,'PassbandFrequency2',560, ...
    'PassbandRipple',3, ...
    'StopbandAttenuation1',40,'StopbandAttenuation2',40, ...
    'SampleRate',1500);

Convert the state-space representation to second-order sections. Visualize the frequency responses using fvtool.

将状态空间表示转换为二阶段。 使用fvtool可视化频率响应。

sos = ss2sos(A,B,C,D);
fvt = fvtool(sos,d,'Fs',1500);
legend(fvt,'ellip','designfilt')

【 MATLAB 】ellip 函数介绍(椭圆滤波器设计)_第4张图片


[___] = ellip(___,'s') 设计了低通,高通,带通或带阻模拟椭圆滤波器,其通带边缘角频率Wp,通带纹波的Rp分贝和阻带衰减的Rs分贝。

最后一个就不介绍了,具体参考MATLAB数据手册,在命令窗口输入:

doc ellip

获得相关帮助。

 

 

 

 

你可能感兴趣的:(#,区)