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

​ 椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter),是在通带和阻带等波纹的一种滤波器。椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。

椭圆滤波器特点:

​ 从传递函数来看,巴特沃斯和切比雪夫滤波器的传输函数都是一个常数除以一个多项式, 为全极点网络, 仅在无限大阻带处衰减为无限大. 而椭圆函数滤波器在有限频率上既有零点又有极点。极零点在通带内产生等波纹, 阻带内的有限传输零点减少了过渡区, 可获得极为陡峭的衰减曲线。也就是说在阶数相同的条件下,椭圆滤波器相比于其他类型的滤波器,能获得更窄的过渡带宽和较小的阻带波动, 就这点而言, 椭圆滤波器是最优的。它陡峭的过渡带特性是用通带和阻带的起伏为代价来换取的,并且在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。

  • 椭圆低通滤波器是一种零、极点型滤波器,它在有限频率范围内存在传输零点和极点。

  • 椭圆低通滤波器的通带和阻带都具有等波纹特性,因此通带,阻带逼近特性良好。

  • 对于同样的性能要求,它比前两种滤波器所需用的阶数都低,而且它的过渡带比较窄。

但是椭圆滤波器传输函数是一种较复杂的逼近函数,利用传统的设计方法进行电路网络综合要进行繁琐的计算, 还要根据计算结果进行查表, 整个设计, 调整都十分困难和繁琐。而用MATLAB设计椭圆滤波器可以大大简化设计过程。

原始信号设定:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  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]椭圆滤波器设计:低通、高通、带通和带阻(4)相关推荐

  1. matlab ellipticf,[Matlab]椭圆滤波器设计:低通、高通、带通和带阻

    椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter): 这是在通带和阻带等波纹的一种滤波器. 椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波 ...

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

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

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

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

  4. [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)

    [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计) ​ IIR滤波器主要设计方法先设计一个模拟低通滤波器,然后把它转化为形式上的数字滤波器.但对于FIR滤波器来说,设计方法的关键要求之一 ...

  5. [Matlab]FIR滤波器设计:(FIR滤波器的结构)

    [Matlab]FIR滤波器设计:(FIR滤波器的结构) FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是一种在数字信号领域应用非常广 ...

  6. [Matlab]FIR滤波器设计:(线性相位滤波器的特性)

    [Matlab]FIR滤波器设计:(线性相位FIR滤波器的特性) ​ FIR滤波器能够在保证幅度特性满足技术要求的同时,容易实现严格的线性相位特性,且FIR滤波器的单位抽样响应是有限长的,因而滤波器一 ...

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

  9. matlab贝塞尔滤波器设计_DSP之窗函数法设计高通滤波器(MATLAB实现)

    窗函数法是设计滤波器比较简单的一种方法 不论是高通还是低通还是带通还是带阻滤波器,原理设计都是一样的 问题提出: 因为20lg0.01=-40 所以最小阻带衰减要小于-40,通过查表可知选择汉宁窗 假 ...

最新文章

  1. TED+如何让压力成为朋友+如何面对压力决定你的未来
  2. centos5.6无法ping,无法scp的问题解析
  3. Spring Cloud Alibaba 新版本发布:众多期待内容整合打包加入!
  4. Vista命令行大全
  5. C语言中Static和Const关键字的的作用
  6. js把日期字符串转换成时间戳
  7. html日期选择框_第十课 日期选择框(datepicker)的操作
  8. 推荐:万能模板,十分钟打造电商首焦Banner
  9. linux动态可执行文件,Linux中ELF格式 可执行文件+动态链接器 的加载
  10. nginx + keepalived 主从模式
  11. 9.82万枚ETH在近一周被质押至以太坊2.0合约
  12. Centos7(Ubuntu)密码登录失败锁定设置(亲测)
  13. 计算机应用数学,计算机应用数学.PDF
  14. 动态网站开发技术学习2:VS 2010制作作第一个简单示例网站
  15. 课程设计之贪吃蛇小游戏制造
  16. IB心理学生物分析模块
  17. 2.4G无线模块(NRF24L01)学习(2)——单片机互相控制LED灯
  18. MATLAB启动慢解决措施
  19. 微信“小程序”要来了,简单点,解释的方式简单点
  20. 软件测试公司折扣政策,@软件企业看,这些税收优惠政策请收下

热门文章

  1. STM32串口中断接收实验
  2. 幸福公开课字幕 中英文全
  3. 通过图片识别定位拍摄地点——微信小程序
  4. python字典求平均值_Python
  5. 本地编译执行 Kubernetes e2e 测试
  6. 解决 ArchLinux 下中文 Chinese 不能输入 couldnt input 的问题
  7. 圣思园——Java SE Lesson 4
  8. Matlab axis函数应用简介
  9. 关于H3C光模块和华为光模块的型号大全
  10. 微信小程序获取当前系统时间以及判断周几