椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter):

这是在通带和阻带等波纹的一种滤波器。

椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。

它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。

测试代码:

% EllipticFilter.m

% 椭圆滤波器的设计

%

clear;

close all;

clc;

fs = 1000; %Hz 采样频率

Ts = 1/fs;

N = 1000; %序列长度

t = (0:N-1)*Ts;

delta_f = 1*fs/N;

f1 = 50;

f2 = 100;

f3 = 200;

f4 = 400;

x1 = 2*0.5*sin(2*pi*f1*t);

x2 = 2*0.5*sin(2*pi*f2*t);

x3 = 2*0.5*sin(2*pi*f3*t);

x4 = 2*0.5*sin(2*pi*f4*t);

x = x1 + x2 + x3 + x4; %待处理信号由四个分量组成

X = fftshift(abs(fft(x)))/N;

X_angle = fftshift(angle(fft(x)));

f = (-N/2:N/2-1)*delta_f;

figure(1);

subplot(3,1,1);

plot(t,x);

title('原信号');

subplot(3,1,2);

plot(f,X);

grid on;

title('原信号频谱幅度特性');

subplot(3,1,3);

plot(f,X_angle);

title('原信号频谱相位特性');

grid on;

%设计一个切比雪夫低通滤波器,要求把50Hz的频率分量保留,其他分量滤掉

wp = 55/(fs/2); %通带截止频率,取50~100中间的值,并对其归一化

ws = 60/(fs/2); %阻带截止频率,取50~100中间的值,并对其归一化

alpha_p = 3; %通带允许最大衰减为 db

alpha_s = 40;%阻带允许最小衰减为 db

%获取阶数和截止频率

[ N1 wc1 ] = ellipord( wp , ws , alpha_p , alpha_s);

%获得转移函数系数

[ b a ] = ellip(N1,alpha_p,alpha_s,wc1,'low');

%滤波

filter_lp_s = filter(b,a,x);

X_lp_s = fftshift(abs(fft(filter_lp_s)))/N;

X_lp_s_angle = fftshift(angle(fft(filter_lp_s)));

figure(2);

freqz(b,a); %滤波器频谱特性

figure(3);

subplot(3,1,1);

plot(t,filter_lp_s);

grid on;

title('低通滤波后时域图形');

subplot(3,1,2);

plot(f,X_lp_s);

title('低通滤波后频域幅度特性');

subplot(3,1,3);

plot(f,X_lp_s_angle);

title('低通滤波后频域相位特性');

%设计一个高通滤波器,要求把400Hz的频率分量保留,其他分量滤掉

wp = 350/(fs/2); %通带截止频率,取200~400中间的值,并对其归一化

ws = 380/(fs/2); %阻带截止频率,取200~400中间的值,并对其归一化

alpha_p = 3; %通带允许最大衰减为 db

alpha_s = 40;%阻带允许最小衰减为 db

%获取阶数和截止频率

[ N2 wc2 ] = ellipord( wp , ws , alpha_p , alpha_s);

%获得转移函数系数

[ b a ] = ellip(N2,alpha_p,alpha_s,wc2,'high');

%滤波

filter_hp_s = filter(b,a,x);

X_hp_s = fftshift(abs(fft(filter_hp_s)))/N;

X_hp_s_angle = fftshift(angle(fft(filter_hp_s)));

figure(4);

freqz(b,a); %滤波器频谱特性

figure(5);

subplot(3,1,1);

plot(t,filter_hp_s);

grid on;

title('高通滤波后时域图形');

subplot(3,1,2);

plot(f,X_hp_s);

title('高通滤波后频域幅度特性');

subplot(3,1,3);

plot(f,X_hp_s_angle);

title('高通滤波后频域相位特性');

%设计一个带通滤波器,要求把50Hz和400Hz的频率分量滤掉,其他分量保留

wp = [65 385 ] / (fs/2); %通带截止频率,50~100、200~400中间各取一个值,并对其归一化

ws = [75 375 ] / (fs/2); %阻带截止频率,50~100、200~400中间各取一个值,并对其归一化

alpha_p = 3; %通带允许最大衰减为 db

alpha_s = 40;%阻带允许最小衰减为 db

%获取阶数和截止频率

[ N3 wn ] = ellipord( wp , ws , alpha_p , alpha_s);

%获得转移函数系数

[ b a ] = ellip(N3,alpha_p,alpha_s,wn,'bandpass');

%滤波

filter_bp_s = filter(b,a,x);

X_bp_s = fftshift(abs(fft(filter_bp_s)))/N;

X_bp_s_angle = fftshift(angle(fft(filter_bp_s)));

figure(6);

freqz(b,a); %滤波器频谱特性

figure(7);

subplot(3,1,1);

plot(t,filter_bp_s);

grid on;

title('带通滤波后时域图形');

subplot(3,1,2);

plot(f,X_bp_s);

title('带通滤波后频域幅度特性');

subplot(3,1,3);

plot(f,X_bp_s_angle);

title('带通滤波后频域相位特性');

%设计一个带阻滤波器,要求把50Hz和400Hz的频率分量保留,其他分量滤掉

wp = [65 385 ] / (fs/2); %通带截止频率?,50~100、200~400中间各取一个值,并对其归一化

ws = [75 375 ] / (fs/2); %阻带截止频率?,50~100、200~400中间各取一个值,并对其归一化

