Matlab中的信號(hào)處理函數(shù)課件_第1頁(yè)
Matlab中的信號(hào)處理函數(shù)課件_第2頁(yè)
Matlab中的信號(hào)處理函數(shù)課件_第3頁(yè)
Matlab中的信號(hào)處理函數(shù)課件_第4頁(yè)
Matlab中的信號(hào)處理函數(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1BiomedicalSignalprocessing

matlab信號(hào)處理函數(shù)ZhongguoLiuBiomedicalEngineeringSchoolofControlScienceandEngineering,ShandongUniversity2023/12/231Matlab中的信號(hào)處理函數(shù)MATLAB是美國(guó)MathWorks公司開發(fā)的一種功能極其強(qiáng)大的高技術(shù)計(jì)算語(yǔ)言和內(nèi)容極其豐富的軟件庫(kù)。它以矩陣和向量的運(yùn)算以及運(yùn)算結(jié)果的可視化為基礎(chǔ),把廣泛應(yīng)用于各個(gè)學(xué)科領(lǐng)域的數(shù)值分析、矩陣計(jì)算、函數(shù)生成、信號(hào)、圖形及圖象處理、建模與仿真等諸多強(qiáng)大功能集成在一個(gè)便于用戶使用的交互式環(huán)境之中,為使用者提供了一個(gè)高效的編程工具及豐富的算法資源。關(guān)于MATLAB2Matlab中的信號(hào)處理函數(shù)

MATLAB與信號(hào)處理直接有關(guān)的工具箱(Toolbox)

SignalProcessing(信號(hào)處理工具箱)

Wavelet(小波工具箱)ImageProcessing(圖象處理工具箱)

Higher-OrderSpectralAnalysis

(高階譜分析工具箱)3Matlab中的信號(hào)處理函數(shù)

與信號(hào)處理間接有關(guān)的工具箱:ControlSystem(控制系統(tǒng))Communication(通信)SystemIdentification(系統(tǒng)辨識(shí))Statistics(統(tǒng)計(jì))NeuralNetwork(神經(jīng)網(wǎng)絡(luò))4Matlab中的信號(hào)處理函數(shù)例:

z=peaks;surf(z);5Matlab中的信號(hào)處理函數(shù)1.rand.m

用來(lái)產(chǎn)生均值為0.5、幅度在

0~1之間均勻分布的偽白噪聲:u=rand(N,1)(rand(N)生成N階矩陣)

方差:與第二章內(nèi)容有關(guān)的MATLAB文件如何改變的方差為P?方差函數(shù)var(u)標(biāo)準(zhǔn)差函數(shù)std(u)即如何確定a使au的方差為P?將au代替u帶入上面方差公式可得6Matlab中的信號(hào)處理函數(shù)1.rand.m

用來(lái)產(chǎn)生均值為0.5、幅度在

0~1之間均勻分布的偽白噪聲:u=rand(N,1)(rand(N)生成N階矩陣)

randn.m

用來(lái)產(chǎn)生均值為零、方差為1

服從高斯(正態(tài))分布的白噪聲信號(hào)u=randn(1,N)

與第二章內(nèi)容有關(guān)的MATLAB文件x=randn(1000,1)y=randn(1000,1)v=var(x)h=std(y)7Matlab中的信號(hào)處理函數(shù)3.sinc

:用來(lái)產(chǎn)生“sinc”函數(shù):sinc函數(shù)定義為:

t=-4:0.1:4;x4=sinc(t);%產(chǎn)生抽樣函數(shù)plot(t,x4)8Matlab中的信號(hào)處理函數(shù)4.conv.m

用來(lái)實(shí)現(xiàn)兩個(gè)離散序列的線性卷積。其調(diào)用格式是:y=conv(x,h).若x(n)和y(n)的長(zhǎng)度分別為M和N,則返回值是長(zhǎng)度為M+N-1的序列。例

x(n)=[345];h(n)=[2678],求其線性卷積。

MATLAB語(yǔ)句如下:

x=[345];h=[2678];y=conv(x,h)結(jié)果y=62655826740兩序列的相關(guān)運(yùn)算MATLAB實(shí)現(xiàn):y=xcorr(x1,x2)。x=[345];h=[2678];y=xcorr(x,h)y=245386653810-09Matlab中的信號(hào)處理函數(shù)

5.xcorr:

其互相關(guān)和自相關(guān)。格式是:(1)rxy=xcorr(x,y):求x,y的互相關(guān);(2)rx=xcorr(x,M,’flag’):求x的自相關(guān),M:rx的單邊長(zhǎng)度,總長(zhǎng)度為2M+1;‘flag’是定標(biāo)標(biāo)志,若flag=biased,則表示是“有偏”估計(jì),需將rx(m)都除以N,若flag=unbiased,則表示是“無(wú)偏”估計(jì),需將rx(m)都除以(N-abs(m));若’flag’缺省,則rx不定標(biāo)。M和‘flag’同樣適用于求互相關(guān)。10Matlab中的信號(hào)處理函數(shù)第三章Z變換.在MATLAB語(yǔ)言中有專門對(duì)信號(hào)進(jìn)行正反Z變換的函數(shù)ztrans()和itrans()。其調(diào)用格式分別如下:F=ztrans(f)

對(duì)f(n)進(jìn)行Z變換,其結(jié)果為F(z)F=ztrans(f,w)

對(duì)f(n)進(jìn)行Z變換,其結(jié)果為F(w)F=ztrans(f,k,w)

對(duì)f(k)進(jìn)行Z變換,其結(jié)果為F(w)f=itrans(F)

對(duì)F(z)進(jìn)行Z反變換,其結(jié)果為f(n)f=itrans(F,k)

對(duì)F(z)進(jìn)行Z反變換,其結(jié)果為f(k)f=itrans(F,w,k)

對(duì)F(w)進(jìn)行Z反變換,其結(jié)果為f(k)注意:

在調(diào)用函數(shù)ztran()及iztran()之前,要用syms命令對(duì)所有需要用到的變量(如t,u,v,w)等進(jìn)行說(shuō)明,即要將這些變量說(shuō)明成符號(hào)變量

11Matlab中的信號(hào)處理函數(shù)Z變換例①.求數(shù)列fn=e-n的Z變換及其逆變換。命令如下:symsnzfn=exp(-n);Fz=ztrans(fn,n,z)%求fn的Z變換f=iztrans(Fz,z,n)%求Fz的逆Z變換例②.用MATLAB求出離散序列f=0.5k的Z變換MATLAB程序如下:symskzf=0.5^k;

%定義離散信號(hào)Fz=ztrans(f)

%對(duì)離散信號(hào)進(jìn)行Z變換運(yùn)行結(jié)果如下:

Fz=2*z/(2*z-1)Fz=z/(z-1/exp(1))f=(1/exp(1))^n12Matlab中的信號(hào)處理函數(shù)symskhk=sym('kroneckerDelta(k,1)+kroneckerDelta(k,2)+kroneckerDelta(k,3)')Hz=ztrans(hk)Hz=simplify(Hz)運(yùn)行結(jié)果如下:Fz=(z^2+z+1)/z^3Z變換例③.已知一離散信號(hào)的Z變換式為,求出它所對(duì)應(yīng)的離散信號(hào)f(k).MATLAB程序如下:symskzFz=2*z/(2*z-1);

%定義Z變換表達(dá)式fk=iztrans(Fz,k)

%求反Z變換運(yùn)行結(jié)果如下:fk=(1/2)^k例④:求序列的Z變換.階躍序列符號(hào)13Matlab中的信號(hào)處理函數(shù)符號(hào)變換Fourier變換及其反變換Fw=fourier(ft,t,w)求“時(shí)域”函數(shù)ft的Fourier變換ft=ifourier(Fw,w,t)求“頻域”函數(shù)Fw的Fourier

反變換Laplace變換及其反變換Fs=laplace(ft,t,s)求“時(shí)域”函數(shù)ft的Laplace變換ft=ilaplace(Fs,s,t)求“頻域”函數(shù)Fs的Laplace

反變換14Matlab中的信號(hào)處理函數(shù)【例】求的Fourier變換。(1)求Fourier變換symstwut=heaviside(t); UT=fourier(ut)

UT=pi*dirac(w)-i/w(2)求Fourier反變換Ut=ifourier(UT,w,t)Ut=heaviside(t)15Matlab中的信號(hào)處理函數(shù)【例2.5-4】求的Laplace變換。

symsts;

symsabpositive;%不限定則無(wú)結(jié)果

Dt=dirac(t-a); Ut=heaviside(t-b); Mt=[Dt,Ut;exp(-a*t)*sin(b*t),t^2*exp(-t)];MS=laplace(Mt,t,s)MS=[exp(-s*a),exp(-s*b)/s][1/b/((s+a)^2/b^2+1),2/(s+1)^3]16Matlab中的信號(hào)處理函數(shù)

1.filter.m本文件用來(lái)求離散系統(tǒng)的輸出y(n)。若系統(tǒng)的h(n)已知,由y(n)=x(n)*h(n),用conv.m文件可求出y(n)。y=conv(x,h)filter文件是在A(z)、B(z)已知,但不知道h(n)的情況下求y(n)的。調(diào)用格式是:y=filter(b,a,x)

x,y,a和b都是向量。與系統(tǒng)響應(yīng)、逆Z變換相關(guān)的matlab函數(shù)17Matlab中的信號(hào)處理函數(shù)

1.filter.mx=[1,2,3,4];y=[3,4,6]z_conv=conv(x,y)%x,y為輸入和單位脈沖響應(yīng)時(shí)輸出z_conv_=conv(y,x)%x,y為輸入和單位脈沖響應(yīng)時(shí)輸出z_filter=filter(y,1,x)%x為輸入,y為FIR單位脈沖響應(yīng)時(shí)輸出

z_filter_=filter(x,1,y)%y為輸入,x為FIR單位脈沖響應(yīng)時(shí)輸出與逆Z變換相關(guān)的matlab函數(shù)可見,conv(x,y)總是等于conv(y,x)。而filter(x,1,y)卻不一定等于filter(y,1,x),但是它們總是conv(x,y)截短的結(jié)果,截短的長(zhǎng)度等于length(filter的第三個(gè)參數(shù))z_conv=

31023363424

z_conv_=31023363424z_filter=

3102336z_filter_=

3102318Matlab中的信號(hào)處理函數(shù)與逆Z變換相關(guān)的matlab函數(shù)2.impz.m在A(z)、B(z)已知情況下,求系統(tǒng)的單位抽樣響應(yīng)h(n)。調(diào)用格式是:

h=impz(b,a,N)或

[h,t]=impz(b,a,N)

N是所需的的長(zhǎng)度。前者繪圖時(shí)n從1開始,而后者從0開始。19Matlab中的信號(hào)處理函數(shù)

3.residuez.m將X(z)的有理分式分解成簡(jiǎn)單有理分式的和,因此可用來(lái)求逆Z變換。調(diào)用格式:

[r,p,k]=residuez(b,a)假如知道了向量r,p和k,利用residuez.m還可反過來(lái)求出多項(xiàng)式A(z)、B(z)。格式是

[b,a]=residuez(r,p,k)。20Matlab中的信號(hào)處理函數(shù)4.頻率響應(yīng)函數(shù):freqz.m已知A(z)、B(z),求系統(tǒng)的頻率響應(yīng)?;镜恼{(diào)用格式是:

[H,w]=freqz(b,a,N,'whole',Fs)N是頻率軸的分點(diǎn)數(shù),建議N為2的整次冪;w是返回頻率軸座標(biāo)向量,繪圖用;Fs是抽樣頻率,若Fs=1,頻率軸給出歸一化頻率;’whole’指定計(jì)算的頻率范圍是從0~FS,缺省時(shí)是從0~FS/2.幅頻響應(yīng):Hr=abs(H);相頻響應(yīng):

Hphase=angle(H);解卷繞:Hphase=unwrap(Hphase);21Matlab中的信號(hào)處理函數(shù)5.filtfilt.m

本文件實(shí)現(xiàn)零相位濾波。其調(diào)用格式是:y=filtfilt(B,A,x)。式中B是的分子多項(xiàng)式,A是分母多項(xiàng)式,x是待濾波信號(hào),y是濾波后的信號(hào)。clear;N=32;

n=-N/2:N+N/2;

w=0.1*pi;x=cos(w*n)+cos(2*w*n);subplot(311);stem(n,x,'.');gridon;

xlabel('n');b=[0.067450.13490.06745];

a=[1-1.1430.4128];y=filtfilt(b,a,x);%用給定系統(tǒng)(b,a)對(duì)信號(hào)x作零相位濾波;y1=filter(b,a,x);%用給定系統(tǒng)(b,a)對(duì)信號(hào)x作低通濾波;subplot(312);stem(n,y,'.');gridon;

xlabel('n');subplot(313);stem(n,y1,'.');gridon;

xlabel('n');22Matlab中的信號(hào)處理函數(shù)235.filtfilt.m

本文件實(shí)現(xiàn)零相位濾波。其調(diào)用格式是:y=filtfilt(B,A,x)。式中B是的分子多項(xiàng)式,A是分母多項(xiàng)式,x是待濾波信號(hào),y是濾波后的信號(hào)。clear;N=32;

n=-N/2:N+N/2;

w=0.1*pi;x=cos(w*n)+cos(2*w*n);subplot(311);stem(n,x,'.');gridon;

xlabel('n');b=[0.067450.13490.06745];

a=[1-1.1430.4128];y=filtfilt(b,a,x);%用給定系統(tǒng)(b,a)對(duì)信號(hào)x作零相位濾波;y1=filter(b,a,x);%用給定系統(tǒng)(b,a)對(duì)信號(hào)x作低通濾波;subplot(312);stem(n,y,'.');gridon;

xlabel('n');subplot(313);stem(n,y1,'.');gridon;

xlabel('n');Matlab中的信號(hào)處理函數(shù)

6.grpdelay.m

求系統(tǒng)的群延遲。調(diào)用格式 [gdw]=grpdelay(B,A,N),或

[gdF]=grpdelay(B,A,N,FS)式中B和A仍是的分子、分母多項(xiàng)式,gd是群延遲,w、F是頻率分點(diǎn),二者的維數(shù)均為N;FS為抽樣頻率,單位為Hz。24Matlab中的信號(hào)處理函數(shù)7.deconv.m

:實(shí)現(xiàn)系統(tǒng)的反卷積,其調(diào)用格式:

[q,r]=deconv(y,x);也用來(lái)實(shí)現(xiàn)多項(xiàng)式除法。clearall;k=0:1:7;x=k+1;h=ones(1,4);y=conv(h,x);%y=x*h;[q,r]=deconv(y,x);%由y,x作反卷積,求出h;[q1,r1]=deconv(y,h);%由y,h作反卷積,求出x;subplot(321);stem(h,'.b');ylabel('h(n)');subplot(322);stem(x,'.b');ylabel('x(n)');subplot(323);stem(y,'.b');ylabel('y(n)');subplot(325);stem(q,'.r');ylabel('q(n)');subplot(326);stem(q1,'.r');ylabel('q1(n)');clearall;%實(shí)現(xiàn)多項(xiàng)式除法q=(4*x^3+1)/(2*x+1)y=[4001];x=[21];[q,r]=deconv(y,x);→q=[2-10.5],r=[0000.5]25Matlab中的信號(hào)處理函數(shù)下面幾個(gè)文件用于轉(zhuǎn)移函數(shù)與極-零點(diǎn)之間的相互轉(zhuǎn)換及極-零點(diǎn)的排序:(1)

tf2zpk.m,調(diào)用[z,p,k]=tf2zpk(b,a)適用于z-1的升冪排列

tf2zp.m,調(diào)用[z,p,k]=tf2zp(b,a)

適用于z的降冪排列(2)zp2tf.m,調(diào)用[b,a]=zp2tf(z,p,k)(3)roots.m,調(diào)用Z1=roots(b)(4)poly.m,調(diào)用b

=poly(Z1)與極-零點(diǎn)有關(guān)的MATLAB函數(shù)26Matlab中的信號(hào)處理函數(shù)

顯示離散系統(tǒng)的極零圖函數(shù):zplane.m本文件可用來(lái)顯示離散系統(tǒng)的極-零圖。其調(diào)用格式是:

zplane(z,p),

或zplane(b,a),前者是在已知系統(tǒng)零點(diǎn)的列向量z和極點(diǎn)的列向量p的情況下畫出極-零圖,后者是在僅已知A(z)、B(z)的情況下畫出極-零圖。27Matlab中的信號(hào)處理函數(shù)求極零點(diǎn)并繪極零分布圖,部分畫出幅頻及相頻響應(yīng):例1:系統(tǒng)解:轉(zhuǎn)移函數(shù):b=[1-44];a=[1];[z,p,k]=tf2zpk(b,a)zplane(b,a)zplane(z,p)[r,p,k]=residuez(b,a)[b,a]=residuez(r,p,k)z=2;2p=0;0K=1r=[];p=[];k=[1-44];28Matlab中的信號(hào)處理函數(shù)畫出幅頻響應(yīng)及相頻響應(yīng):例1:系統(tǒng)解:轉(zhuǎn)移函數(shù):b=[1-44];a=[1];[H,w]=freqz(b,a,128,'whole',1)Hr=abs(H);Hphase=angle(H);Hphaseu=unwrap(Hphase);subplot(311),plot(Hr)subplot(312),plot(Hphase)subplot(313),plot(Hphaseu)29Matlab中的信號(hào)處理函數(shù)例2:相位的卷繞(wrapping)

解卷繞

b=[1];a=[0,1];[H,w]=freqz(b,a,256,'whole',1);Hr=abs(H);Hphase=angle(H);Hphase1=unwrap(Hphase);畫出幅頻響應(yīng)及相頻響應(yīng):解:30Matlab中的信號(hào)處理函數(shù)例:給定系統(tǒng)求:極-零圖單位抽樣響應(yīng)頻率響應(yīng)部分分式展開?[H,w]=freqz(b,a,256,'whole',1);Hr=abs(H);Hphase=angle(H);Hphase=unwrap(Hphase);[h,t]=impz(b,a,40);stem(t,h,'.');gridon;zplane(b,a);b=[.1836.73441.1016.7374.1836]/100a=[1-3.05443.8291-2.2925.55075]解:[r,p,k]=residuez(b,a)[b,a]=residuez(r,p,k)31Matlab中的信號(hào)處理函數(shù)極-零圖

zplane(b,a);32Matlab中的信號(hào)處理函數(shù)單位抽樣響應(yīng)[h,t]=impz(b,a,40);stem(t,h,'.');gridon;33Matlab中的信號(hào)處理函數(shù)頻率響應(yīng)Hphase=angle(H);Hphaseu=unwrap(Hphase);[H,w]=freqz(b,a,256,'whole',1);Hr=abs(H);subplot(311),plot(Hr)subplot(312),plot(Hphase)subplot(313),plot(Hphaseu)34Matlab中的信號(hào)處理函數(shù)下面幾個(gè)文件用于轉(zhuǎn)移函數(shù)、極-零點(diǎn)與二階子系統(tǒng)sos(Second-OrderSection)級(jí)聯(lián)之間的相互轉(zhuǎn)換:(1)

tf2sos.m,調(diào)用[sos,G]=tf2sos(b,a)(2)sos2tf.m,調(diào)用[b,a]=sos2tf(sos,G)(3)sos2zp.m,調(diào)用[z,p,k]=sos2zp(sos,G)(4)zp2sos.m,調(diào)用[sos,G]=zp2sos(z,p,k)與信號(hào)流圖有關(guān)的MATLAB函數(shù)sos是一L×6的矩陣,每行元素如下排列:35Matlab中的信號(hào)處理函數(shù)1.buttord.m確定LPDF、或LPAF的階次;(1)[N,Wn]=buttord(Wp,Ws,Rp,Rs);(2)[N,Wn]=buttord(Wp,Ws,Rp,Rs,‘s’):與第七章內(nèi)容有關(guān)的MATLAB文件(1)對(duì)應(yīng)數(shù)字濾波器。其中Wp,Ws分別是通帶和阻帶的截止頻率,其值在0~1之間,1對(duì)應(yīng)抽樣頻率的一半(歸一化頻率)。對(duì)低通和高通,Wp,Ws都是標(biāo)量,對(duì)帶通和帶阻,Wp,Ws是1×2的向量。Rp,Rs

分別是通帶和阻帶的衰減(dB)。N是求出的相應(yīng)低通濾波器的階次,Wn是求出的3dB頻率,它和Wp稍有不同。(2)對(duì)應(yīng)模擬濾波器,各變量含意和(1)相同,但Wp,Ws及Wn的單位為弧度/秒,它們實(shí)際上是頻率。36Matlab中的信號(hào)處理函數(shù)2.buttap.m設(shè)計(jì)模擬低通(Butt)原型濾波器。

[z,p,k]=buttap(N):N是欲設(shè)計(jì)的低通原型濾波器的階次,z,p,k是設(shè)計(jì)出的極點(diǎn)、零點(diǎn)及增益。buttap.m

setsΩcto1foranormalizedresult.37Matlab中的信號(hào)處理函數(shù)3.lp2lp.m、lp2hp.m、lp2bp.m,lp2bs.m將模擬低通原型轉(zhuǎn)換為實(shí)際的低通、高通、帶通及帶阻濾波器。b,a是AFLP的分子、分母的系數(shù)向量,B,A是轉(zhuǎn)換后的的分子、分母的系數(shù)向量;(1)中,Wo是低通或高通濾波器的截止頻率;[B,A]=lp2lp(b,a,Wo)[B,A]=lp2hp(b,a,Wo)(1)[B,A]=lp2bp(b,a,Wo,Bw)[B,A]=lp2bs(b,a,Wo,Bw)(2)(2)中Wo是帶通或帶阻濾波器中心頻率,Bw是其帶寬。38Matlab中的信號(hào)處理函數(shù)4.bilinear.m:雙線性變換,由模擬濾波器得到數(shù)字濾波器。

[Bz,Az]=bilinear(B,A,Fs)式中B,A分別是G(s)的分子、分母多項(xiàng)式的系數(shù)向量,Bz,Az分別是H(z)的分子、分母多項(xiàng)式的系數(shù)向量,F(xiàn)s是抽樣頻率。39Matlab中的信號(hào)處理函數(shù)5.butter.m用來(lái)直接設(shè)計(jì)Butterworth數(shù)字濾波器,實(shí)際上它把

buttord.m,buttap.m,lp2lp.m,bilinear.m等文件都包含了進(jìn)去,從而使設(shè)計(jì)過程更簡(jiǎn)捷。格式(1)~(3)用來(lái)設(shè)計(jì)數(shù)字濾波器,B,A分別是H(z)的分子、分母多項(xiàng)式的系數(shù)向量,Wn是通帶截止頻率,范圍在0~1之間。若Wn是標(biāo)量,(1)用來(lái)設(shè)計(jì)低通數(shù)字濾波器,若Wn是1×2的向量,則(1)用來(lái)設(shè)計(jì)數(shù)字帶通濾波器;(2)用來(lái)設(shè)計(jì)數(shù)字高通濾波器;(3)用來(lái)設(shè)計(jì)數(shù)字帶阻濾波器,顯然,這時(shí)的Wn是1×2的向量;格式(4)用來(lái)設(shè)計(jì)模擬濾波器。

[B,A]=butter(N,Wn);(2)[B,A]=butter(N,Wn,’high’);

(3)[B,A]=butter(N,Wn,’stop’);(4)[B,A]=butter(N,Wn,’s’)40Matlab中的信號(hào)處理函數(shù)6.cheb1ord.m

求Cheb-Ⅰ型濾波器的階;7.cheb1ap.m

設(shè)計(jì)原型低Cheb-I型模擬濾波器;8.cheby1.m

直接設(shè)計(jì)數(shù)字Cheb-Ⅰ濾波器。以上三個(gè)文件的調(diào)用格式和對(duì)應(yīng)的Butterworth濾波器的文件類似。41Matlab中的信號(hào)處理函數(shù)9.cheb2ord.m;10.cheb2ap.m;11.cheby2.m;12.ellipord.m;13.ellipap.m;14.ellip.m;15.impinvar.m用沖激響應(yīng)不變法實(shí)現(xiàn)頻率轉(zhuǎn)換;

對(duì)應(yīng)Cheby-II、橢圓IIR濾波器42Matlab中的信號(hào)處理函數(shù)

給出數(shù)字高通的技術(shù)要求

得到模擬高通的技術(shù)要求得到模擬低通的技術(shù)要求設(shè)計(jì)出得到模擬高通轉(zhuǎn)移函數(shù)最后得到數(shù)字高通轉(zhuǎn)移函數(shù)數(shù)字高通濾波器設(shè)計(jì)步驟數(shù)字高通,帶通及帶阻濾波器的設(shè)計(jì)43Matlab中的信號(hào)處理函數(shù)對(duì)帶通(BP)、帶阻(BS)數(shù)字濾波器的設(shè)計(jì),只需改變圖中Step2和Step4:帶阻帶通44Matlab中的信號(hào)處理函數(shù)要求:按上述轉(zhuǎn)換辦法,可以求出:例

:設(shè)計(jì)一IIRBPDF,要求:通帶頻率范圍:300Hz~400Hz;阻帶頻率范圍:200Hz、500Hz45Matlab中的信號(hào)處理函數(shù)例7.1clearall;fp=100;fs=300;Fs=1000;rp=3;rs=20;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Fs=Fs/Fs;%letFs=1%frequencyprewarping;wap=2*Fs*tan(wp/2);was=2*Fs*tan(ws/2);%[n,wn]=buttord(,'s')%Note:'s'![z,p,k]=buttap(n);%[bp,ap]=zp2tf(z,p,k)%[bs,as]=lp2lp(bp,ap,wn)%[bz,az]=bilinear(bs,as,Fs)%%s=(2/Ts)(z-1)/(z+1);[h,w]=freqz(bz,az,256,Fs*1000);plot(w,20*log10(abs(h)));gridon;設(shè)計(jì)IIRLPDF,46Matlab中的信號(hào)處理函數(shù)clearall;wp=.2*pi;ws=.6*pi;Fs=1000;rp=3;rs=20;%frequencyprewarping;wap=2*Fs*tan(wp/2);was=2*Fs*tan(ws/2);[n,wn]=buttord(,'s');%Note:'s'![z,p,k]=buttap(n);[bp,ap]=zp2tf(z,p,k);[bs,as]=lp2lp(bp,ap,wap)w1=[0:499]*2*pi;h1=freqs(bs,as,w1);[bz,az]=bilinear(bs,as,Fs)%z=(2/ts)(z-1)/(z+1);[h2,w2]=freqz(bz,az,500,Fs);plot(w1/2/pi,abs(h1),w2,abs(h2),'k');gridon;設(shè)計(jì)IIRLPDF,例7.1模擬濾波器和數(shù)字濾波器幅頻特性比較47Matlab中的信號(hào)處理函數(shù)clearall;wp=.2*pi;ws=.6*pi;Fs=1000;rp=3;rs=20;[n,wn]=buttord(wp/pi,ws/pi,rp,rs);[bz,az]=butter(n,wp/pi)[bz1,az1]=butter(n,wn)[h,w]=freqz(bz,az,128,Fs);[h1,w1]=freqz(bz1,az1,128,Fs);plot(w,20*log10(abs(h)),w1,20*log10(abs(h1)),'g.');gridon;設(shè)計(jì)IIRLPDF,例7.1保證通帶上限指標(biāo)滿足保證阻帶下限指標(biāo)滿足48Matlab中的信號(hào)處理函數(shù)產(chǎn)生窗函數(shù)的文件有八個(gè):bartlett(三角窗);2.blackman(布萊克曼窗);3.boxcar(矩形窗);4.hamming(哈明窗);5.hanning(漢寧窗);6.triang(三角窗);7.chebwin(切比雪夫窗);8.kaiser(凱賽窗);兩端為零兩端不為零調(diào)用方式都非常簡(jiǎn)單請(qǐng)見help文件稍為復(fù)雜49Matlab中的信號(hào)處理函數(shù)9.fir1.m用“窗函數(shù)法”設(shè)計(jì)FIRDF。調(diào)用格式:(1)b=fir1(N,Wn);(2)b=fir1(N,Wn,‘high’);(3)b=fir1(N,Wn,‘stop’);N:階次,濾波器長(zhǎng)度為N+1;Wn:通帶截止頻率,其值在0~1之間,1對(duì)應(yīng)Fs/2;b:濾波器系數(shù)。

格式(2)用來(lái)設(shè)計(jì)高通濾波器,格式(3)用來(lái)設(shè)計(jì)帶阻濾波器。格式(1),若Wn為標(biāo)量,則設(shè)計(jì)低通濾波器,若Wn是1×2的向量,則用來(lái)設(shè)計(jì)帶通濾波器,若Wn是1×L的向量,則可用來(lái)設(shè)計(jì)L帶濾波器。50Matlab中的信號(hào)處理函數(shù)對(duì)格式(1),若Wn為標(biāo)量,則設(shè)計(jì)低通濾波器,若Wn是1×2的向量,則用來(lái)設(shè)計(jì)帶通濾波器,若Wn是1×L的向量,則可用來(lái)設(shè)計(jì)L帶濾波器。這時(shí),格式(1)要改為:b=fir1(N,Wn,'DC-1'),或b=fir1(N,Wn,'DC-0')前者保證第一個(gè)帶為通帶,后者保證第一個(gè)帶為阻帶。在上述所有格式中,若不指定窗函數(shù)的類型,fir1自動(dòng)選擇Hamming窗。指定窗函數(shù)格式:(4)b=fir1(N,Wn,wind);例b=fir1(N,Wn,boxcar(N+1));指定矩形窗51Matlab中的信號(hào)處理函數(shù)例7.2用matlab設(shè)計(jì)一FIR濾波器,要求頻率指標(biāo)如下:Solution:clc;clearall;closeallwp=0.15*pi;ws=0.25*pi;wdelta=ws-wp;N=ceil(8*pi/wdelta);Wn=(0.15+0.25)*pi/2;b=fir1(N,Wn/pi,hanning(N+1));figure%freqz(b,1,512)[H,w]=freqz(b,1,512);plot(w,abs(H))set(gca,'XTick',0:0.2*pi:pi)set(gca,'XTickLabel',{'0','0.2π','0.4π','0.6π','0.8π','π'})axis([0,pi,0.97,1.03]);Hanning窗52Matlab中的信號(hào)處理函數(shù)10.fir2.m本文件采用“窗函數(shù)法”設(shè)計(jì)具有任意幅頻相應(yīng)的FIR數(shù)字濾波器。其調(diào)用格式是:

b=fir2(N,F,M);F是頻率向量,其值在0~1之間,M是和F相對(duì)應(yīng)的所希望的幅頻相應(yīng)。如同fir1,缺省時(shí)自動(dòng)選用Hamming窗。高通DF,N為偶數(shù),不能為奇數(shù)例7.3

:設(shè)計(jì)一多帶濾波器,要求頻率在0.2~0.3, 0.6~0.8之間為1,其余處為零。設(shè)計(jì)結(jié)果如下:f=[00.20.20.30.30.60.60.80.81];m=[0011001100];N1=30N2=90b1=fir2(N1,f,m);b2=fir2(N2,f,m);[H1,w]=freqz(b1,1,512);[H2,w]=freqz(b2,1,512);subplot(311)stem(b1)subplot(312)stem(b2)subplot(313)plot(f,m,w/pi,abs(H1),w/pi,abs(H2))53Matlab中的信號(hào)處理函數(shù)N=30,90時(shí)幅頻響應(yīng)響應(yīng)及理想幅頻響應(yīng);N=30N=9054Matlab中的信號(hào)處理函數(shù)11.remez.m設(shè)計(jì)Chebyshev最佳一致逼近FIR濾波器、Hilbert變換器和差分器。調(diào)用格式是:(1)b=remez(N,F,A);(2)b=remez(N,F,A,W);(3)b=remez(N,F,A,W,‘Hilbert’); (4)b=remez(N,F,A,W,‘'differentiator')N是給定的濾波器的階次,b是設(shè)計(jì)的濾波器的系數(shù),其長(zhǎng)度為N+1;F是頻率向量,A是對(duì)應(yīng)F的各頻段上的理想幅頻響應(yīng),W是各頻段上的加權(quán)向量。55Matlab中的信號(hào)處理函數(shù)F、A及W的指定方式和例7.4.1和7.4.2所討論過的一樣,唯一的差別是F的范圍為0~1,而非0~0.5,1對(duì)應(yīng)抽樣頻率的一半。需要指出的是,若b的長(zhǎng)度為偶數(shù),設(shè)計(jì)高通和帶阻濾波器時(shí)有可能出現(xiàn)錯(cuò)誤,因此,最好保證b的長(zhǎng)度為奇數(shù),也即N應(yīng)為偶數(shù)。56Matlab中的信號(hào)處理函數(shù)例7.4.1:設(shè)計(jì)低通FIRDF:b=remez(N,F,A,W)clearall;f=[0.6.71];%給定頻率軸分點(diǎn);A=[1100];%頻率分點(diǎn)上理想幅頻響應(yīng);weigh=[110];%頻率分點(diǎn)上的加權(quán);b=remez(32,f,A,weigh);%設(shè)計(jì)出切比雪夫最佳一致逼近濾波器;[h,w]=freqz(b,1,256,1);h=abs(h);h=20*log10(h);figure(1);stem(b,'.');grid;figure(2);plot(w,h);grid;調(diào)整通帶、阻帶的加權(quán)及濾波器的長(zhǎng)度。調(diào)整N或W的結(jié)果57Matlab中的信號(hào)處理函數(shù)例7.4.2:設(shè)計(jì)多阻帶濾波器,抽樣頻率500Hz,在50Hz、100Hz及150Hz處陷波。通帶加權(quán)為8,阻帶為1-17dB通帶、阻帶加權(quán)都是1-25dB58Matlab中的信號(hào)處理函數(shù)例7.4.2:設(shè)計(jì)多阻帶濾波器,抽樣頻率500Hz,在50Hz、100Hz及150Hz處陷波。clearall;f=[0.14.18.22.26.34.38.42.46.54.58.62.661];A=[1

1

0

0

1

1

0

0

1

1

0

0

1

1];weigh1=[8181818]; b1=remez(64,f,A,weigh1);[h1,w1]=freqz(b1,1,256,1);h1=abs(h1);h1=20*log10(h1);subplot(211);plot(w1,h1);grid;axis([00.5-6010])title('N=32,weight=[8181818]','FontSize',14,'Color','r')250Hz59Matlab中的信號(hào)處理函數(shù)例7.1.1.設(shè)計(jì)低通DFFIR,令截止頻率=0.25π,

取M=10,20,40,觀察其幅頻響應(yīng)的特點(diǎn).clearall;N=10;b1=fir1(N,0.25,boxcar(N+1));b3=fir1(2*N,0.25,boxcar(2*N+1));b4=fir1(4*N,0.25,boxcar(4*N+1));M=128;h1=freqz(b1,1,M);h3=freqz(b3,1,M);h4=freqz(b4,1,M);f=0:0.5/M:0.5-0.5/M;plot(f,abs(h1),f,abs(h3),f,abs(h4));grid;axis([00.501.2])60Matlab中的信號(hào)處理函數(shù)clearall;N=40;n=0:N;b1=fir1(N,0.25,boxcar(N+1));b2=fir1(N,0.25,hamming(N+1));win=hamming(N+1);forn=1:N+1if(n-1-N/2)==0;b1(n)=0;elseb1(n)=(-1)^(n-1-N/2)/(n-1-N/2);endendforn=1:N+1if(n-1-N/2)==0;b2(n)=0;elseb2(n)=win(n)*(-1)^(n-1-N/2)/(n-1-N/2);endendM=128;h1=freqz(b1,1,M);h2=freqz(b2,1,M);%h=freqz(b,1,M);f=0:0.5/M:0.5-0.5/M;hd=2*pi*f;plot(f,abs(h1),f,abs(h2),f,hd,'k-')例7.1.2:理想差分器及其設(shè)計(jì)61Matlab中的信號(hào)處理函數(shù)12.remezord.m本文件用來(lái)確定在用Chebyshev最佳一致逼近設(shè)計(jì)FIR濾波器時(shí)所需要的濾波器階次。其調(diào)用格式是:[N,Fo,Ao,W]=remezord(F,A,DEV,Fs)。F、A的含意同文件remez,DEV是通帶和阻帶上的偏差;輸出的是適合要求的濾波器階次N、頻率向量Fo、幅度向量Ao和加權(quán)向量W。若設(shè)計(jì)者事先不能確定要設(shè)計(jì)的濾波器的階次,那么,調(diào)用remezord后,就可利用這一族參數(shù)調(diào)用remez,即b=remez(N,Fo,Ao,W),從而設(shè)計(jì)出所需要濾波器。因此,remez和remezord常結(jié)合起來(lái)使用。需要說(shuō)明的是,remezord給出的階次N有可能偏低,這時(shí)適當(dāng)增加N即可;另外,最好判斷一下,若N為奇數(shù),就令其加一,使其變?yōu)榕紨?shù),這樣b的長(zhǎng)度為奇數(shù)。62Matlab中的信號(hào)處理函數(shù)與本章內(nèi)容有關(guān)的MATLAB文件主要是fft,ifft和czt.m。顧名思義,fft實(shí)現(xiàn)快速傅立葉變換,ifft實(shí)現(xiàn)快速傅立葉反變換,czt.m

