1、用脈衝響應不變法設計乙個butterworth低通數字濾波器,通帶截止頻率為0.4π ,通帶波紋rp小於3db,阻帶邊界頻率為0.6π,阻帶衰減大於15db,取樣頻率fs=10000hz。假設乙個訊號
其中f1=1000hz,f2=4000hz。試將原訊號與通過該濾波器的輸出訊號進行比較。 (用經典法設計)
wp=0.4*pi;ws=0.6*pi;rp=3;rs=15;
t=0.0001;nn=128; %取樣間隔
wp=wp/t;ws=ws/t; %得到模擬濾波器的頻率—採用脈衝響應不變法的頻率轉換形式
[n,wn]=buttord(wp,ws,rp,rs,'s'); %計算模擬濾波器的最小階數
[z,p,k]=buttap(n); %設計低通原型數字濾波器
[bap,aap]=zp2tf(z,p,k); %零點極點增益形式轉換為傳遞函式形式
[b,a]=lp2lp(bap,aap,wn); %低通濾波器頻率轉換
%[b,a]=butter(n,wn,』s』);
[bz,az]=impinvar(b,a,1/t); %脈衝響應不變法設計數字濾波器傳遞函式
figure(1)
[h,f]=freqz(bz,az,nn,1/t); %輸出幅頻響應和相頻響應
subplot(2,1,1),plot(f,20*log10(abs(h)));
xlabel('頻率/hz');ylabel('振幅/db');grid on;
subplot(2,1,2),plot(f,180/pi*unwrap(angle(h)))
xlabel('頻率/hz');ylabel('相位/^o');grid on;
figure(2)
f1=5;f2=30; %輸入訊號含有的頻率
n=100; %資料點數
n=0:n-1;t=n*t; %時間序列
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t); %輸入訊號
subplot(2,1,1),plot(t,x),title('輸入訊號')
y=filtfilt(bz,az,x); %對訊號進行濾波
y1=filter(bz,az,x);
subplot(2,1,2),plot(t,y,t,y1,':'),
legend( ' filtfilt ', 'filter')
2、設計乙個butterworth高通數字濾波器,通帶邊界頻率為300hz,阻帶邊界頻率為200hz,通帶波紋小於1db,阻帶衰減大於20db,取樣頻率為1000hz。試繪出其頻率特性圖並編制一測試該濾波器滿足效能的例子。(用完全設計法)
fs=1000;%取樣頻率
wp=300*2/fs;
ws=200*2/fs;
rp=1;
rs=20;nn=128;
[n,wn]=buttord(wp,ws,rp,rs);
[b,a]=butter(n,wn,'high') %n為濾波器的階數
figure(1)
[h,f]=freqz(b,a,nn,fs); %求得濾波器的頻率特性
subplot(2,1,1),plot(f,20*log10(abs(h)));
xlabel('頻率/hz');
ylabel('振幅/db');
grid on;
subplot(2,1,2),plot(f,180/pi*unwrap(angle(h)))
xlabel('頻率/hz');
ylabel('相位/^o');
MATLAB直接設計數字濾波器
n,wn buttord wp,ws,rp,rs 不加 s 就可以直接求出數字濾波器的係數 b,a butter n,wn,s 求巴特沃斯濾波器係數 現設計一帶通濾波器,要求通帶頻率為1.5 10hz,阻頻率為1和12hz,ap 3,as 15,設計巴特沃斯濾波器 clear all clc clo...
matlab數字濾波器
matlab提供了專門用於求離散系統頻響特性的函式freqz 呼叫freqz 的格式有以下兩種 1 h,w freqz b,a,n 2 h,w freqz b,a,n,whole 1 中b和a分別為離散系統的系統函式分子 分母多項式的係數向量,返回量h則包含了離散系統頻響在 0 pi範圍內n個頻率等...
數字濾波器
數字濾波器,可以分為兩大類 一類為經典濾波器,輸入訊號中的有用成分和希望濾除的成分頻率不同.一類為現代濾波器,其輸入訊號中有用訊號和希望濾除的訊號頻帶交疊.經典濾波器,從頻域上可以分為低通 高通 帶通 帶阻濾波器 從時域特性上來看,數字濾波器可以分為fir 有限衝激響應數字濾波器 和iir 無限衝激...