matlab ellip,IIR濾波器設計(調用MATLAB IIR函數來實現) | 學步園
% IIR濾波器設計
% 目的:設計一個採樣頻率為1000Hz、通帶截止頻率為50Hz、阻帶截止頻率為100Hz的低通濾波器,並要求通帶最大衰減為1dB,阻帶最小衰減為60dB。
clc;clear;close all;
% 1. 產生信號(頻率為10Hz和100Hz的正弦波疊加)
Fs=1000; % 採樣頻率1000Hz
t=0:1/Fs:1;
s10=sin(20*pi*t); % 產生10Hz正弦波
s100=sin(200*pi*t); % 產生100Hz正弦波
s=s10+s100; % 信號疊加
figure(1); % 畫圖
subplot(2,1,1);plot(s);grid;
title('原始信號');
% 2. FFT分析信號頻譜
len = 512;
y=fft(s,len); % 對信號做len點FFT變換
f=Fs*(0:len/2 - 1)/len;
subplot(2,1,2);plot(f,abs(y(1:len/2)));grid;
title('原始信號頻譜')
xlabel('Hz');ylabel('幅值');
% 3. IIR濾波器設計
N=0; % 階數
Fp=50; % 通帶截止頻率50Hz
Fc=100; % 阻帶截止頻率100Hz
Rp=1; % 通帶波紋最大衰減為1dB
Rs=60; % 阻帶衰減為60dB
% 3.0 計算最小濾波器階數
na=sqrt(10^(0.1*Rp)-1);
ea=sqrt(10^(0.1*Rs)-1);
N=ceil(log10(ea/na)/log10(Fc/Fp));
% 3.1 巴特沃斯濾波器
Wn=Fp*2/Fs;
[Bb Ba]=butter(N,Wn,'low'); % 調用MATLAB butter函數快速設計濾波器
[BH,BW]=freqz(Bb,Ba); % 繪製頻率響應曲線
Bf=filter(Bb,Ba,s); % 進行低通濾波
By=fft(Bf,len); % 對信號f1做len點FFT變換
figure(2); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,Bf,'red');grid;
legend('10Hz原始信號','巴特沃斯濾波器濾波後');
subplot(2,1,2);plot(f,abs(By(1:len/2)));grid;
title('巴特沃斯低通濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.2 切比雪夫I型濾波器
[C1b C1a]=cheby1(N,Rp,Wn,'low'); % 調用MATLAB cheby1函數快速設計低通濾波器
[C1H,C1W]=freqz(C1b,C1a); % 繪製頻率響應曲線
C1f=filter(C1b,C1a,s); % 進行低通濾波
C1y=fft(C1f,len); % 對濾波後信號做len點FFT變換
figure(3); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,C1f,'red');grid;
legend('10Hz原始信號','切比雪夫I型濾波器濾波後');
subplot(2,1,2);plot(f,abs(C1y(1:len/2)));grid;
title('切比雪夫I型濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.3 切比雪夫II型濾波器
[C2b C2a]=cheby2(N,Rs,Wn,'low'); % 調用MATLAB cheby2函數快速設計低通濾波器
[C2H,C2W]=freqz(C2b,C2a); % 繪製頻率響應曲線
C2f=filter(C2b,C2a,s); % 進行低通濾波
C2y=fft(C2f,len); % 對濾波後信號做len點FFT變換
figure(4); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,C2f,'red');grid;
legend('10Hz原始信號','切比雪夫II型濾波器濾波後');
subplot(2,1,2);plot(f,abs(C2y(1:len/2)));grid;
title('切比雪夫II型濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.4 橢圓濾波器
[Eb Ea]=ellip(N,Rp,Rs,Wn,'low'); % 調用MATLAB ellip函數快速設計低通濾波器
[EH,EW]=freqz(Eb,Ea); % 繪製頻率響應曲線
Ef=filter(Eb,Ea,s); % 進行低通濾波
Ey=fft(Ef,len); % 對濾波後信號做len點FFT變換
figure(5); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,Ef,'red');grid;
legend('10Hz原始信號','橢圓濾波器濾波後');
subplot(2,1,2);plot(f,abs(Ey(1:len/2)));grid;
title('橢圓濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.5 yulewalk濾波器
fyule=[0 Wn Fc*2/Fs 1]; % 在此進行的是簡單設計,實際需要多次仿真取最佳值
myule=[1 1 0 0]; % 在此進行的是簡單設計,實際需要多次仿真取最佳值
[Yb Ya]=yulewalk(N,fyule,myule); % 調用MATLAB yulewalk函數快速設計低通濾波器
[YH,YW]=freqz(Yb,Ya); % 繪製頻率響應曲線
Yf=filter(Yb,Ya,s); % 進行低通濾波
Yy=fft(Yf,len); % 對濾波後信號做len點FFT變換
figure(6); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,Yf,'red');grid;
legend('10Hz原始信號','yulewalk濾波器濾波後');
subplot(2,1,2);plot(f,abs(Yy(1:len/2)));grid;
title('yulewalk濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 4. 各個濾波器的幅頻響應對比分析
A1 = BW*Fs/(2*pi);
A2 = C1W*Fs/(2*pi);
A3 = C2W*Fs/(2*pi);
A4 = EW*Fs/(2*pi);
A5 = YW*Fs/(2*pi);
figure(7); % 畫圖
subplot(1,1,1);plot(A1,abs(BH),A2,abs(C1H),A3,abs(C2H),A4,abs(EH),A5,abs(YH));grid;
xlabel('頻率/Hz');
ylabel('頻率響應幅度');
legend('butter','cheby1','cheby2','ellip','yulewalk');
% IIR濾波器設計
% 目的:設計一個採樣頻率為1000Hz、通帶截止頻率為50Hz、阻帶截止頻率為100Hz的低通濾波器,並要求通帶最大衰減為1dB,阻帶最小衰減為60dB。
clc;clear;close all;
% 1. 產生信號(頻率為10Hz和100Hz的正弦波疊加)
Fs=1000; % 採樣頻率1000Hz
t=0:1/Fs:1;
s10=sin(20*pi*t); % 產生10Hz正弦波
s100=sin(200*pi*t); % 產生100Hz正弦波
s=s10+s100; % 信號疊加
figure(1); % 畫圖
subplot(2,1,1);plot(s);grid;
title('原始信號');
% 2. FFT分析信號頻譜
len = 512;
y=fft(s,len); % 對信號做len點FFT變換
f=Fs*(0:len/2 - 1)/len;
subplot(2,1,2);plot(f,abs(y(1:len/2)));grid;
title('原始信號頻譜')
xlabel('Hz');ylabel('幅值');
% 3. IIR濾波器設計
N=0; % 階數
Fp=50; % 通帶截止頻率50Hz
Fc=100; % 阻帶截止頻率100Hz
Rp=1; % 通帶波紋最大衰減為1dB
Rs=60; % 阻帶衰減為60dB
% 3.0 計算最小濾波器階數
na=sqrt(10^(0.1*Rp)-1);
ea=sqrt(10^(0.1*Rs)-1);
N=ceil(log10(ea/na)/log10(Fc/Fp));
% 3.1 巴特沃斯濾波器
Wn=Fp*2/Fs;
[Bb Ba]=butter(N,Wn,'low'); % 調用MATLAB butter函數快速設計濾波器
[BH,BW]=freqz(Bb,Ba); % 繪製頻率響應曲線
Bf=filter(Bb,Ba,s); % 進行低通濾波
By=fft(Bf,len); % 對信號f1做len點FFT變換
figure(2); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,Bf,'red');grid;
legend('10Hz原始信號','巴特沃斯濾波器濾波後');
subplot(2,1,2);plot(f,abs(By(1:len/2)));grid;
title('巴特沃斯低通濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.2 切比雪夫I型濾波器
[C1b C1a]=cheby1(N,Rp,Wn,'low'); % 調用MATLAB cheby1函數快速設計低通濾波器
[C1H,C1W]=freqz(C1b,C1a); % 繪製頻率響應曲線
C1f=filter(C1b,C1a,s); % 進行低通濾波
C1y=fft(C1f,len); % 對濾波後信號做len點FFT變換
figure(3); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,C1f,'red');grid;
legend('10Hz原始信號','切比雪夫I型濾波器濾波後');
subplot(2,1,2);plot(f,abs(C1y(1:len/2)));grid;
title('切比雪夫I型濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.3 切比雪夫II型濾波器
[C2b C2a]=cheby2(N,Rs,Wn,'low'); % 調用MATLAB cheby2函數快速設計低通濾波器
[C2H,C2W]=freqz(C2b,C2a); % 繪製頻率響應曲線
C2f=filter(C2b,C2a,s); % 進行低通濾波
C2y=fft(C2f,len); % 對濾波後信號做len點FFT變換
figure(4); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,C2f,'red');grid;
legend('10Hz原始信號','切比雪夫II型濾波器濾波後');
subplot(2,1,2);plot(f,abs(C2y(1:len/2)));grid;
title('切比雪夫II型濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.4 橢圓濾波器
[Eb Ea]=ellip(N,Rp,Rs,Wn,'low'); % 調用MATLAB ellip函數快速設計低通濾波器
[EH,EW]=freqz(Eb,Ea); % 繪製頻率響應曲線
Ef=filter(Eb,Ea,s); % 進行低通濾波
Ey=fft(Ef,len); % 對濾波後信號做len點FFT變換
figure(5); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,Ef,'red');grid;
legend('10Hz原始信號','橢圓濾波器濾波後');
subplot(2,1,2);plot(f,abs(Ey(1:len/2)));grid;
title('橢圓濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 3.5 yulewalk濾波器
fyule=[0 Wn Fc*2/Fs 1]; % 在此進行的是簡單設計,實際需要多次仿真取最佳值
myule=[1 1 0 0]; % 在此進行的是簡單設計,實際需要多次仿真取最佳值
[Yb Ya]=yulewalk(N,fyule,myule); % 調用MATLAB yulewalk函數快速設計低通濾波器
[YH,YW]=freqz(Yb,Ya); % 繪製頻率響應曲線
Yf=filter(Yb,Ya,s); % 進行低通濾波
Yy=fft(Yf,len); % 對濾波後信號做len點FFT變換
figure(6); % 畫圖
subplot(2,1,1);plot(t,s10,'blue',t,Yf,'red');grid;
legend('10Hz原始信號','yulewalk濾波器濾波後');
subplot(2,1,2);plot(f,abs(Yy(1:len/2)));grid;
title('yulewalk濾波後信號頻譜');
xlabel('Hz');ylabel('幅值');
% 4. 各個濾波器的幅頻響應對比分析
A1 = BW*Fs/(2*pi);
A2 = C1W*Fs/(2*pi);
A3 = C2W*Fs/(2*pi);
A4 = EW*Fs/(2*pi);
A5 = YW*Fs/(2*pi);
figure(7); % 畫圖
subplot(1,1,1);plot(A1,abs(BH),A2,abs(C1H),A3,abs(C2H),A4,abs(EH),A5,abs(YH));grid;
xlabel('頻率/Hz');
ylabel('頻率響應幅度');
legend('butter','cheby1','cheby2','ellip','yulewalk');
效果圖
轉載請註明文章來源 – http://blog.csdn.net/v_hyx ,請勿用於任何商業用途
matlab ellip,IIR濾波器設計(調用MATLAB IIR函數來實現) | 學步園相关推荐
- quartus ii matlab,基於Quartus II和MATLAB的FIR濾波器設計與仿真(二)
接上文 基於Quartus II和MATLAB的FIR濾波器設計與仿真(一): 3 QuartusII 調用 IP 核生成 FIR 濾波器模塊 在 Quartus II 中, Altera 提供了 ...
- matlab fir工具箱,用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法
摘 要 介紹了利用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法:程序設計法.FDATool設計法和SPTool設計法,給出了詳細的設計步驟,並將設計的濾波器應用到一個混和正弦波信號,以驗 ...
- matlab engevalstring,Matlab 執行engEvalString命令介紹 | 學步園
MATLAB與VC混合編程指導書 在調用 Matlab 引擎之前,首先應在相關文件中加入一行: #include "enging.h" ,該文件包含了引擎 API 函數的說明和所需 ...
- matlab怎么用wavedec,Matlab中wavedec使用學習及詳解 | 學步園
最近在使用對ECG訊號進行小波係數的提取,所以用到了wavedec這個matlab中內置函數.然後盡心學習,發現還挺高深,不是我學到的衹是一點皮毛,因爲要對一段波形進行特徵提取,所以我要看哪個小波係數 ...
- Css的filter常用濾波器屬性及語句大全
濾鏡說明: Alpha:設置透明層次. blur:創建高速度移動效果,即模糊效果. Chroma:製作專用顏色透明. DropShadow:創建對象的固定影子. FlipH:創建水 ...
- matlab ellip传递函数,BPSK和QPSK调制解调原理及MATLAB程序
<BPSK和QPSK调制解调原理及MATLAB程序>由会员分享,可在线阅读,更多相关<BPSK和QPSK调制解调原理及MATLAB程序(10页珍藏版)>请在人人文库网上搜索. ...
- mysql計劃任務_MySQL計劃任務 | 學步園
MySQL的功能越來越強大了,逐漸在想大型商業資料庫靠攏了,這不,5.1的版本已然支持視圖.觸發器.job等功能. 下面簡單介紹下我所使用的MySQL的job功能(也就是計劃任務,Oracle中稱jo ...
- matlab colorbar采用对数,matlab colorbar的使用 | 學步園
1:請問matlab中畫多張圖如何使用同一範圍的colorbar? 例如生成了圖1,2,3 生成圖1時,使用 temp1=caxis; 將圖1的z值的取值範圍(即colorbar的取值範圍)取出. 生 ...
- iir陷波滤波器 matlab,IIR数字滤波器设计50Hz陷波器(MATLAB代码)
%% IIR陷波器设计 % 目的:设计一个陷波器阻带在50±1.5Hz以内,采样频率为400Hz的滤波器, % 并要求通带最大衰减为0.1dB,阻带最小衰减为60dB. clc; clear;clos ...
最新文章
- HTML5 Canvas 基础API和实例
- IOS-React-Native:unable to find utility instruments, not a developer tool or in PATH
- 总结:Sharepoint2010 Client Object Model -- Silverlight Client
- 详解git pull和git fetch的区别:
- ajax获取后台数据出错parsererror
- c++ --- 字符串中的标点符号
- MapReduce实现手机上网日志分析(分区)
- ruby 线程id_Ruby中的线程
- python元类_Python元类
- db2数据库连接数 linux_DB2 数据库 linux基本操作【转】
- 大数据实战:如何实时采集上亿级别数据?
- 声乐表演中肢体语言的功能及运用
- javaScript 高级04 正则表达式(边界符、字符类、量词符)
- 网络型 PLC可编程控制器综合实训装置
- 百度网盘里的html怎么用,百度网盘怎么用?
- hapi mysql项目实战路由初始化_hapi框架搭建记录(二):路由改造和生成接口文档...
- IMPERVA - WAF syslog配置及注意事项
- python五子棋程序教程_python实现五子棋小程序
- Java Scanner的hasNext()方法
- ftp服务器备份手机文件,ftp服务器文件自动备份
热门文章
- java计算个人所得税,月收入的5000元以上部分征20%,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。
- uniswap v2 代码解读注释
- 使用log4js打印日志
- 编程人员必读书籍推荐-最具有影响力书籍
- 如何实现一个SQL解析器
- LOD技术——定义详解及相关知识介绍
- RCNN系列1:RCNN介绍
- 《大道至简》的幕后故事(4):“愚公移山记”军事地理篇
- 《微服务(一):微服务组件之服务注册中心》
- Android OKHTTP发起请求提示:SSLException: Unable to parse TLS packet header