alpha_p = 3; %通带允许最大衰减为 db

alpha_s = 40;%阻带允许最小衰减为 db

%获取阶数和截止频率

[ N4 wn ] = ellipord( wp , ws , alpha_p , alpha_s);

%获得转移函数系数

[ b a ] = ellip(N4,alpha_p,alpha_s,wn,'stop');

%滤波

filter_bs_s = filter(b,a,x);

X_bs_s = fftshift(abs(fft(filter_bs_s)))/N;

X_bs_s_angle = fftshift(angle(fft(filter_bs_s)));

figure(8);

freqz(b,a); %滤波器频谱特性

figure(9);

subplot(3,1,1);

plot(t,filter_bs_s);

grid on;

title('带阻滤波后时域图形');

subplot(3,1,2);

plot(f,X_bs_s);

title('带阻滤波后频域幅度特性');

subplot(3,1,3);

plot(f,X_bs_s_angle);

title('带阻滤波后频域相位特性');

效果:

原始信号:

生成的低通滤波器和滤波后的效果:

生成的高通滤波器和滤波后的效果:

生成的带通滤波器和滤波后的效果:

生成的带阻滤波器和滤波后的效果:

matlab ellipticf,[Matlab]椭圆滤波器设计:低通、高通、带通和带阻相关推荐

  1. [Matlab]椭圆滤波器设计:低通、高通、带通和带阻(4)

    [Matlab]椭圆滤波器设计:低通.高通.带通和带阻-------(4) ​ 椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter),是在通带和阻带等波纹的一种滤波器 ...

  2. 低通采样的matlab实现,基于matlab的FIR滤波器设计(低通,频率取样法)

    基于matlab的FIR滤波器设计(低通,频率取样法)一.参考程序 M=63;%所需频率采样点个数 Wp=0.5*pi;%通带截止频率 m=0:(M+1)/2;%通频带上的采样点 Wm=2*pi*m. ...

  3. 基于fdatool的滤波器设计(低通、带通、高通)

    体程序参考原文: 基于fdatool的滤波器设计(低通.带通.高通) - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/47392900 一.关于 结合上一篇8PSK ...

  4. 双线性变换 matlab,matlab和双线性变换的滤波器设计.doc

    matlab和双线性变换的滤波器设计.doc 武汉理工大学MATLAB课程设计报告书题目MATLAB课程设计基于MATLAB和双线性变换的滤波器设计初始条件MATLAB仿真软件数字信号处理与图像处理基 ...

  5. fir 低通 matlab,MATLAB常用的FIR滤波器设计方法之窗函数法

    FIR滤波器很多工科出身的人都不会陌生,在我们的学习和工作中,也常常需要设计FIR滤波器.因为FIR滤波器有两个特点:滤波器是稳定的以及具有线性相位.FIR滤波器在信号处理相关领域当然也包括本人所在的 ...

  6. 【 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 ...

  7. matlab设计椭圆低通滤波器,【 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 ...

  8. Matlab幅频曲线和滤波器设计

    前言少叙,下面开始正题. 一.离散数字信号的表示 n=-3:5;subplot(221); x1=(n==0); stem(n,x1,'.'); title('单位冲击'); axis([-4,4,- ...

  9. 基于matlab的巴特沃斯滤波器设计

    一.butterworth滤波器也称最平响应特性滤波器,其特征多项式为: |K(jΩ)|^2=K(jΩ)K(-jΩ)=(Ω/Ωc)^2N 巴特沃斯滤波器的模平方函数为: |H(jΩ)|^2=1/(1+ ...

最新文章

  1. python3 的range
  2. LeetCode 143. 重排链表(Reorder List)
  3. jdbc mysql 字符集_JDBC对Mysql utf8mb4字符集的处理
  4. 一个Demo让你掌握Android所有控件
  5. 企业实战_01_ Mycat 主要作用_01
  6. mysql多副本搭建_一个简单的MySQL多实例环境搭建
  7. 产品经理如何利用ER图,指导原型设计?
  8. MySQL_存储引擎
  9. Android开发 更改返回button的图标
  10. Unreal Engine 4 —— 版本兼容的工作原理以及一些可优化项
  11. cvi中c语言只保留两位小数,保留两位小数,但要求只显示一位小数,怎么实现?...
  12. Spring AOP(四)之After增强处理
  13. C++11 关键字override和final
  14. serv-u启动管理控制台后提示脚本错误解决方案
  15. 关于 Pycharm专业版 安装教程,简单好用
  16. SR 学习记录----JUNOS为例
  17. cygwin使用apt-cyg
  18. 关闭win10的繁体字快捷键ctrl+shift+f
  19. idea自动排版html,idea怎么格式化代码?
  20. erp系统设计与开发:独自一人开发一整套erp系统是什么水平?

热门文章

  1. 【手动导入maven包】
  2. IEEE期刊/会议模板
  3. 2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru
  4. C语言经典——闰年问题
  5. 清华5天内5则讣告,校方:把守护好老同志的生命健康作为当前疫情防控的重点...
  6. MATLAB技术手册(针对大学课设的技术介绍及仿真实例演示)
  7. SSO、单点登录、集成 CAS、OAuth2
  8. SAS实现因子分析代码
  9. 使用Dobot的一些问题记录
  10. mysql-5.7.17-winx64安装文件在哪里_mysql-5.7.17-winx64的安装配置