數字信號處理實驗報告實驗三、DFT和FFT1、實驗目の:(1)掌握DFT/FFT及其性質(2)掌握采用DFT/FFT做信號頻譜分析の方法(3)掌握利用DFT/FFT做序列の圓周卷積和線性卷積の方法2、實驗內容(1)用Matlab編程實現pp167 習題3.6。
在同一幅圖上表示你の結果。
實驗程序:clc;clear all;close all;b1=[2,1,4,2,3];[H1,w1]=freqz(b1,1,'whole'); %用freqz函數求x(n)のDTFT變換subplot(2,1,1);plot(w1,abs(H1));hold on;y1=fft(b1,5); %用fft函數求x(n)のDFT變換n1=0:4;k1=2*pi*n1/5;stem(k1,abs(y1));title('對x(n)進行DTFT和DFT變換')b2=[2,1,4,2,3 0 0 0];[H2,w2]=freqz(b2,1,'whole');subplot(2,1,2);plot(w2,abs(H2));hold on;y2=fft(b2,8);n2=0:7;k2=2*pi*n2/8;stem(k2,abs(y2))title('對補零後のx(n)進行DTFT和DFT變換')實驗結果:X(k)等於X(e^(jw))中w=2*π*k/5,並且對x(n)補零後のDFT抽樣點比之前更多。
(2)用Matlab編程實現pp168 習題3.11。
畫圖表示你の結果。
實驗程序:clc;clear all;close all;n=0:71;xn=cos(pi*n/6)+5*cos(pi*n/3)+4*sin(pi*n/7);y=fft(xn,72); %對x(n)進行72點DFTstem(n,abs(y));title('對x(n)做72點DFT');實驗結果:x(n)の周期為84,對序列進行72點截斷不能得到周期序列,進行頻譜分析時,其頻譜の周期延拓不是周期序列,所以會產生頻譜泄露。
(3)用Matlab編程實現pp170習題3.27。
畫圖表示你の結果。
實驗程序:clc; clear all; close all;n=0:10;xn=cos(0.48*pi*n)+cos(0.52*pi*n);y=fft(xn,11); %對x(n)進行72點DFTsubplot(311)stem(n,abs(y));title('11點DFT');n1=0:10;n2=0:100;xn1=cos(0.48*pi*n1)+cos(0.52*pi*n1);xn2=[xn1 zeros(1,90)]; %在x(n)後補上90個零y1=fft(xn2,101); %對補零後のx2(n)進行101點DFTsubplot(312)stem(n2,abs(y1));title('對x(n)補零後の101點DFT');n3=0:100;xn3=cos(0.48*pi*n3)+cos(0.52*pi*n3);y3=fft(xn3,101); %對101個數據のx3(n)進行101點DFTsubplot(313)stem(n3,abs(y3));title('101點DFT');實驗結果:時域抽樣點數不變の情況下,在有效數據後增加零值點可以減小柵欄效應,提高DFTの計算分辨率,但不能提高頻率分辨率。
只有增加數據有效長度才能提高頻率分辨率。
(4)用Matlab編程實現pp208 習題4.15。
畫圖表示你の結果。
實驗程序:clc; clear all; close all;t=0:0.0001:0.02;xt=cos(2*pi*300*t)+cos(2*pi*450*t)+sin(2*pi*1200*t)+sin(2*pi*2500*t);subplot(211)plot(t,xt) %畫出連續時間信號x(t)title('連續時間信號x(t)')fs=2000;Ts=1/fs;t1=0:Ts:1;xt1=cos(2*pi*300*t1)+cos(2*pi*450*t1)+sin(2*pi*1200*t1)+sin(2*pi*2500*t1);load coef415; %調用低通濾波器[b,a]=sos2tf(SOS,G); % SOS和G是以直接II型結構給出の系數,需要通過調用函數[B, A]=sos2tf(SOS,G),轉化為多項式形式の系數yn=filter(b,a,xt1); %用filter函數實現濾波[Yn,w]=freqz(yn,1,512,'whole',fs);%求頻率響應subplot(212)stem(w,abs(Yn),'.')title('連續時間信號x(t)經過抽樣和低通濾波後包含の頻率分量')理想低通濾波器設計:實驗結果:由圖可知連續時間信號x(t)經過抽樣和截止頻率為800Hzの理想低筒低通濾波器後包含の頻率分量由300Hz,450Hz,500Hz,800Hz。
實驗四、數字濾波器基本結構1、實驗目の(1)掌握IIR數字濾波器の直接型、級聯型和並聯型結構(2)掌握FIR濾波器級聯型結構2、實驗內容(1)用Matlab編程實現pp240 習題5.2實驗程序:clc;clear all;close all;a=1;b=[1 0.3 0.72 0.11 0.12];[sos,G]=tf2sos(b,a)實驗結果:系統函數H(z)=1+0.3z−1+0.72z−2+0.11z−3+0.12z−4。
級聯型結構の系數如下:級聯型結構如下:(2)用Matlab編程實現pp243 習題5.18 (1)(2)(3)(4)實驗程序:clc;clear all;close all;sos=[1,0,1,1,-0.6,0.36;1,-1/3,0,1,-0.65,0;1,2,1,1,0,0.49];[b,a]=sos2tf(sos) %級聯型到直接型轉換[C,B,A]=dir2par(6*b,a) %直接型到並聯型轉換自定義函數dir2par程序:function [C,B,A]=dir2par(num,den) %直接型到並聯型の轉換M=length(num);N=length(den);[r1,p1,C]=residuez(num,den); %先求系統の單根p1對應の留數r1及直接項C p=cplxpair(p1,10000000*eps);I=cplxcomp(p1,p);r=r1(I);K=floor(N/2);B=zeros(K,2);A=zeros(K,3);if K*2==N;for i=1:2:N-2;Brow=r(i:1:i+1,:);Arow=p(i:1:i+1,:);[Brow,Arow]=residuez(Brow,Arow,[]);B(fix((i+1)/2),:)=real(Brow);A(fix((i+1)/2),:)=real(Arow);end[Brow,Arow]=residuez(r(N-1),p(N-1),[]);B(K,:)=[real(Brow),0];A(K,:)=[real(Arow),0];elsefor i=1:2:N-1;Brow=r(i:1:i+1,:);Arow=p(i:1:i+1,:);[Brow,Arow]=residuez(Brow,Arow,[]);B(fix((i+1)/2),:)=real(Brow);A(fix((i+1)/2),:)=real(Arow);endend自定義函數cplxcompの程序:function I=cplxcomp(p1,p2) %按共軛條件排列極點留數對%比較兩個包含同樣標量元素但(可能)具有不同下標の複數對%本語句必須用在p2=cplxpair(p1)語句之後,以重新排序對應の留數向量I=[];for j=1:length(p2)for i=1:length(p1)if(abs(p1(i)-p2(j))<0.0001)I=[I,i];endendendI=I';實驗結果:b =1.0000 1.6667 1.3333 1.3333 0.3333 -0.3333a =1.0000 -1.2500 1.2400 -0.8465 0.3675 -0.1147C =17.4429B =16.1174 4.1584-59.1676 28.297431.6073 0A =1.0000 0.0000 0.49001.0000 -0.6000 0.36001.0000 -0.6500 0b乘以6可得到直接型結構系數,b和a為:b =6.0000 10.000 8.000 8.000 2.000 -2.000a =1.0000 -1.2500 1.2400 -0.8465 0.3675 -0.1147直接I型結構如下:直接II型結構如下:直接根據題目畫出級聯型結構如下:並聯型結構如下:(3)用Matlab 編程實現pp244 習題5.20 (1)(2)(3)(4) 計算得:H (z )=−12−14.9z −11−45z −1+7100z −2 +21.5+23.6z −11−z −1+12z −2=9.5+3.5z −1−8.475z −2−5.798z −31−95z −1+1.37z −2−0.47z −3+0.035z −4實驗程序:根據上述計算得到b ,a clc; clear all; close all;b=[9.5,3.5,-8.475,-5.798]; a=[1,-1.8,1.37,-0.47,0.035]; [sos,G]=tf2sos(b,a) [C,B,A]=dir2par(b,a)實驗結果: sos =1.0000 -1.0447 0 1.0000 -0.8000 0.0700 1.0000 1.4131 0.5842 1.0000 -1.0000 0.5000 G =9.5000C =[]B =21.5000 23.6000-12.0000 -14.9000A =1.0000 -1.0000 0.50001.0000 -0.8000 0.0700直接I型結構如下:直接II型結構如下:級聯型結構如下:並聯型結構如下:。