matlab ellipticf,[Matlab]椭圆滤波器设计:低通、高通、带通和带阻
椭圆滤波器(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]椭圆滤波器设计:低通、高通、带通和带阻相关推荐
- [Matlab]椭圆滤波器设计:低通、高通、带通和带阻(4)
[Matlab]椭圆滤波器设计:低通.高通.带通和带阻-------(4) 椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter),是在通带和阻带等波纹的一种滤波器 ...
- 低通采样的matlab实现,基于matlab的FIR滤波器设计(低通,频率取样法)
基于matlab的FIR滤波器设计(低通,频率取样法)一.参考程序 M=63;%所需频率采样点个数 Wp=0.5*pi;%通带截止频率 m=0:(M+1)/2;%通频带上的采样点 Wm=2*pi*m. ...
- 基于fdatool的滤波器设计(低通、带通、高通)
体程序参考原文: 基于fdatool的滤波器设计(低通.带通.高通) - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/47392900 一.关于 结合上一篇8PSK ...
- 双线性变换 matlab,matlab和双线性变换的滤波器设计.doc
matlab和双线性变换的滤波器设计.doc 武汉理工大学MATLAB课程设计报告书题目MATLAB课程设计基于MATLAB和双线性变换的滤波器设计初始条件MATLAB仿真软件数字信号处理与图像处理基 ...
- fir 低通 matlab,MATLAB常用的FIR滤波器设计方法之窗函数法
FIR滤波器很多工科出身的人都不会陌生,在我们的学习和工作中,也常常需要设计FIR滤波器.因为FIR滤波器有两个特点:滤波器是稳定的以及具有线性相位.FIR滤波器在信号处理相关领域当然也包括本人所在的 ...
- 【 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 ...
- 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 ...
- Matlab幅频曲线和滤波器设计
前言少叙,下面开始正题. 一.离散数字信号的表示 n=-3:5;subplot(221); x1=(n==0); stem(n,x1,'.'); title('单位冲击'); axis([-4,4,- ...
- 基于matlab的巴特沃斯滤波器设计
一.butterworth滤波器也称最平响应特性滤波器,其特征多项式为: |K(jΩ)|^2=K(jΩ)K(-jΩ)=(Ω/Ωc)^2N 巴特沃斯滤波器的模平方函数为: |H(jΩ)|^2=1/(1+ ...
最新文章
- python3 的range
- LeetCode 143. 重排链表(Reorder List)
- jdbc mysql 字符集_JDBC对Mysql utf8mb4字符集的处理
- 一个Demo让你掌握Android所有控件
- 企业实战_01_ Mycat 主要作用_01
- mysql多副本搭建_一个简单的MySQL多实例环境搭建
- 产品经理如何利用ER图,指导原型设计?
- MySQL_存储引擎
- Android开发 更改返回button的图标
- Unreal Engine 4 —— 版本兼容的工作原理以及一些可优化项
- cvi中c语言只保留两位小数,保留两位小数,但要求只显示一位小数,怎么实现?...
- Spring AOP(四)之After增强处理
- C++11 关键字override和final
- serv-u启动管理控制台后提示脚本错误解决方案
- 关于 Pycharm专业版 安装教程,简单好用
- SR 学习记录----JUNOS为例
- cygwin使用apt-cyg
- 关闭win10的繁体字快捷键ctrl+shift+f
- idea自动排版html,idea怎么格式化代码?
- erp系统设计与开发:独自一人开发一整套erp系统是什么水平?
热门文章
- 【手动导入maven包】
- IEEE期刊/会议模板
- 2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru
- C语言经典——闰年问题
- 清华5天内5则讣告,校方:把守护好老同志的生命健康作为当前疫情防控的重点...
- MATLAB技术手册(针对大学课设的技术介绍及仿真实例演示)
- SSO、单点登录、集成 CAS、OAuth2
- SAS实现因子分析代码
- 使用Dobot的一些问题记录
- mysql-5.7.17-winx64安装文件在哪里_mysql-5.7.17-winx64的安装配置