基于切比雪夫I型的高通滤波器设计Matlab
设计题目基于切比雪夫I型的数字高通滤波器的设计设计要求设计一个9阶切比雪夫I型高通滤波器,通带纹波为10dB,下边界频率为400 /rad s,并绘出其幅频响应曲线设计过程1.系统设计方案1.1 Matlab的简介和主要功能:简介:MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
使用 MATLAB,您可以较使用传统的编程语言(如 C、C++ 和 Fortran)更快地解决技术计算问题。
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。
MATLAB 提供了很多用于记录和分享工作成果的功能。
可以将您的 MATLAB 代码与其他语言和应用程序集成,来分发您的 MATLAB 算法和应用。
主要功能:1.此高级语言可用于技术计算2.此开发环境可对代码、文件和数据进行管理3.交互式工具可以按迭代的方式探查、设计及求解问题4.数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等5.二维和三维图形函数可用于可视化数据6.各种工具可用于构建自定义的图形用户界面7.各种函数可将基于 MATLAB 的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成1.2 开发算法和应用程序开发算法和应用程序MATLAB 提供了一种高级语言和开发工具,使您可以迅速地开发并分析算法和应用程序。
MATLAB 语言MATLAB 语言支持向量和矩阵运算,这些运算是工程和科学问题的基础。
这样使得开发和运行的速度非常快。
使用 MATLAB 语言,编程和开发算法的速度较使用传统语言大大提高,这是因为无须执行诸如声明变量、指定数据类型以及分配内存等低级管理任务。
在很多情况下,MATLAB 无须使用 "for" 循环。
因此,一行 MATLAB 代码经常等效于几行 C 或 C++ 代码。
同时,MATLAB 还提供了传统编程语言的所有功能,包括算法运算符、流控制、数据结构、数据类型、面向对象编程 (OOP) 以及调试功能。
利用 MATLAB,无须执行编译和链接即可一次执行一个或一组命令,这样就可以迅速迭代到最佳解决方案。
为快速执行大量的矩阵和向量计算,MATLAB 使用了处理器经过优化的库。
对于通用的标量计算,MATLAB 使用其 JIT(即时)编译技术生成机器代码指令。
这一技术可用于大多数平台,它提供了可与传统编程语言相媲美的执行速度。
开发工具MATLAB 包含一些有助于高效实施算法的开发工具。
这些工具如下:MATLAB 编辑器 -提供标准的编辑和调试功能,如设置断点及单步执行M-Lint 代码检查器- 对代码进行分析并提出更改建议,以提高其性能和可维护性MATLAB 事件探查器 - 记录执行各行代码所花费的时间目录报表 -扫描目录中的所有文件,并报告代码效率、文件差异、文件相关性和代码覆盖1.3 分析和访问数据分析和访问数据MATLAB 对整个数据分析过程提供支持,该过程从外部设备和数据库获取数据,通过对其进行预处理、可视化和数值分析,最后到生成质量达到演示要求的输出。
数据分析MATLAB 提供了一些用于数据分析运算的交互式工具和命令行函数,包括:1.内插和抽取2.抽取数据段、缩放和求平均值3.阈值和平滑处理4.相关性、傅立叶分析和筛选5.一维峰值、谷值以及零点查找6.基本统计数据和曲线拟合7.矩阵分析数据访问MATLAB 是一个可高效地从文件、其他应用程序、数据库以及外部设备访问数据的平台。
您可以从各种常用文件格式(如 Microsoft Excel)、ASCII 文本或二进制文件、图像、语音和视频文件以及诸如 HDF 和 HDF5 等科学文件中读取数据。
借助低级二进制文件 I/O 函数,可以处理任意格式的数据文件。
而其他函数可使您从 Web 页面和 XML 中读取数据。
1.4 数据可视化实现数据可视化MATLAB 中提供了将工程和科学数据可视化所需的全部图形功能。
这些功能包括二维和三维绘图函数、三维卷可视化函数、用于交互式创建图形的工具以及将结果输出为各种常用图形格式的功能。
可以通过添加多个坐标轴、更改线的颜色和标记、添加批注、LATEX 方程和图例以及绘制形状,对图形进行自定义。
二维绘图可以通过使用二维绘图函数将数据向量可视化,创建以下图形:1.线图、区域图、条形图以及饼图2.方向图及速率图三维绘图和卷可视化MATLAB 提供了一些用于将二维矩阵、三维标量和三维向量数据可视化的函数。
可以使用这些函数可视化庞大的、通常较为复杂的多维数据,以帮助理解;还可以指定图形特性,如相机取景角度、透视图、灯光效果、光源位置以及透明度等等。
三维绘图函数包括:1.曲面图、轮廓图和网状图2.成像图3.锥形图、切割图、流程图以及等值面图交互式创建和编辑图形MATLAB 提供了一些用于设计和修改图形的交互式工具。
在 MATLAB 图形窗口中,可以执行以下任务:1.将新的数据集拖放到图形上2.更改图形上任意对象的属性3.缩放、旋转、平移以及更改相机角度和灯光4.添加批注和数据提示5.绘制形状6.生成可供各种数据重复使用的 M 代码函数1.5 执行数字运算执行数值计算MATLAB 包含了各种数学、统计及工程函数,支持所有常见的工程和科学运算。
这些由数学方面的专家开发的函数是 MATLAB 语言的基础。
这些核心的数学函数使用 LAPACK 和 BLAS 线性代数子例程库和 FFTW 离散傅立叶变换库。
由于这些与处理器相关的库已针对 MATLAB 支持的各种平台进行了优化,因此其执行速度比等效的 C 或 C++ 代码的执行速度要快。
MATLAB 提供了以下类型的函数,用于执行数学运算和数据分析:1.矩阵操作和线性代数2.多项式和内插3.傅立叶分析和筛选4.数据分析和统计5.优化和数值积分6.常微分方程 (ODE)7.偏微分方程 (PDE)MATLAB 可对包括双精度浮点数、单精度浮点数和整型在内的多种数据类型进行运算。
附加的工具箱(单独提供)提供了专门的数学计算函数,用于包括信号处理、优化、统计、符号数学、偏微分方程求解以及曲线拟合在内的各个领域。
1.6 发布结果和部署应用程序MATLAB 提供了很多用于记录和分享工作成果的功能。
可以将 MATLAB 代码与其他语言和应用程序集成,并将 MATLAB 算法和应用程序部署为独立程序或软件模块。
发布结果利用 MATLAB ,可以将结果导出为图形或完整的报表。
您可以将图形导出为各种常用的图形文件格式,然后将图形导入到诸如 Microsoft Word 或 Microsoft PowerPoint 等其他软件包中。
使用 MATLAB 编辑器,可以用 HTML 、Word 、LATEX 和其他格式发布 MATLAB 代码。
部署应用程序可以在 MATLAB 中创建算法并将其作为 M 代码分发给其他 MATLAB 用户。
使用 MATLAB 编译器(单独提供),可以将算法作为项目中的独立应用程序或软件模块部署给未使用 MATLAB 的用户。
借助其他产品,可以将算法转换为能从 COM 或 Microsoft Excel 调用的软件模块。
2.滤波器性能分析和比较切比雪夫滤波器介绍在巴特沃兹滤波器中,幅度响应在通带和阻带内都是单调的。
因此,若滤波器的技术要求是用最大通带和阻带的逼近误差来给出的话,那么,在靠近通带低频端和阻带截止频率以上的部分都会超出技术指标。
一种比较有效的途径是使逼近误差均匀地分布于通带或阻带内,或同时在通带和阻带内都均匀分布,这样往往可以降低所要求的滤波器阶次。
通过选择一种具有等波纹特性而不是单调特性的逼近方法可以实现这一点。
切比雪夫型滤波器就具有这种性质:其频率响应的幅度既可以在通带中是等波纹的,而在阻带中是单调的(称为I 型切比雪夫滤波器),也可以在通带中是单调的,而在阻带中是等波纹的(称为II 型切比雪夫滤波器)。
I 型切比雪夫滤波器的幅度平方函数是2|)(|Ωj H C =)/(1122c N V ΩΩ+ε (B.1)式中为N 阶切比雪夫多项式,定义为)cos cos()(1x N x V N -= (B.2)从定义切比雪夫多项式的 (B.5)式可以直接得出由)(x V N 和)(1x V N -求)(1x V N +的递推公式。
将三角恒等式代入 (B.2)式,得)(1x V N +=2x )(x V N -)(1x V N - (B.3)从 (B.5)式我们注意到,当0<x<1时,)(2x V N 在0和1之间变化;当x>1时,x 1cos -是虚数,所以)(x V N 像双曲余弦一样单调地增加。
参考(B.1)式,2|)(|Ωj H C 对于0≤c ΩΩ/≤1呈现出在1和1/(21ε+)之间的波动;而对于c ΩΩ/〉1单调地减小。
需要用三个参量来确定该滤波器:ε,c Ω和N 。
在典型的设计中,用容许的通带波纹来确定ε,而用希望的通带截止频率来确定c Ω。
然后选择合适的阶次N ,以便阻带的技术要求得到满足。
切比雪夫滤波器的极点在S 平面上呈椭圆分布。
他们的直径分别等于椭圆短轴和长轴。
短轴的长度等于2a c Ω ,其中a=(21N /1α-错误!未找到引用源。
) (B.4)式中 α=1-ε+21-+ε (B.5)长轴的长度等于2b c Ω,其中B=21(N /1α+错误!未找到引用源。
) (B.6)为了求切比雪夫滤波器在椭圆上极点的位置,我们首先要这样确定,在大圆和小圆上以等角度 等间隔排列的那些点:这些点对于虚轴呈对称分布,并且没有一个点落在虚轴上;但当N 为奇数时要有一个点落在实轴上,而当N 为偶数时,就都不会落在实轴上。
切比雪夫滤波器的极点落在椭圆上,起纵坐标由相应的大圆上点的纵坐标来表示,起横坐标由相应的小圆上点的横坐标来表示。
滤波器原理其作用是对输入信号起到滤波的作用。
对图4-1所示的LSI 系统,其时域输入关系是:y(n)=x(n)*h(n)图1-1 LSI 系统若y(n)、x(n)的傅立叶变换存在,则输入输出的频域关系是:Y()()*()j j j e X e H e ωωω= (B.7)当输入信号x(n)通过滤波器系统h(n)后,其输入y(n)中不再含有|ω|<c ω的频率域成分,仅使|ω|>c ω的信号成分通过。
因此,滤波器的形状不同,其滤波后的信号也不一样。
若滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这种滤波器称为为数字滤波器(DF, Digital Filter )。
用matlab设计高通滤波器,雪比切夫、fir两种方法 课程设计HPF
课 程 设 计20011 年 7月 1日 设计题目 学号专业班级 指导教师 学生姓名 张腾达 吴晔 陈丽娟 杨蕾通信电子电路课程设计 ——数字滤波器的设计 张静 光信息08-3班实验组员 张静 胡磊 艾永春 赵亚龙王宏道 胡进娟 马丽婷设计要求:某系统接收端接收到的信号为y=cos(2π*60t)+1.2cos(2π*140t)+2sin(2π*220t)+1.5sin(2π*300t)(A) 发现此信号夹杂了一个正弦噪声noise=1.5sin(2π*300t),请设计一个低通滤波器将此噪声滤除,从而恢复原信号。
(B) 发现此信号夹杂了一个正弦噪声noise= cos(2π*60t)+1.5sin(2π*300t) ,请设计一个带通滤波器将此噪声滤除,从而恢复原信号。
(C) 发现此信号夹杂了一个正弦噪声noise=1.2cos(2π*140t)+2sin(2π*220t),请设计一个带阻滤波器将此噪声滤除,从而恢复原信号。
(D) 发现此信号夹杂了一个正弦噪声noise= cos(2π*60t),请设计一个高通滤波器将此噪声滤除,从而恢复原信号。
要求:(1)请写出具体的MATLAB程序,并详细解释每条程序(2)画出滤波前后信号的频谱图(3)画出所设计滤波器的幅频和相频特性图,并写出具体参数参数计算:根据题目要求,开始选取Wp=2*60π,Ws=2*140π。
后来经老师指点,为了将阻带里的信号更好的滤除,通带里的信号更好的保持,达到较好的滤波效果,通带截止频率选取:Wp=2*70π>2*60π,阻带截止频率选取:Ws=2*120π<2*140π,输入信号为:y=cos(2π*60t)+1.2cos(2π*140t)+2sin(2π*220t)+1.5sin(2π*300t) 可知信号最高频率为2*300*π/(2π)=300Hz。
由奈奎斯特抽样定理得,fs>=2*300=600(Hz),这里为了得到更好的抽样效果,同时简化计算,选取fs=1000Hz。
matlab 切比雪夫带通滤波器实现
matlab 切比雪夫带通滤波器实现
本文介绍如何使用matlab实现切比雪夫带通滤波器。
切比雪夫
滤波器是一种数字滤波器,可在给定的频率范围内阻止不需要的频率分量。
切比雪夫滤波器的特点在于它对幅频响应的最大偏差是可控的,因此被广泛地应用于信号处理、图像处理、通信等领域。
要在 matlab 中实现切比雪夫带通滤波器,需要先确定以下参数:通带频率范围、阻带频率范围、通带最大衰减度、阻带最小衰减度。
然后,使用 matlab 中提供的 cheb1ap 函数来计算切比雪夫滤波器
的传递函数。
具体步骤如下:
1. 确定通带频率范围、阻带频率范围、通带最大衰减度、阻带
最小衰减度,将这些参数赋值给对应的变量。
2. 使用 cheb1ap 函数计算切比雪夫滤波器的传递函数。
cheb1ap 函数的基本调用格式为 [n,wn]=cheb1ap(Wp,Ws,Rp,Rs),其中 Wp 和 Ws 分别是通带和阻带的归一化频率,Rp 和 Rs 分别是通
带最大衰减度和阻带最小衰减度。
函数返回的 n 和 wn 分别表示滤
波器的阶数和角频率。
3. 将传递函数转换为离散时间域上升通带滤波器的差分方程,
使用 tf2zp 函数将差分方程转换为零极点形式。
4. 使用 zp2sos 函数将零极点形式转换为二阶序列滤波器表示。
5. 使用 sosfilt 函数对信号进行滤波处理。
6. 将滤波结果可视化,比较滤波前后的信号,检查滤波效果。
使用 matlab 实现切比雪夫带通滤波器需要一定的数学基础和编程经验,但是掌握了这种滤波器的应用方法可以为信号处理和通信方面的工作提供很大的便利。
[Matlab]切比雪夫Ⅰ型滤波器设计:低通、高通、带通和带阻
[Matlab]切⽐雪夫Ⅰ型滤波器设计:低通、⾼通、带通和带阻切⽐雪夫Ⅰ型滤波器特点:1、幅度特性是在⼀个频带内(通带或阻带)范围内具有等波纹特性;2、Ⅰ型在通带范围内是等波纹的,在阻带范围内是单调的。
测试代码:% Cheby1Filter.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 = 90/(fs/2); %阻带截⽌频率,取50~100中间的值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 40;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N1 wc1 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N1,alpha_p,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; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N2 wc2 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N2,alpha_p,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; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N3 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N3,alpha_p,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; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N4 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N4,alpha_p,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的切比雪夫及巴特沃斯低通高通滤波器的设计
巴特沃斯低通、切比雪夫低通、高通IIR滤波器设计05941401 1120191454 焦奥一、设计思路IIR滤波器可以分为低通、高通、带通、带阻等不同类型的滤波器,而以系统函数类型又有巴特沃斯、切比雪夫等滤波器。
其中巴特沃斯较为简单,切比雪夫较为复杂;低阶比高阶简单,但却有着不够良好的滤波特性。
在满足特定的指标最低要求下,低阶、巴特沃斯滤波器能更大程度地节省运算量以及复杂程度。
滤波器在不同域内分为数字域和模拟域。
其中数字域运用最广泛。
在设计过程中,一般是导出模拟域的滤波器,之后通过频率转换变为数字域滤波器,实现模拟域到数字域的传递。
在针对高通、带通、带阻的滤波器上,可以又低通到他们的变换公式来进行较为方便的转换。
综上,IIR滤波器的设计思路是,先得到一个满足指标的尽可能简单的低通模拟滤波器,之后用频域变换转换到数字域。
转换方法有双线性变换法、冲激响应不变法等。
虽然方法不同,但具体过程有很多相似之处。
首先将数字滤波器的指标转换为模拟滤波器的指标,之后根据指标设计模拟滤波器,再通过变换,将模拟滤波器变换为数字滤波器,是设计IIR滤波器的最基本框架。
以下先讨论较为简单的巴特沃斯低通滤波器。
二、巴特沃斯低通滤波假设需要一个指标为0~4hz内衰减小于3db、大于60hz时衰减不小于30db的滤波器。
其中抽样频率为400hz。
以双线性变换方法来设计。
首先将滤波器转换到模拟指标。
T =1f f ⁄=1400Ωf ′=2ff f =8ff f =Ωf ′f =0.02fΩf ′=2ff f =120ff f =Ωf ′f =0.3f根据双线性变换Ω=2f tan (f 2) 得到Ωf =25.14Ωf =407.62这就得到了模拟域的指标。
由巴特沃斯的方程Α2(Ω)=|f f (f Ω)|2=11+(ΩΩf )2f20ff |f f (f Ω)|=−10ff [1+(ΩΩf)2f] {20ff |f f (f Ωf )|≥−320ff |f f (f Ωf )|≤−30ff得到{ −10ff [1+(Ωf Ωf)2f ]≥−3−10ff [1+(Ωf Ωf )2f]≤−30当N取大于最小值的整数时,解出N=2,因此为二阶巴特沃斯低通滤波器。
matlab程序切比雪夫I型高通数字滤波器
2.高通滤波器function y=highp(x,f1,f3,rp,rs,Fs)%高通滤波%使用注意事项:通带或阻带的截止频率的选取范围是不能超过采样率的一半%即,f1,f3的值都要小于Fs/2%x:需要带通滤波的序列% f 1:通带截止频率% f 2:阻带截止频率%rp:边带区衰减DB数设置%rs:截止区衰减DB数设置%FS:序列x的采样频率% rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值% Fs=2000;%采样率%wp=2*pi*f1/Fs;ws=2*pi*f3/Fs;% 设计切比雪夫滤波器;[n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs);[bz1,az1]=cheby1(n,rp,wp/pi,'high');%查看设计滤波器的曲线[h,w]=freqz(bz1,az1,256,Fs);h=20*log10(abs(h));figure;plot(w,h);title('所设计滤波器的通带曲线');grid on;y=filter(bz1,az1,x);end下面是高通滤波器的例子fs=2000;t=(1:fs)/fs;ff1=100;ff2=400;x=sin(2*pi*ff1*t)+sin(2*pi*ff2*t);figure;subplot(211);plot(t,x);subplot(212);hua_fft(x,fs,1);%------高通测试z=highp(x,350,300,0.1,20,fs);figure;subplot(211);plot(t,z);subplot(212);hua_fft(z,fs,1);下面三幅图分别是滤波前的时频图,滤波器的滤波特性曲线图和滤波后的时频图,通过图可以看出成功留下了400Hz的高频成分而把不要的低频成分100Hz去除了。
matlab 切比雪夫带通滤波器实现
matlab 切比雪夫带通滤波器实现带通滤波器是一种常见的数字信号处理技术,它可用于提取目标频率段内的信号,滤除无用频率段内的干扰信号。
在数字信号处理领域中,存在着多种带通滤波器的实现方式,而切比雪夫带通滤波器是其中一种方法。
切比雪夫带通滤波器与其他滤波器不同之处在于,它能够提供更为陡峭的通带和阻带边缘。
这是由于它声称的Chebyshev响应函数,其中的“Chebyshev”指的是切比雪夫多项式。
切比雪夫滤波器将极陡峭的边缘带给了滤波器,以便按照严格的信号频率进行过滤。
切比雪夫滤波器的设计,需要知道带通滤波器的通带上限fc,下限fc’,以及有选择性地保留其特定频率范围内的信号。
为了从信号中切除这些频率外的信息,切比雪夫设计要求用户指定这些频率范围的阻带跨越带宽bw,以及在通带中允许的最大衰减或输出变弱的增益tol_db。
为了设计一个切比雪夫带通滤波器,我们需要首先输入所需的频率截止值和带宽,然后计算其非标准化参数,最终,选择适当的滤波器阶数进行计算,生成相应的滤波器系数。
Matlab中可以使用signal库中的函数设计切比雪夫带通滤波器,具体步骤如下:1.输入所需的通带上限fc、下限fc’,以及阻带跨越带宽bw和允许的最大衰减或输出变弱的增益tol_db。
2.计算非标准化参数epsilon,并将其应用于滤波器阶数N的计算。
3.使用design()函数和signal.fir1()函数找到设计参数N和alpha。
4.通过signal.fir1()函数生成切比雪夫带通滤波器系数。
例如,以下代码可实现一个带有通带上限50Hz和下限20Hz,阻带跨越带宽10Hz和最大衰减40dB的切比雪夫带通滤波器:fc1 = 20;fc2 = 50;fs = 200;bw = 10;tol_db = 40;%计算非标准化参数epsilondelta_omega_p = 2*pi*bw/fs;delta_omega_s1 = 2*pi*(fc1-bw/2)/fs;delta_omega_s2 = 2*pi*(fc2+bw/2)/fs;epsilon = sqrt(10^(tol_db/10)-1);A =log10((1/epsilon)+sqrt(1+(1/epsilon)^2))/log10(1/delta_omega_ p);%求滤波器阶数和alpha[N, alpha] = cheb1ord(delta_omega_p, delta_omega_s2,tol_db, tol_db);%通过signal.fir1()函数生成切比雪夫带通滤波器系数h = fir1(N, [delta_omega_s1 delta_omega_s2]/(2*pi),'bandpass', chebwin(N+1, alpha));使用这个滤波器可以滤除一些干扰信号,保留20Hz到50Hz之间的信号,得到目标带通信号。
matlab 切比雪夫带通滤波器实现
matlab 切比雪夫带通滤波器实现
本文将介绍如何使用MATLAB实现切比雪夫带通滤波器。
切比雪夫带通滤波器是一种数字滤波器,用于将一定范围内的频率信号从输入信号中滤除。
使用 MATLAB 对信号进行数字滤波可以得到更加精确的结果,并且可以方便地进行可视化分析。
步骤:
1. 定义需要滤波的信号。
可以使用 MATLAB 自带的信号生成函数,如 sin、cos 等,也可以导入自己的信号数据。
2. 定义切比雪夫带通滤波器的参数。
主要包括通带频率、阻带频率、通带最大衰减、阻带最小衰减等。
3. 使用 MATLAB 自带的函数 butter 设计数字滤波器。
其中,第一个参数为滤波器的阶数,第二个参数为通带或阻带的频率,第三个参数为滤波器类型,可以选择带通、带阻、低通或高通等。
4. 使用设计好的滤波器对输入信号进行滤波。
可以使用MATLAB 自带的函数 filter 实现。
5. 对滤波后的信号进行可视化展示。
可以使用 MATLAB 自带的绘图函数 plot 进行绘制。
6. 分析滤波效果。
通过观察滤波后的信号波形和频谱图,可以评估滤波器的效果是否符合要求。
总之,使用 MATLAB 实现切比雪夫带通滤波器可以帮助我们更加精确地处理信号,并且可以通过可视化手段来分析滤波效果。
- 1 -。
基于切比雪夫I型的IIR数字高通滤波器设计
《数字信号处理》课程设计题目:基于切比雪夫I型的IIR数字高通滤波器设计学院名称电气工程学院指导老师班级电子信息工程学号学生姓名二0一一年六月目录(一)数字滤波器的概述-------------------------------------------3 1.1 数字滤波器的设计方法------------------------------------------------3 1.2 数字滤波器的性能要求------------------------------------------------3 1.3 数字滤波器的技术要求------------------------------------------------4 (二)基于切比雪夫I型无限脉冲响应IIR数字高通滤波器的设计依据和原理----------------------------------------------------5 2.1 课设任务------------------------------------------------------------------5 2.2 IIR数字滤波器-----------------------------------------------------------5 2.3由模拟滤波器设计IIR数字滤波器---------------------------------7 2.4 数字高通滤波器的设计(本设计采用双线性变换法)--------9 (三)基于切比雪夫I型无限脉冲响应IIR数字高通滤波器的具体设计过程-----------------------------------------------------12 3.1 计算过程-----------------------------------------------------------------12 3.2 源程序代码--------------------------------------------------------------14 3.3结果分析------------------------------------------------------------------17 (四)总结和心得体会--------------------------------------------20 (五)参考文献-----------------------------------------------------21基于切比雪夫I 型的IIR 数字高通滤波器设计(一)数字滤波器的概述 1.1 数字滤波器的设计方法数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev 逼近法等等。
切比雪夫I型带通数字滤波器的设计仿真
本科毕业设计(论文)题目切比雪夫I型带通数字滤波器设计、仿真与频谱分析姓名周志强专业自动化学号 201042059指导教师杨杰慧郑州科技学院电气工程学院二○一四年四月目录摘要 (I)Abstract ................................................................................................................ I I 绪论 (III)1 数字滤波器的发展现状及前景 (1)1.1 数字滤波器的研究背景及意义 (1)1.2 数字滤波器的发展现状及前景 (1)2 数字滤波器的概述 (4)2.1 数字滤波器的概念 (4)2.2 数字滤波器的基本结构 (4)2.2.1 IIR滤波器的基本结构 (4)2.2.2 FIR滤波器的基本结构 (6)2.3 数字滤波器的分类 (7)2.4 带通数字滤波器 (10)2.4.1 带通数字滤波器的特点 (10)2.4.2 带通数字滤波器的作用 (10)2.5 带通数字滤波器的设计方法 (10)2.5.1 IIR数字滤波器的设计方法 (11)2.5.2 FIR数字滤波器的设计方法 (12)2.6 IIR数字滤波器与FIR数字滤波器的比较分析 (13)3 MATLAB简介 (15)3.1 MATLAB的概况 (15)3.2 MATLAB产生的历史过程 (15)3.3 MATLAB的语言特点 (17)3.4 MTALAB的功能 (18)4 数字滤波器的设计 (21)4.1 双线性变换法设计滤波器 (21)4.1.1 双线性变换的基本知识 (21)4.1.2 用双线性变换法设计IIR 数字带通滤波 (21)4.2 脉冲响应不变法设计滤波器 (22)4.2.1 脉冲响应不变法的基本知识 (22)4.2.2 用脉冲响应不变法设计IIR数字带通滤波 (22)4.3 脉冲响应不变法与双线性变换法的比较 (24)4.4 数字滤波器的算法设计 (25)4.4.1 巴特奥兹滤波器 (25)4.4.2 切比雪夫滤波器 (27)4.4.2 椭圆滤波器 (29)5 仿真过程 (31)5.1 用MATLAB设计滤波器的步骤 (31)5.2 设定系统的仿真对象 (31)5.3 系统对象滤波器设计方法 (31)5.4 MATLAB程序仿真设计 (32)5.4.1 产生一个含有50Hz、100Hz和150Hz的混合正弦波信号 325.4.2 对混合正弦波信号X进行滤波 (33)5.4.3 绘出信号滤波前、后的幅频图 (34)5.4.4 创建仿真模型图 (35)5.4.5 仿真模块参数设置 (36)5.5 系统仿真运行 (38)结论 (40)致谢 (41)参考文献 (42)郑州科技学院毕业设计(论文)任务书题目切比雪夫I型带通数字滤波器设计、仿真与频谱分析专业自动化学号 201042059姓名周志强一、毕业设计主要内容学习数字信号处理的知识,掌握数字滤波器的设计方法,掌握用FFT分析信号频谱的方法。
基于切比雪夫I型的高通滤波器设计Matlab
图1-1 LSI 系统若y(n)、x(n)的傅立叶变换存在,则输入输出的频域关系是:Y()()*()j j j e X e H e ωωω= (B.7)当输入信号x(n)通过滤波器系统h(n)后,其输入y(n)中不再具有|ω|<c ω的频率域成分,仅使|ω|>c ω的信号成分通过。
因此,滤波器的形状不同,其滤波后的信号也不同样。
若滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这种滤波器称为为数字滤波器(DF, Digital Filter )。
当用硬件实现一个DF 时,所需的元件是延迟器、乘法器和加法器:而运用MATLAB 软件时,它仅需线性卷积程序便可以实现。
众所周知,模拟滤波器(AF, Analog Filer)只能用硬件来实现,其元件是电阻R ,电感L ,电容C 及运算放大器等。
因此DF 的实现要比AF 容易得多,且更容易获得较抱负的滤波性能。
滤波器的种类滤波器的种类很多,分类方法也不同,可以从功能上分,也可以从实现方法上分,或从设计方法上分等。
但总的来说,滤波器可分为两大类,即经典滤波器和现代滤波器。
经典滤波器是假定输入信号x(n)中的有用成分和无用成分(如噪声)各自占有不同的频带,当x(n)通过滤波器后可将无用成分有效滤去。
假如信号中的有用成分和无用成分的频带互相重叠,那么经典滤波器将无法滤除信号中的无用成分。
现代滤波器理论研究的重要内容是从具有噪声的数据记录(又称为时间时间系列)中估计出信号的某些特性或信号自身。
一旦信号被估计出,那么估计出的信号与原信号相比较高的信噪比。
现代滤波器把信号和噪声都视为随机信号,运用它们的记录特性(如自相关函数、功率谱等)推导出一套最佳的估值算法,然后用硬件或软件予以实现。
现在滤波器理论源于维纳在20世纪40年代及其以后的工作,因此维纳滤波器便是这一类滤波器的典型代表。
此外,尚有卡尔曼滤波器、线性预测滤波器、自适应滤波器等。