用來(lái)實(shí)現(xiàn)線性調(diào)頻Z變換。fft的調(diào)用格式是:X=fft(x),

或X=fft(x,N)。以高頻pi為頻譜中心

fftshift(X):移位使以零頻為頻譜中心與第八、九章有關(guān)的MATLAB文件63Matlab中的信號(hào)處理函數(shù)X=fft(x)fftshift(X)信號(hào)x64Matlab中的信號(hào)處理函數(shù)fftfilt.m

用疊接相加法實(shí)現(xiàn)長(zhǎng)序列卷積。格式是:

y=fftfilt(h,x)

或y=fftfilt(h,x,N)記的長(zhǎng)度為,的長(zhǎng)度為。若采用第一個(gè)調(diào)用方式,程序自動(dòng)地確定對(duì)分段的長(zhǎng)度及做FFT的長(zhǎng)度,顯然,是最接近的2的整次冪。分的段數(shù)為。采用第二個(gè)調(diào)用方式,使用者可自己指定做FFT的長(zhǎng)度。建議使用第一個(gè)調(diào)用方式。65Matlab中的信號(hào)處理函數(shù)例1.設(shè)x(n)是兩個(gè)正弦信號(hào)及白噪聲的疊加,進(jìn)行頻譜分析。clearall;

%產(chǎn)生兩個(gè)正弦加白噪聲;

N=256;

f1=.1;f2=.2;fs=1;

a1=5;a2=3;

w=2*pi/fs;

x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N);

%應(yīng)用FFT求頻譜;

subplot(4,1,1);

plot(x(1:N/4));axistight

f1=0:2*pi/N:2*pi-pi/N;f=-pi:2*pi/N:pi-pi/N;

X=fft(x);y=ifft(X);

subplot(4,1,2);plot(f1,abs(X));axistight

subplot(4,1,3);plot(f,fftshift(abs(X)));axistightsubplot(4,1,4);plot(real(y(1:N/4)));axistight66Matlab中的信號(hào)處理函數(shù)X=fft(x)fftshift(X)信號(hào)xx’=ifft(X)67Matlab中的信號(hào)處理函數(shù)clear;%用疊接相加法,計(jì)算濾波器系數(shù)h和輸入信號(hào)x的卷積%其中h為10階hanning窗,x是帶有高斯白噪的正弦信號(hào)h=fir1(10,0.3,hanning(11));%h:istheimpulseresponseofaN=500;p=0.05;f=1/16;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論