tic、toc,利用matlab計時,tic為起始時間,toc為結束時間,最終顯示時間=toc-tic
直接卷積:conv,快速卷積:利用fft,利用時域的卷積等於頻域的乘積
x(n)=0.2n*r19(n) , h(n)=(0.8)n*r15(n)。
%直接卷積與快速卷積所花時間的比較
% x(n)=0.2n*r19(n) , h(n)=(0.8)^n*r15(n)。rx(n)長度為x+1
xn=0.2*(1:20);%生成xn序列,長度為20
hn=0.8.^(1:16);%生成hn序列,長度為16
tic;%利用matlab進行計時,tic表示計時開始,toc表示計時結束,顯示時間=toc-tic
yn=conv(xn,hn);%利用直接卷積計算xn與hn的卷積
toc;%計時結束,輸出直接卷積所花費的時間
l=pow2(nextpow2(16+20-1));%取快速卷積的長度l≥m+n-1,且保證l為2的整次冪
tic;%同理,獲取快速卷積的時間
xk=fft(xn,l);%用fft計算x(n)的離散傅利葉變換,長度為l,不足補零
hk=fft(hn,l);%用fft計算h(n)的離散傅利葉變換
yk=xk.*hk;%依次將xk與hk中元素相乘,則輸出結果為yn的頻域形式
yn=ifft(yk,l);%利用ifft計算yn
toc;%計時結束
subplot(221),stem(xn,'.');ylabel('x(n)');%2行2列的第一順位
title('x(n)序列');
subplot(222),stem(hn,'.');ylabel('h(n)');%2行2列的第二順位
title('h(n)序列');
subplot(212),ny=1;stem(real(yn),'.');ylabel('y(n)');%2行1列的第二順位
title('y(n)序列');
conj:去共軛
%已知xn和yn計算互相關函式rm
xn=[-4 -3 -2 -1 0 1 2 2];
yn=[4 2 -2 -1 0 2 2 -3];
k=length(xn);
xk=fft(xn,2*k);%計算fft,資料長度為2*k
yk=fft(yn,2*k);
rm=real(ifft(conj(xk).*yk));%conj為取共軛
rm=[rm(k+2:2*k) rm(1:k)];
m=(-k+1):(k-1);
stem(m,rm);grid;%就單乙個圖無需排版額情況下可以不加subplot
xlabel('m');ylabel('幅度');
數字訊號處理matlab相關基礎例題(7)
butterworth濾波器,設計方法 1 雙線性變換法 2 衝激響應不變法 buttord函式,輸入引數為歸一化引數,wp,ws,rp,rs,z 輸出為butterworth濾波器的階數以及3db截止頻率,n,wn butter函式,公升成乙個n階的巴特沃斯濾波器,輸入引數為n,wn,為butto...
matlab數字訊號處理常用函式
1 tf b,a 根據微分方程求轉移函式 a,b為分子分母多項式係數或者說微分方程左邊右邊的係數 2 tfestimate txy,f tfestimate x,y,window,noverlap,nfft,fs 根據輸入輸出,估計頻率響應函式 3 lsim sys,u,t 根據輸入u 和響應函式s...
數字訊號處理
1.乙個切比雪夫i型模擬帶阻濾波器用下面的指標設計 通帶截止頻率為 和 阻帶截止頻率為 和 峰值通帶紋波是 最小阻帶衰減為 相應的模擬低通濾波器的頻帶截止頻率和階次是多少?帶阻濾波器的階次是多少?用matlab函式cheblord來驗證濾波器階次結果 寫出程式關鍵步驟 matlab驗證 n 3 fs...