低通滤波器参数:Fs=8000,fp=2500,fs=3500,Rp=1dB,As=30dB,其他滤波器可以通过与低通之间的映射关系实现。

%%模拟滤波器

%巴特沃斯——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率

[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B,A,wk);

figure

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

title('巴特沃斯模拟滤波器')

axis([0,4,-35,5])

%%

%切比雪夫I——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N1,wp1]=cheb1ord(wp,ws,Rp,As,'s')%计算切比雪夫滤波器的阶数和通带边界频率

[B1,A1]=cheby1(N1,Rp,wp1,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B1,A1,wk);figure,

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

title('切比雪夫I模拟滤波器')

axis([0,4,-35,5])

%%

%切比雪夫II——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N2,wso]=cheb2ord(wp,ws,Rp,As,'s')%计算切比雪夫滤波器的阶数和通带边界频率

[B2,A2]=cheby2(N1,Rp,wso,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B1,A1,wk);figure,

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

title('切比雪夫II模拟滤波器')

axis([0,4,-35,5])

%%

%椭圆——滤波器设计

wp=2*pi*2500;ws=2*pi*3500;Rp=1;As=30;

[N,wpo]=ellipord(wp,ws,Rp,As,'s')%计算滤波器的阶数和通带边界频率

[B,A]=ellip(N,Rp,As,wpo,'s');%计算滤波器系统函数分子分母多项式

fk=0:800/512:8000;wk=2*pi*fk;

Hk=freqs(B1,A1,wk);figure,

plot(fk/1000,20*log10(abs(Hk)));

grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')

axis([0,4,-35,5]),title('椭圆模拟滤波器')

%%

%数字滤波器

%脉冲响应法滤波器设计

fp=2500;fs=3500;Fs=8000;

wp=2*fp/Fs;ws=2*fs/Fs;%求归一化数字通带截止频率,求归一化数字阻带起始频率

deltaw=ws-wp;%求过渡带宽

N0=ceil(6.6/deltaw);%求窗口长度

N=N0+mod(N0+1,2); %确保窗口长度 N为奇数

n=N-1;%求出滤波器的阶数 n

wn=(ws+wp)/2; %求滤波器的截止频率

b=fir1(n,wn)%利用 fir1 函数求出滤波器的系数

[Hk,w] = freqz(b,1);                     %  计算频率响应

mag = abs(Hk);                         %  求幅频特性

db = 20*log10(mag/max(mag));           %  化为分贝值

dw =pi/512; %关于pi归一化

Rp = -(min(db(1:wp*pi/dw+1)))            %  检验通带波动

As = -(max(db(ws*pi/dw+1:512)))         %  检验最小阻带衰减

figure,plot(0:pi/511:pi,db),grid on

axis([0,4.0,-80,5]),title('数字滤波器——脉冲响应法')

%%

%fir1窗函数法

fp=2500;fs=3500;Fs=8000;rs=30;

wp=2*fp*pi/Fs;ws=2*fs*pi/Fs;%求归一化数字通带截止频率,求归一化数字阻带起始频率

Bt=ws-wp;%求过渡带宽

alpha=0.5842*(rs-21)^0.4+0.07886*(rs-21);%计算kaiser窗的控制参数

M=ceil((rs-8)/2.285/Bt);%求出滤波器的阶数

wc=(ws+wp)/2/pi; %求滤波器的截止频率并关于pi归一化

hk=fir1(M,wc,kaiser(M+1,alpha))%利用 fir1 函数求出滤波器的系数

[Hk,w] = freqz(hk,1);                     %  计算频率响应

mag = abs(Hk);                         %  求幅频特性

db = 20*log10(mag/max(mag));           %  化为分贝值

db1=db';

figure,plot(0:pi/511:pi,db1),grid on

axis([0,4.0,-80,5]),title('数字滤波器——fir1窗函数法')

%%

%频率采样法

fp=2500;fs=3500;Fs=8000;rs=30;

wp=2*fp*pi/Fs;ws=2*fs*pi/Fs;%求归一化数字通带截止频率,求归一化数字阻带起始频率

Bt=ws-wp;%求过渡带宽

m=1;alpha=0.5842*(rs-21)^0.4+0.07886*(rs-21);%计算kaiser窗的控制参数

N=ceil(m+1)*2*pi/Bt;%求出滤波器的阶数

N=N+mod(N+1,2);

Np=fix(wp/(2*pi/N));

Ns=N-2*Np-1;

Hk=[ones(1,Np+1),zeros(1,Ns),ones(1,Np)];

wc=(ws+wp)/2/pi; %求滤波器的截止频率并关于pi归一化

hk=fir1(M,wc,kaiser(M+1,alpha))%利用 fir1 函数求出滤波器的系数

[Hk,w] = freqz(hk,1);                     %  计算频率响应

mag = abs(Hk);                         %  求幅频特性

db = 20*log10(mag/max(mag));           %  化为分贝值

db1=db';

figure,plot(0:pi/511:pi,db1),grid on

axis([0,4.0,-80,5]),title('数字滤波器——频率采样法')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%

%利用等波纹最佳逼近法设计FIR数字滤波器

Fs=8000;f=[2500,3500];m=[1,0];

rp=1;rs=30;

delta1=(10^(rp/20)-1)/(10^(rp/20)+1);delta2=10^(-rs/20);

rip=[delta1,delta2];

[M,fo,mo,w]=remezord(f,m,rip,Fs);%边界频率为模拟频率时必须加入采样频率

M=M+1;%估算的M直达不到要求,家1后满足要求

hn=remez(M,fo,mo,w);

[Hk,w] = freqz(hn,1);                     %  计算频率响应

mag = abs(Hk);                         %  求幅频特性

