[h,w]=freqz(h,[1],1024); %求濾波器h(n)的頻率響應;對fir而言, h(z)分子分母多項式的係數向量b=[1], a=h;返回向量h的點數n =1024
db=20*log10(abs(h)+eps); %得到幅值
pha=angle(h); %得到相位
%繪製單位脈衝響應h(n)、幅頻衰減特性20lg︱h(ejw)︱)、相頻特性和幅頻特性︱h(ejw)︱的波形
figure; %加figure語句,下乙個plot所繪出的圖不會把上次的圖給取代。也可在每次執行完plot之後,加figure語句
subplot(2,2,1)
stem(n,h,'.r'); %繪製單位脈衝響應h(n)波形
axis([0,n-1,-0.1,0.3]);
xlabel('n');
ylabel('h(n)');
title('實際低通濾波器的h(n)');
text((0.28*n),0.275,string); %建立text圖形控制代碼物件函式,text(x,y,string)在圖形中指定的位置上(x,y)上顯示字串string
subplot(2,2,2)
plot(w/pi,db,'m'); %繪製幅頻衰減特性20lg︱h(ejw)︱)波形
axis([0,1,-100,0]);
xlabel('w/pi');
ylabel('db');
title('衰減特性(db)');
grid; %新增網格線
set(gca,'xtick', 0:0.2:1,'ytick',-100:20:0) %設定網格線的密度
subplot(2,2,3)
plot(w,pha); %繪製相頻特性波形
hold on;
plot(0:4,zeros(5),'-k'); %繪製零相位基線
title('相頻特性');
xlabel('頻率w(rad)');
ylabel('相位(rad)');
axis([0,3.15,-4,4]);
subplot(2,2,4);
plot(w,abs(h)); %繪製幅頻特性︱h(ejw)︱波形
title('頻率特性');
xlabel('頻率w(rad)');
ylabel('幅值');
axis([0,3.15,0,1.5]);
text(0.9,1.3,string);
n=input('輸入窗函式長度n=? (輸入0=退出)');
endplot(x,y)以x元素為橫座標值,y元素為縱座標值繪製曲線。
(1) x, y都是向量,則以x中元素為橫座標,y中元素為縱座標作平面曲線。此時x, y必須具有相同長度。
(2) x, y都是矩陣,則將x的列和y中相應的列相組合,繪製多條平面曲線。此時x, y必須具有相同的大小。
(3) x是向量, y是矩陣,若x的長度與y的行數相等,則將x與y中的各列相對應,繪製多條平面曲線;否則,若x的長度與y的列數相等,則將x與y中的各行相對應,繪製多條平面曲線。此時x的長度必須等於y的行數或列數。
%實驗四:用窗函式法設計fir數字濾波器
% matlab主程式
clear all;
close all;
b=1;
i=0;
while(b);
temp=menu('選擇窗函式長度n','n=10','n=15','n=20','n=25','n=30','n=33','n=35','n=40','n=45','n=50','n=55','n=60','n=64');
menu1=[10,15,20,25,30,33,35,40,45,50,55,60,64];
n=menu1(temp);
temp=menu('選擇逼近理想低通濾波器截止頻率wc','wc=pi/4','wc=pi/2','wc=3*pi/4','wc=pi','wc=0.5','wc=1.0','wc=1.
5','wc=2.0','wc=2.5','wc=3.
0');
menu2=[pi/4,pi/2,3*pi/4,pi,0.5,1,1.5,2,2.5,3];
w=menu2(temp);
n=[0:(n-1)];
hd=ideal(w,n); %得到理想低通濾波器
k=menu('請選擇視窗型別:','boxcar','hamming','hanning','blackman');
if k==1
b=boxcar(n);
string=['boxcar','n=',num2str(n)];
else if k==2
b=hamming(n);
string=['hamming','n=',num2str(n)];
else if k==3
b=hanning(n);
string=['hanning','n=',num2str(n)];
else if k==4
b=blackman(n);
string=['blackman','n=',num2str(n)];
endend
endendh=hd.*(b)'; %得到fir數字濾波器
[h,m]=freqz(h,[1],1024,'whole'); %求其頻率響應。whole表示在[0,2π]之間選取n個頻率點。
mag=abs(h); %得到幅值
db=20*log10((mag+eps)/max(mag));
pha=angle(h); %得到相位
i=i+1;
figure(i)
subplot(2,2,1);
n=0:n-1;
stem(n,h,'.');
axis([0,n-1,-0.1,0.3]);
hold on;
n=0:n-1;
x=zeros(n);
plot(n,x,'-');
xlabel('n');
ylabel('h(n)');
title('實際低通濾波器的h(n)');
text((0.3*n),0.27,string);
hold off;
subplot(2,2,2);
plot(m/pi,db);
axis([0,1,-100,0]);
xlabel('w/pi');
ylabel('db');
title('衰減特性(db)');
grid;
subplot(2,2,3);
plot(m,pha);
hold on;
n=0:7;
x=zeros(8);
plot(n,x,'-');
title('相頻特性');
xlabel('頻率w(rad)');
ylabel('相位(rad)');
axis([0,3.15,-4,4]);
subplot(2,2,4);
plot(m,mag);
title('頻率特性');
xlabel('頻率w(rad)');
ylabel('幅值');
axis([0,3.15,0,1.5]);
text(0.9,1.2,string);
b=menu('do you want to continue ?','yes','no');
if b==2
b=0;
endendtemp=menu('close all figure ?','yes','no');
if temp==1
close all
end%實驗中的子函式:產生理想低通濾波器單位脈衝響應hd(n)
function hd=ideal(w,n);
alpha=(n-1)/2;
n=[0:(n-1)];
m=n-alpha+eps;
hd=sin(w*m)./(pi*m);
實驗六用窗函式設計FIR濾波器附思考題程式
實驗六用窗函式設計fir濾波器 1.實驗目的 1 熟悉fir濾波器設計的方法和原理 2 掌握用窗函式法設計fir濾波器的方法和原理,熟悉濾波器的特性 3 了解各種窗函式濾波器特性的影響 2.實驗原理 fir濾波器的設計方法主要有三種 窗函式法 頻率取樣法 切比雪夫等波紋逼近法。fir濾波器的設計是要...
用對比法 控制變數法設計的初中物理實驗
作者 李偉報 現代交際 2012年第04期 摘要 在初中物理中,許多實驗都運用了控制變數法,但同時也是對照實驗。通過設定實驗對照對比,既可排除無關變數的影響,又可增加實驗結果的可信度和說服力。關鍵詞 實驗設計對比法控制變數法 中圖分類號 g633.7 文獻標識碼 a 文章編號 1009 5349 2...
用待定係數法求二次函式解析式教學設計及反思
江西省撫州市臨川區湖南鄉初級中學劉建平 教學目標 1 通過對用待定係數法求二次函式解析式的 掌握求解析式的方法。2 能靈活的根據條件恰當地選取選擇解析式,體會二次函式解析式之間的轉化。3 從學習過程中體會學習數學思想,積累解決問題的數學經驗。教學重點和難點 重點 靈活的掌握確定二次函式表示式的過程,...