1.實驗目的
(1)進一步加深DTFT、DFT和z 變化的演算法原理和基本性質的理解,
(2)熟悉系統的頻率回應和傳輸函式,
(3)學習用FFT對時域離散信號進行譜分析的方法,了解可能出現的問題,以便在實際中正確應用FFT,
2.實驗原理
(1)信號的頻域表示



(2)頻率回應

(3)傳輸函式


3.實驗內容
(1)撰寫程式產生以下典型信號:

(2)N = 8和N= 16分別對(1)中所給出的信號逐個進行頻譜分析,觀察幅頻特性,

4.實驗報告要求
(1)在實驗報告中簡述實驗目的和實驗原理要點,
(2)在實驗報告中附上實驗程序記錄的各典型信號的幅頻特性曲線,與理論結果比較并分析誤差產生的原因以及用FFT譜分析時有關引數的選擇方法,
(3)總結實驗中的主要結論,
Matlab程式1_1,2:
Problem1_1,2
clear
x1=[];m=0:7;x2=[];
for n=0:3;
xa=n+1;
xb=4-n;
x1=[x1 xa];
x2=[x2 xb];
end
for n=4:7;
xa=8-n;
xb=n-3;
x1=[x1 xa];
x2=[x2 xb];
end
figure(1)
subplot(211)
stem(m,x1);%%繪制火柴梗,產生離散信號
xlabel('Time index n');
ylabel('Amplitude');
title('Original time-domain sequence x1 LEI');
subplot(212)
stem(m,x2);%%繪制火柴梗,產生離散信號
xlabel('Time index n');
ylabel('Amplitude');
title('Original time-domain sequence x2 LEI');
%DFT
N=input('N=');
k=0:N-1;
X1=fft(x1,N);%%傅里葉變換
X2=fft(x2,N);%%傅里葉變換
figure(2)
subplot(211)
stem(k,abs(X1));%%繪制火柴梗,產生離散信號
xlabel('Frequency index k');
ylabel('Amplitude');
title('Magnitude of the DFT samples X1 LEI');
subplot(212)
stem(k,abs(X2));%%繪制火柴梗,產生離散信號
xlabel('Frequency index k');
ylabel('Amplitude');
title('Magnitude of the DFT samples X2 LEI');
運行結果1_1,2:



Matlab程式1_3,4:
Problem1_3,4
clear
N=input('N=');
n=0:N-1;
x3=cos(pi*n/4);
x4=sin(pi*n/4);
figure(1)
subplot(211)
stem(n,x3);%%繪制火柴梗,產生離散信號
xlabel('Time index n');
ylabel('Amplitude');
title('Original time-domain sequence x3 LEI');
subplot(212)
stem(n,x4);%%繪制火柴梗,產生離散信號
xlabel('Time index n');
ylabel('Amplitude');
title('Original time-domain sequence x4 LEI');
%DFT
X3=fft(x3,N);%%傅里葉變換
X4=fft(x4,N);%%傅里葉變換
k=0:N-1;
figure(2)
subplot(211)
stem(k,abs(X3));%%繪制火柴梗,產生離散信號
xlabel('Frequency index k');
ylabel('Amplitude');
title('Magnitude of the DFT samples X3 LEI');
subplot(212)
stem(k,abs(X4));%%繪制火柴梗,產生離散信號
xlabel('Frequency index k');
ylabel('Amplitude');
title('Magnitude of the DFT samples X4 LEI');
運行結果1_3,4:



Matlab程式3:
Problem3
clear
N=input('N=');
n=0:N-1;
k=0:N-1;
x3=cos(pi*n/4);
x4=sin(pi*n/4);
x=x3+x4;
X=fft(x,N);%%傅里葉變換
X31=real(X);%%復數的實部
X41=imag(X);%%復數的虛部
figure(1)
subplot(211)
stem(k,abs(X31));%%繪制火柴梗,產生離散信號
xlabel('Time index k');
ylabel('Amplitude');
title('Original time-domain sequence X31 LEI');
subplot(212)
stem(k,abs(X41));%%繪制火柴梗,產生離散信號
xlabel('Time index k');
ylabel('Amplitude');
title('Original time-domain sequence X41 LEI');
運行結果3:

Matlab程式4:
Problem4
clear
N=input('N=');
n=0:N-1;
k=0:N-1;
x3=cos(pi*n/4);
x4=sin(pi*n/4);
xa=x3+i*x4;
xb=x3-i*x4;
Xa=fft(xa,N);%%傅里葉變換
Xb=fft(xb,N);%%傅里葉變換
X32=0.5*(Xa+Xb);
X42=0.5*(Xa-Xb);
figure(1)
subplot(211)
stem(k,abs(X32));%%繪制火柴梗,產生離散信號
xlabel('Time index k');
ylabel('Amplitude');
title('Original time-domain sequence X32 LEI');
subplot(212)
stem(k,abs(X42));%%繪制火柴梗,產生離散信號
xlabel('Time index k');
ylabel('Amplitude');
title('Original time-domain sequence X42 LEI');
運行結果4:


Matlab程式5_a,c:
Problem5_ac
clear
k=256;
num=[0.9 -0.45 0.35 0.002];
den=[1 0.71 -0.46 -0.62];
w=0:pi/(k-1):pi;
h=freqz(num,den,w);%%計算頻率回應
figure(1)
subplot(211)
plot(w/pi,abs(h));%%幅頻特性曲線
title('f(t)的幅頻特性曲線 LEI');
xlabel('w');
ylabel('幅度');
subplot(212)
plot(w/pi,angle(h));%%相頻特性曲線
title('f(t)的相頻曲線 LEI');
xlabel('w');
ylabel('相位(弧度)');
figure(2)
[z,p,k]=tf2zp(num,den);%%求得有理分式形式的系統轉移函式的零、極點
zplane(num,den);%%繪制零極點
title('零極點圖 LEI');
運行結果5_a,c:


Matlab程式5_b:
Problem5_b
clear
n=40;
k=0:1:n-1;
num=[0.9 -0.45 0.35 0.002];
den=[1 0.71 -0.46 -0.62];
y1=impz(num,den,n);%%系統沖激回應
x1=[1 2 0 -0.5];
y=conv(y1,x1);%%計算卷積
subplot(211)
stem(y)
title('線性卷積 LEI');
l=length(x1)+length(y1)-1;
X=fft(x1,1);%%傅里葉變換
H=fft(y1',1);
Y=X.*H;
yy=real(ifft(Y,1));%%FFT逆變換
subplot(212)
stem(yy)
xlabel('n');
ylabel('y(n)');
title('Made by LEI');
運行結果5_b:

本人能力有限,解釋尚不清楚明了,如遇任何問題,大家可留言或私信,后續將程式檔案打包上傳,供大家學習使用,
本文希望對大家有幫助,當然上文若有不妥之處,歡迎指正,
分享決定高度,學習拉開差距
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/192685.html
標籤:其他