db = 20*log10(mag/max(mag));           %  化为分贝值

db1=db';

figure,plot(0:pi/511:pi,db1),grid on

axis([0,4.0,-80,5]),title('数字滤波器——等波纹最佳逼近法')

转载:http://blog.sina.com.cn/s/blog_79ecf6980100vcrf.html

模拟和数字低通滤波器的MATLAB实现的更多相关文章

  1. 【转】【MATLAB】模拟和数字低通滤波器的MATLAB实现

    原文地址:http://blog.sina.com.cn/s/blog_79ecf6980100vcrf.html 低通滤波器参数:Fs=8000,fp=2500,fs=3500,Rp=1dB,As= ...

  2. 《数字图像处理(MATLAB)》冈萨雷斯

    <数字图像处理(MATLAB)>冈萨雷斯 未完结! 参考:数字图像处理——https://blog.csdn.net/dujing2019/article/category/8820151 ...

  3. 基于小波变换的数字图像处理(MATLAB源代码)

    基于小波变换的数字图像处理(MATLAB源代码) clear all; close all; clc;M=256;%原图像长度N=64; %水印长度[filename1,pathname]=uiget ...

  4. 程序点滴001_Python模拟点阵数字

    尝试过很多编程语言,写过不少程序(当然,基本上都是些自娱自乐或给自己用的工具类的小玩意儿),逐渐认识到编写程序是一个不断完善.不断优化的过程——编程首先要有一个想法(目标),围绕这个目标形成最基本的功 ...

  5. PCB布线设计-模拟和数字布线的异同(转)

    工程领域中的数字设计人员和数字电路板设计专家在不断增加,这反映了行业的发展趋势.尽管对数字设计的重视带来了电子产品的重大发展,但仍然存在,而且还会一直存在一部分与模拟或现实环境接口的电路设计.模拟和数 ...

  6. 数字图像处理的Matlab实现(4)—灰度变换与空间滤波

    第3章 灰度变换与空间滤波(2) 3.3 直方图处理与函数绘图 基于从图像亮度直方图中提取的信息的亮度变换函数,在诸如增强.压缩.分割.描述等方面的图像处理中扮演着基础性的角色.本节的重点在于获取.绘 ...

  7. 数字图像处理的Matlab实现(2)—MATLAB基础

    第2章 MATLAB编程基础 2.1 M-文件 MATLAB中的M-文件可以是简单执行一系列MATLAB语句的源文件,也可以是接收自变量并产生一个或多个输出的函数. M-文件由文本编辑器创建,并以fi ...

  8. 数字图像处理的Matlab实现(1)—绪论

    第1章 绪论 1.1 什么是数字图像处理 一幅图像可以定义为一个二维函数\(f(x,y)\),这里的\(x\)和\(y\)是空间坐标,而在任意坐标\((x,y)\)处的幅度\(f\)被称为这一坐标位置 ...

  9. 2018.07.26NOIP模拟 魔法数字(数位dp)

    魔法数字 题目背景 ASDFZ-NOIP2016模拟 题目描述 在数论领域中,人们研究的基础莫过于数字的整除关系.一般情况下,我们说整除总在两个数字间进行,例如 a | b(a能整除b)表示 b 除以 ...

随机推荐

  1. HDU 1171 Big Event in HDU【01背包/求两堆数分别求和以后的差最小】

    Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...

  2. POJ 2524 Ubiquitous Religions (并查集)

    Description 当今世界有很多不同的宗教,很难通晓他们.你有兴趣找出在你的大学里有多少种不同的宗教信仰.你知道在你的大学里有n个学生(0 < n <= 50000).你无法询问每个 ...

  3. Linux Shell 参数传递多种方式

    背景 最近编写ansible脚本,需要自动调用之前写好的shell脚本,由于shell脚本中包含了read命令接收用户的手动输入,为了实现ansible脚本的自动运行,不得不将手动输入转换为自动输入. ...

  4. 小白入门篇:flex布局

    --前言 因为这个星期写一个小的项目用到flex布局和grid布局,虽然这两种布局都是兼容性都有问题,但是别急,我觉的以后肯定是会发展并且流行起来的,毕竟google大法好,而且这两个布局真的比一般的 ...

  5. 【bzoj1485:】【 [HNOI2009]有趣的数列】模任意数的卡特兰数

    (上不了p站我要死了,侵权度娘背锅) Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇 ...

  6. DB2如何调整表空间大小

    DB2如何调整表空间大小 刚刚接到客户那边打的电话,程序一直报错,所有的业务都做不了,拷贝了一份应用服务器(weblogic)的日志,日志里显示: WARN : 2009-06-18 16:24:32 ...

  7. SQL DISTINCT 用法(去重)

    现在以下数据 查有出现的TeacherId SELECT TeacherID FROM Student 结果 有重复的ID出现 确实查法: SELECT TeacherID FROM Student ...

  8. 开源 ≠ 免费,开源协议License详解

    凡是做过软件开发的,都会接触到开源软件或开源组件,它们都会基于某种协议来提供源码和授权,那么这些开源协议到底有哪些约束呢? 在介绍之前,必须告诉大家,针对开源协议,必须打消“开源 = 免费”这个念头, ...

  9. 【spring boot】spring boot 2.0 项目中使用mysql驱动启动创建的mysql数据表,引擎是MyISAM,如何修改启动时创建数据表引擎为【spring boot 2.0】

    默认创建数据表使用的引擎是MyISAM 2018-05-14 14:16:37.283 INFO 7328 --- [ restartedMain] org.hibernate.dialect.Dia ...

  10. ASP.NET 5 简介

    来源https://docs.asp.net/en/latest/conceptual-overview/aspnet.html ASP.NET 5 是ASP.NET的重新设计. 什么是ASP.NET ...