原文地址:http://blog.sina.com.cn/s/blog_79ecf6980100vcrf.html

低通滤波器参数: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('数字滤波器——等波纹最佳逼近法')

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

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

    低通滤波器参数:Fs=8000,fp=2500,fs=3500,Rp=1dB,As=30dB,其他滤波器可以通过与低通之间的映射关系实现. %%模拟滤波器 %巴特沃斯——滤波器设计 wp=2*pi*2 ...

  2. 多普勒失真信号采样Matlab模拟分析

    多普勒失真信号采样Matlab模拟分析 方案 水声通信指的是使用声信号在水中数据传输. 相对而言.电磁信号在水中吸收严重衰减过快,光信号受水中悬浮颗粒的影响,也无法完毕远距离传输. 这两种信号的传播距 ...

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

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

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

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

  5. MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  6. MATLAB实现最优低通滤波器的函数

    MATLAB实现最优低通滤波器的函数 % Fs     --Data rate % Fpass  --pass band % Fstop  --Cutoff frequencies % Apass  ...

  7. csdn vip文章:使用matlab模拟镜头失真

    原文地址 https://blog.csdn.net/lircsszz/article/details/80249017 最近在研究图像校正,现将镜头失真中常见的径向畸变(radial distort ...

  8. 一些matlab教程资源收藏,使用matlab编程的人还是挺多的

    Matlab教程专题资源免费下载整理合集收藏 <MATLAB从入门到精通>高清文字版[PDF] 103.9MB 简体中文 <矩阵实验室>(Mathworks.Matlab.R2 ...

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

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

随机推荐

  1. 洛谷P3507 [POI2010]GRA-The Minima Game

    题目描述 Alice and Bob learned the minima game, which they like very much, recently. The rules of the ga ...

  2. Ruby truthy and falsey

    在Ruby里只有false 和nil表示falsey link: https://gist.github.com/jfarmer/2647362

  3. python 根据 数据库创建java 文件

    #coding=utf-8 import pymysql import os import re # 包全路径 packagepath=r'E:\idea工程\dc-exam\dc-exam\src\ ...

  4. 江西财经大学第一届程序设计竞赛 I

    链接:https://www.nowcoder.com/acm/contest/115/I来源:牛客网 题目描述 小P和小Q是好朋友,今天他们一起玩一个有趣的游戏. 他们的初始积分都为1,赢的人可以将 ...

  5. Java的观察者

    class Teacher extends Observable { public void startLesson() { System.out.println(String.format(&quo ...

  6. Hibernate JPA 如何使用SQL文直接查询

    对于复杂SQL,可以直接调用native sql来是实现 public List<Partner> findPartners() { List<Partner> partner ...

  7. 如何使用线程安全的HashMap

    转载:https://blog.csdn.net/qq_31493821/article/details/78855069 HashMap为什么线程不安全 导致HashMap线程不安全的原因可能有两种 ...

  8. Python IDLE快捷键汇总

    Python IDLE快捷键汇总 在Options→configure IDLE→keys,查看现存的快捷键,也可以配置选择快捷 编辑状态时: Ctrl+Shift+space(默认与输入法冲突,修改 ...

  9. Ancoda 下的python多版本共存

    Ancoda 下的python多版本共存 virtualenv python 多版本共存 Pip, Virtualenv 和Fabric 被称为python 的三大神器,Pip 是包管理工具,Virt ...

  10. thinkphp的初步认识

    框架的意义减少重复劳动便于团队配合增强安全性工作/面试都需要 为什么学习ThinkPHP国内公司用的多框架基本都是MVC架构,学一则通 一.框架的部署 1.1下载tp官网 http://www.thi ...