第一篇:信號與系統課程設計教案
信號與系統課程設計教案
一、matlab工作空間介紹。
二、信號處理部分:
1)信號的產生,matlab工具箱,自己編程函數仿真,導入實際數據。2)信號的卷積,奇偶分解,各種性質的驗證。3)信號分解的基本原理。
4)信號分解的算法實現,自己編程驗證。5)結合實驗給出實驗分析和結論。
三、離散信號處理部分:
1)信號分解算法的離散化。2)信號分解的基本原理。
3)信號分解的算法實現,自己編程驗證。4)結合實驗給出實驗分析和結論。
四、信號濾波處理部分:
1)將信號進行傅里葉分解。2)在頻率域進行理想濾波。3)將信號變換到時間域。
4)結合實驗結果給出實驗分析和結論。
五、連續系統分析部分:
1)電路系統建模或者已有微分系統方程。2)根據輸入求解系統的響應。3)求解系統的單位沖激響應。
4)編程實現,驗證系統的因果性,穩定性。
六、離散系統分析部分:
1)電路系統建模或者已有差分系統方程。2)根據輸入求解系統的響應。3)求解系統的單位脈沖響應。
4)編程實現,驗證系統的因果性,穩定性。實驗報告組成:
1、實驗基本原理
2、理論分析求解
3、實驗編程驗證
4、實驗結果分析。
一、基本函數:
1、函數變量的定義。
syms是定義符號變量sym是將字符或者數字轉換為字符
比如syms x y %就是定了符號變量x y以后x y就可以直接使用 sys('a+b')%就是將a+b轉化為符號表達式。
2、單位階躍信號。Heaviside()。
syms t;f=heaviside(t-4);或者f=@(t)heaviside(t-4);ezplot(f,[0 5])
3、單位沖激信號 f=@(x)dirac(x-2);
二、示例演示分析 示例1:
1設f(t)?e?2tu(t),畫出該信號的及其幅頻圖。
21、概述:掌握信號傅立葉變換的計算方法。
2、設計任務,即要設計的主要內容和要求等
掌握信號傅立葉變換的計算方法以及程序求解方法。
3、設計原理
4、設計方案
5、測試過程及結果
6、結論或小結
第一步,計算信號的傅里葉變換 第二步,理論分析 第三步,實驗驗證 syms t v w x;x=1/2*exp(-2*t)*sym('heaviside(t)');F=fourier(x);subplot(211);ezplot(x);subplot(212);ezplot(abs(F));第四步,實驗分析
示例2:周期信號的傅里葉級數
將振幅為1Hz的正弦波和振幅為0.5的5Hz的正弦波相加進行分析,研究能否從中分析出含有這兩種頻率的信號。
1、信號源仿真
f(t)?sin(2?t)?sin(2?5t)。
2、理論分析 運用什么工具來做,實信號的傅里葉級數展開式
2Tak??f(t)cos(kw0t)dt
T02Tbk??f(t)sin(kw0t)dt
T02Nak?f(n?)cos(nw0k?)? ?N?n?02Nbk??f(n?)sin(nw0k?)?
N?n?02ak?N2bk?N?f(n?)cos(2?nk/N)
n?0NN?f(n?)sin(2?nk/N)
n?0ck?ak2?bk2
3、實驗驗證
clear all N=256;dt=0.02;n=0:N-1;t=n*dt;x=sin(2*pi*t)+0.5*sin(2*pi*5*t);%D?o??óμ?μ?μ?o?3éD?o m=floor(N/2)+1;a=zeros(1,m);b=zeros(1,m for k=0:m-1 for ii=0:N-1 a(k+1)=a(k+1)+2/N*x(ii+1)*cos(2*pi*k*ii/N);b(k+1)=b(k+1)+2/N*x(ii+1)*sin(2*pi*k*ii/N);end
c(k+1)=sqrt(a(k+1).^2+b(k+1).^2);end
subplot(2,1,1),plot(t,x);title('原始信號'),xlabel('時間/s')subplot(2,1,2),plot((0:m-1)/(N*dt),c)title('Fourier變換'),xlabel('頻率/Hz'),ylabel(幅度')
4、實驗分析
示例3:傅里葉變換的數值計算 離散理論分析:
F(w)??????f(t)e?jwtn???dt?lim???n????f(n?)e?jwn?,因為信號為衰減信號,可以得到下面近似:
n?N?1F(k)?F(kw1)??n?0f(n?)e?jkw1n?,w1?2?。N???1,t?1??已知門信號g(t)???,求其傅里葉變換,并畫出圖形。
??0,t?1??
1、計算信號的傅里葉變換:
傅里葉變換可求得該信號的頻譜為F(w)?2sa(w);
2、理論分析:該信號的頻譜為F(w)?2sa(w),第一個過零點頻率為?,一般將此頻率認為信號的有效帶寬,故采樣頻率應該大于有效帶寬的兩倍,但是因為F(w)在有效帶寬外有頻譜泄露,故應適當提高采樣頻率,我們設定為w0?50?,所以抽樣間隔應該為??11??0.02。
w2f02?02?
3、實驗驗證:
R=0.02;t=-2:R:2;f=heaviside(t+1)-heaviside(t-1);W1=2*pi/R;N=size(t,2);k=0:N-1;W=k*W1/N;F=f*exp(-j*t'*W)*R;F=real(F);W=[-fliplr(W(1:101)),W(2:101)];F=[fliplr(F(1:101)),F(2:101)];subplot(2,1,1);plot(t,f);xlabel('t');ylabel('f(t)');title('f(t)=u(t+1)-u(t-1)');subplot(2,1,2);plot(W,F);xlabel('w');ylabel('F(w)');title('f(t)μ???ê?±???F(w)');
4、實驗分析
第二篇:信號與系統
問題4:單側可導與單側連續、單側極限的關系?單側極限存在 并且極限值=函數值 可以推出單側連續可導必連續,連續未必可導那么 單側可導是否可以推出單側連續?請證明;反之,單側極限是否可以推出單側可導?請證明或舉反例。謝謝老師!
解答:單側可導可以推出單側連續,單側連續可以推出單側極限存在。
證:設函數f(x)在x0點的右側導數存在,即右導數存在,根據右導數存在的定義,lim?x?x0f(x)?f(x0)x?x0存在,由于x?x0時,分母x?x0趨于0,所以f(x)?f(x0)也要趨于0,否則這個極限是不存在的。所以lim?f(x)?f(x0)??0,即limf(x)?f(x0),亦即f(x)在x0點右連續。??x?x0?x?x0
再證明單側連續可以推出單側極限存在。
設函數f(x)在x0點右連續,即limf(x)?f(x0),這說明函數在x0點的右極限存在。?x?x0
由于連續未必可導,所以單側連續也是推不出單側可導的,具體例子見同濟六版課本P85,例9
第三篇:《信號與系統》課程設計——語音信號的分析和處理
《信號與系統》課程設計——語音信號的分析和處理
【設計題目】基于時頻域的分析方法對語音信號進行分析和處理 【設計目標】嘗試對語音信號進行時頻域分析和處理的基本方法 【設計工具】MATLAB 【設計原理】
通過MATLAB的函數wavread()可以讀入一個.wav格式的音頻文件,并將該文件保存到指定的數組中。例如下面的語句(更詳細的命令介紹可以自己查閱MATLAB的幫助)中,將.wav讀入后存放到矩陣y中。y = wavread('SpecialEnglish.wav');
對于單聲道的音頻文件,y只有一行,即一個向量;對于雙聲道的音頻文件,y有兩行,分別對應了兩個聲道的向量。我們這里僅對一個聲道的音頻進行分析和處理即可。注意:.wav文件的采樣頻率為44.1KHz,采樣后的量化精度是16位,不過我們不用關心其量化精度,因為在MATLAB讀入后,已將其轉換成double型的浮點數表示。
在獲得了對應音頻文件的數組后,我們可以對其進行一些基本的分析和處理。可以包括:
1、對語音信號進行頻域分析,找到語音信號的主要頻譜成分所在的帶寬,驗證為何電話可以對語音信號采用8KHz的采樣速率。
2、分析男聲和女聲的差別。我們知道男聲和女聲在頻域上是有些差別的,一般大家都會認為女聲有更多高頻的成分,驗證這種差別。同時,提出一種方法,能夠對一段音頻信號是男聲信號、還是女聲信號進行自動的判斷。
3、語音與樂器音頻的差別。比較語音信號與樂器音頻信號的差別,尤其是在頻域上的差別。
4、.wav文件的采樣速率為44.1KHz,仍然遠遠高于我們通常說的語音信號需要的頻譜寬度,例如在電話對語音信號的采樣中,我們僅僅使用8KHz的采樣速率。對讀入的音頻數據進行不同速率的降采樣,使用wavplay()命令播放降采樣后的序列,驗證是否會對信號的質量產生影響。降采樣的方法很簡單,例如命令y = wavread('SpecialEnglish.wav');將語音文件讀入后保存在向量y中,這時對應的采樣頻率為44.1KHz。使用y1 = y(1:2:length(y))命令,就可以將原序列y每隔1個采樣后放入序列y1中,這時y1序列對應的采樣頻率即為22KHz。
5、自己下載獲得一段中文語音信號(可以使用諸如“千千靜聽”等工具將.mp3文件轉換成.wav文件),對中文語音與英文語音進行比較。以下對提供的語音信號進行說明:
SpecialEnglish.mp3:原始的語音信號,.mp3格式 Q2.wav:男聲信號
Q3.wav、Q5.wav:女聲信號
Q4.wav、Q6.wav:帶有樂器伴奏的男聲歌聲信號 Q7.wav:音樂信號
【MATLAB參考命令】
繪圖命令:plot、stem等 求頻譜、頻率響應:fft、freqz等 卷積、濾波:conv、deconv、filter等
聲音文件讀寫:wavread、wavwrite、wavplay等
具體使用方法可以查閱MATLAB的幫助或者MATLAB參考書的基本使用。
第四篇:信號與系統綜合實驗教案
實驗6 離散時間信號與系統的Z變換分析 部分分式展開的MATLAB實現
信號的Z域表示式通常可用下面的有理分式表示
為了能從信號的Z域象函數方便地得到其時域原函數,可以將F(z)展開成部分分式之和的形式,再對其取Z逆變換。
MATLAB的信號處理工具箱提供了一個對F(z)進行部分分式展開的函數[WTBZ]residuez它的調用形式: [r,p,k]=residuez(num,den)其中,num、den分別表示F(z)的分子和分母多項式的系數向量;r為部分分式的系數;p為極點;k為多項式的系數。若F(z)為真分式,則k為零。借助residuze函數可以將F(z)展開成:
num?z?r?1?r?n????? den?z?1?p?1?z?11?p?n?z?1 ?k?1??k?2?z?1???k?m?n?1?z??m?n?
例1 試用MATLAB計算
F?z??
18?3z?1?4z?2?z?3的部分分式展開。
解 計算部分分式展開的[WTBZ]MATLAB程序如下:
%program10.6-1
num=[18];
den=[183-4-1];
[r,p,k]=residuez(num,den) 程序運行結果為
r=0.36000.24000.4000
p=0.5000-0.3333-0.3333
k=[]
從運行結果中可以看出p(2)=p(3),表示系統有一個二階的重極點,r(2)表示一階極點前的系數,而r(3)就表示二階極點前的系數。對高階重極點,其表示方法是完全類似的,所以該F(z)的部分分式展開為:
0.360.240.4F?z???? 1?0.5z?11?0.3333z?11?0.3333z?12 b0?b1z?1?b2z?2???bmz?mnum?z?F?z????1?2?nden?z?1?a1z?a2z???anz??2 利用MATLAB計算H(z)的零極點與系統特性
如果系統函數H(z)的有理函數表示形式為
那么系統函數的零點和極點可以通過MATLAB函數roots得到,也可用函數tf2zp得到,tf2zp的調用形式為:
[z,p,k]=tf2zp(b,a)
b1zm?b2zm?1???bm?1H?z??a1zn?a2zn?1???an?1
式中,b和a分別為H(z)的分子多項式和分母多項式的系數向量,它的作用是將H(z)的有理函數表示式轉換為零點、極點和增益常數的表示式,即
?z?z1??z?z2???z?zm? H?z??k ?z?p1??z?p2???z?pn?
例2 已知一離散因果LTI系統的系統函數為
z?1?2z?2?z?3H?z?? 1?0.5z?1?0.005z?2?0.3z?3求該系統的零極點。
解 將系統函數改寫為
z2?2z?1H?z??3 z?0.5z2?0.005z?0.3
用tf2zp函數求系統的零極點,程序如下:
%program10.6-2
b=[121];
a=[1-0.5-0.0050.3];
[r,p,k]=tf2zp(b,a) 運行結果為
r=-
1-1
p=0.5198+0.5346i
0.5198-0.5346i
-0.5396
k=1
若要獲得系統函數H(z)的零極點分布圖,可以直接應用zplane函數,其調用形式為: zplane(b,a)式中,b和a分別為H(z)的分子多項式和分母多項式的系數向量。它的作用是在Z平面畫出單位圓、零點和極點。
如果已知系統函數H(z),求系統的單位脈沖響應h[k]和頻率響應H(ejΩ),則可應用impz函數和freqz函數。
例3 已知一離散因果LTI系統的系統函數為
2z?2z?1 H?z??32?1z?0.5z?0.005z?0.3
試畫出系統的零極點分布圖,求系統的單位脈沖響應h[k]和頻率響應H(ejΩ),并判斷系統是否穩定。
解 根據已知的H(z),用zplane函數即可畫出系統的零極點分布圖。利用impz函數和freqz函數求系統的單位脈沖響應和頻率響應時,需要將H(z)改寫成:
z?1?2z?2?z?3H?z?? 1?0.5z?1?0.005z?2?0.3z?3程序如下:
%program10.6-3
b=[121];
a=[1-0.5-0.0050.3];
figure(1);zplane(b,a);
num=[0121];
den=[1-0.5-0.0050.3];
h=impz(num,den);figure(2);stem(h,′.′)xlabel(′k′)title(′ImpulseRespone′)[H,w]=freqz(num,den);figure(3);plot(w/pi,abs(H))xlabel(′Frequency\omega′)title(′MagnitudeRespone′)利用MATLAB計算Z變換
MATLAB的符號數學工具箱提供了計算Z變換的函數ztrans和Z逆變換的函數iztrans,其調用形式為:
F=ztrans(f)
f=iztrans(F)
式中,f為信號的時域表達式的符號對象,F表示信號f的象函數表達式的符號對象。符號對象可以應用函數sym實現,其調用格式為:
S=sym(A)
式中,A為待分析表示式的字符串;S為符號數字或變量。例4 試分別用ztrans函數和iztrans函數求:
(1)f[k]=cos(ak)ε(k)的Z變換;F?z??(2)?1?z?2的Z逆變換。
解(1)求f[k]的Z變換的程序如下:
%program10.6-4(1)
f=sym(′cos(a*k)′);
F=ztrans(f)運行結果為
F=(z-cos(a))*z/(z^2-2*z*cos(a)+1)即
z?z?cos?a?? ??cos?ak???k???2 z?2zcos?a??1(2)求F(z)逆變換的程序為
%program10.6-4(2)
F=sym(′1/(1+z)^2′);
f=iztrans(F)程序運行結果為
f=Delta(n)+(-1)^n*n-(-1)^n 即
?1?kk ??????????1???k??1?kk?1??k??2 ??1?z??
第五篇:信號與系統實驗報告,
實驗三
常見信號得MATLAB 表示及運算 一、實驗目得 1。熟悉常見信號得意義、特性及波形 2.學會使用 MATLAB 表示信號得方法并繪制信號波形 3、掌握使用MATLAB 進行信號基本運算得指令 4、熟悉用MATLAB 實現卷積積分得方法 二、實驗原理 根據MATLAB 得數值計算功能與符號運算功能,在 MATLAB中,信號有兩種表示方法,一種就是用向量來表示,另一種則就是用符號運算得方法。在采用適當得 MATLAB 語句表示出信號后,就可以利用 MATLAB中得繪圖命令繪制出直觀得信號波形了。
1、連續時間信號
從嚴格意義上講,MATLAB并不能處理連續信號。在MATLAB 中,就是用連續信號在等時間間隔點上得樣值來近似表示得,當取樣時間間隔足夠小時,這些離散得樣值就能較好地近似出連續信號。在 MATLAB 中連續信號可用向量或符號運算功能來表示。
⑴
向量表示法 對于連續時間信號,可以用兩個行向量 f 與 t 來表示,其中向量 t 就是用形如得命令定義得時間范圍向量,其中,為信號起始時間,為終止時間,p 為時間間隔。向量 f 為連續信號在向量 t所定義得時間點上得樣值. ⑵
符號運算表示法 如果一個信號或函數可以用符號表達式來表示,那么我們就可以用前面介紹得符號函數專用繪圖命令 ezplot()等函數來繪出信號得波形。
⑶
得 常見信號得 M ATLA B表示
單位階躍信號 單位階躍信號得定義為:
方法一:
調用 H eaviside(t)函數 首先定義函數 Heaviside(t)得m函數文件,該文件名應與函數名同名即Heaviside、m.%定義函數文件,函數名為 Heaviside,輸入變量為 x,輸出變量為y function y= Heaviside(t)
y=(t>0);
%定義函數體,即函數所執行指令 %此處定義t>0 時 y=1,t<=0 時y=0,注意與實際得階躍信號定義得區別.方法二:數值計算法 在MATLAB 中,有一個專門用于表示單位階躍信號得函數,即 s te pfun()函數,它就是用數值計算法表示得單位階躍函數.其調用格式為: st epfun(t,t0)
其中,t 就是以向量形式表示得變量,t0 表示信號發生突變得時刻,在t0以前,函數值小于零,t0以后函數值大于零。有趣得就是它同時還可以表示單位階躍序列,這只要將自變量以及
取樣間隔設定為整數即可。
符號函數 符號函數得定義為:
在 MATLAB 中有專門用于表示符號函數得函數 s ign(),由于單位階躍信號(t)與符號函數兩者之間存在以下關系:,因此,利用這個函數就可以很容易地生成單位階躍信號.2、離散時間信號 離散時間信號又叫離散時間序列,一般用 表示,其中變量 k 為整數,代表離散得采樣時間點(采樣次數)。
在 MATLAB中,離散信號得表示方法與連續信號不同,它無法用符號運算法來表示,而只能采用數值計算法表示,由于 MATLAB 中元素得個數就是有限得,因此,MATLAB無法表示無限序列;另外,在繪制離散信號時必須使用專門繪制離散數據得命令,即 stem(()函數,而不能用plot()函數。
單位序列
單位序列)得定義為
單位階躍序列 單位階躍序列得定義為 3、卷積積分 兩個信號得卷積定義為:
MATLAB 中就是利用 conv 函數來實現卷積得.功能:實現兩個函數與得卷積.格式:g=conv(f1,f2)
說明:f1=f 1(t),f2=f 2(t)
表示兩個函數,g=g(t)表示兩個函數得卷積結果。
三、實驗內容 1、分別用 MATLAB得向量表示法與符號運算功能,表示并繪出下列連續時間信號得波形:
⑴
⑵
(1)
t=-1:0、01:10;t1=-1:0、01:-0、01;t2=0:0、01:10; f1=[zeros(1,length(t1)),ones(1,length(t2))];f=(2—exp(-2*t))、*f1; plot(t,f)axis([-1,10,0,2、1])
syms t;f=sym(’(2-exp(—2*t))*heaviside(t)“); ezplot(f,[-1,10]);
(2)t=—2:0、01:8; f=0、*(t<0)+cos(pi*t/2)、*(t>0&t〈4)+0、*(t〉4);plot(t,f)
syms t;f=sym(”cos(pi*t/2)*[heaviside(t)—heaviside(t—4)] “);ezplot(f,[-2,8]);
2、分別用 MATLAB 表示并繪出下列離散時間信號得波形:
⑵
⑶
(2)
t=0:8; t1=—10:15; f=[zeros(1,10),t,zeros(1,7)];stem(t1,f)axis([—10,15,0,10]);
(3)t=0:50;t1=—10:50; f=[zeros(1,10),sin(t*pi/4)];stem(t1,f)
axis([—10,50,—2,2])
3、已知兩信號,求卷積積分,并與例題比較。
t1=—1:0、01:0; t2=0:0、01:1;t3=—1:0、01:1; f1=ones(size(t1));f2=ones(size(t2));g=conv(f1,f2); subplot(3,1,1),plot(t1,f1); subplot(3,1,2),plot(t2,f2);subplot(3,1,3),plot(t3,g);
與例題相比較,g(t)得定義域不同,最大值對應得橫坐標也不同。
4、已知,求兩序列得卷積與 .N=4;M=5; L=N+M—1; f1=[1,1,1,2]; f2=[1,2,3,4,5];g=conv(f1,f2); kf1=0:N-1; kf2=0:M-1;kg=0:L—1;subplot(1,3,1),stem(kf1,f1,’*k’);xlabel(”k“); ylabel(’f1(k)”);grid on subplot(1,3,2),stem(kf2,f2,’*k“);xlabel('k’);ylabel(”f2(k)’);grid on subplot(1,3,3);stem(kg,g,'*k’);xlabel('k“); ylabel(”g(k)');grid on
實驗心得:第一次接觸 Mutlab 這個繪圖軟件,覺得挺新奇得,同時 ,由于之前不太學信號與系統遇到一些不懂得問題,結合這些圖對信號與系統有更好得了解。
實驗四
連續時間信號得頻域分析 一、實驗目得 1。熟悉傅里葉變換得性質 2.熟悉常見信號得傅里葉變換 3。了解傅里葉變換得MATLAB 實現方法 二、實驗原理 從已知信號求出相應得頻譜函數得數學表示為:
傅里葉反變換得定義為:
在 MATLAB中實現傅里葉變換得方法有兩種,一種就是利用 MATLAB 中得 Sy mbo lic Math Too lbox 提供得專用函數直接求解函數得傅里葉變換與傅里葉反變換,另一種就是傅里葉變換得數值計算實現法.1、直接調用專用函數法 ①在 MATLAB 中實現傅里葉變換得函數為:
F=fourier(f)
對f(t)進行傅里葉變換,其結果為 F(w)
F=fourier(f,v)
對 f(t)進行傅里葉變換,其結果為F(v)
F=fourier(f,u,v)
對f(u)進行傅里葉變換,其結果為 F(v)②傅里葉反變換
f=ifourier(F)
對 F(w)進行傅里葉反變換,其結果為 f(x)
f=ifourier(F,U)
對F(w)進行傅里葉反變換,其結果為f(u)
f=ifourier(F,v,u)
對F(v)進行傅里葉反變換,其結果為 f(u)
注意:
(1)在調用函數 fourier()及 ifourier()之前,要用 syms 命令對所有需要用到得變量(如 t,u,v,w)等進行說明,即要將這些變量說明成符號變量。對fourier()中得 f 及ifourier()中得 F 也要用符號定義符 sym 將其說明為符號表達式。
(2)采用 fourier()及 fourier()得到得返回函數,仍然為符號表達式。在對其作圖時要用 ezplot()函數,而不能用plot()函數.(3)fourier()及fourier()函數得應用有很多局限性,如果在返回函數中含有 δ(ω)等函數,則 ezplot()函數也無法作出圖來。另外,在用 fourier()函數對某些信號進行變換時,其返回函數如果包含一些不能直接表達得式子,則此時當然也就無法作圖了。這就是fourier()函數得一個局限。另一個局限就是在很多場合,盡管原時間信號 f(t)就是連續得,但卻不能表示成符號表達式,此時只能應用下面介紹得數值計算法來進行傅氏變換了,當然,大多數情況下,用數值計算法所求得頻譜函數只就是一種近似值。
2、傅里葉變換得數值計算實現法 嚴格說來,如果不使用 symbolic 工具箱,就是不能分析連續時間信號得。采用數值計算方法實現連續時間信號得傅里葉變換,實質上只就是借助于MATLAB 得強大數值計算功能,特別就是其強大得矩陣運算能力而進行得一種近似計算。傅里葉變換得數值計算實現法得原理如下: 對于連續時間信號 f(t),其傅里葉變換為:
其中 τ 為取樣間隔,如果 f(t)就是時限信號,或者當|t|大于某個給定值時,f(t)得值已經衰減得很厲害,可以近似地瞧成就是時限信號,則上式中得n取值就就是有限得,假定為 N,有:
若對頻率變量 ω 進行取樣,得:
通常取:,其中就是要取得頻率范圍,或信號得頻帶寬度。采用 MATLAB 實現上式時,其要點就是要生成 f(t)得N個樣本值得向量,以及向量,兩向量得內積(即兩矩陣得乘積),結果即完成上式得傅里葉變換得數值計算。
注意:時間取樣間隔 τ 得確定,其依據就是 τ 必須小于奈奎斯特(Nyquist)取樣間隔。如果 f(t)不就是嚴格得帶限信號,則可以根據實際計算得精度要求來確定一個適當得頻率為信號得帶寬。
三、實驗內容 1、編程實現求下列信號得幅度頻譜(1)
求出得頻譜函數 F 1(jω),請將它與上面門寬為 2 得門函數得頻譜進行比較,觀察兩者得特點,說明兩者得關系。
(2)三角脈沖
(3)單邊指數信號
(4)
高斯信號
(1)
syms t w
Gt=sym(“Heaviside(2*t+1)—Heaviside(2*t-1)’);
Fw=fourier(Gt,t,w);
FFw=maple(’convert’,Fw,’piecewise”);
FFP=abs(FFw);
ezplot(FFP,[—10*pi 10*pi]);grid;
axis([-10*pi 10*pi 0 2、2])
與得頻譜比較,得頻譜函數 F 1(jω)最大值就是其得1/2.(2)syms t w;Gt=sym(“(1+t)*(Heaviside(t+1)—Heaviside(t))+(1-t)*(Heaviside(t)—Heaviside(t—1))”);Fw=fourier(Gt,t,w);
FFw=maple(“convert',Fw,’piecewise”);
FFP=abs(FFw);
ezplot(FFP,[—10*pi 10*pi]);grid;
axis([—10*pi 10*pi 0 2、2])
(3)syms t w
Gt=sym(’exp(-t)*Heaviside(t)’);
Fw=fourier(Gt,t,w);
FFw=maple(“convert”,Fw,’piecewise’);
FFP=abs(FFw);
ezplot(FFP,[—10*pi 10*pi]);grid;
axis([—10*pi 10*pi —1 2])
(4)syms t w
Gt=sym(’exp(-t^2)“);
Fw=fourier(Gt,t,w);
FFw=maple('convert’,Fw,’piecewise’);
ezplot(FFw,[-30 30]);grid;
axis([—30 30 —1 2])
2、利用 ifourier()函數求下列頻譜函數得傅氏反變換(1)
(2)
(1)syms t w
Fw=sym(’-i*2*w/(16+w^2)’);
ft=ifourier(Fw,w,t);
ft 運行結果: ft = —exp(4*t)*heaviside(—t)+exp(—4*t)*heaviside(t)(2)
syms t w
Fw=sym(”((i*w)^2+5*i*w-8)/((i*w)^2+6*i*w+5)’);
ft=ifourier(Fw,w,t);
ft 運行結果: ft = dirac(t)+(-3*exp(-t)+2*exp(-5*t))*heaviside(t)實驗 心得 matlab 不但具有數值計算能力,還能建模仿真,能幫助我們理解不同時間信號得頻域分析。
實驗五 連續時間系統得頻域分析 一、實驗目得 1.學習由系統函數確定系統頻率特性得方法.2.學習與掌握連續時間系統得頻率特性及其幅度特性、相位特性得物理意義.3.通過本實驗了解低通、高通、帶通、全通濾波器得性能及特點。
二、實驗原理及方法 頻域分析法與時域分析法得不同之處主要在于信號分解得單元函數不同。在頻域分析法中,信號分解成一系列不同幅度、不同頻率得等幅正弦函數,通過求取對每一單元激勵產生得響應,并將響應疊加,再轉換到時域以得到系統得總響應。所以說,頻域分析法就是一種變域分析法.它把時域中求解響應得問題通過 Fourier 級數或 Fourier 變換轉換成頻域中得問題;在頻域中求解后再轉換回時域從而得到最終結果.在實際應用中,多使用另一種變域分析法:復頻域分析法,即 Laplace 變換分析法。
所謂頻率特性,也稱頻率響應特性,就是指系統在正弦信號激勵下穩態響應隨頻率變化得情況,包括幅度隨頻率得響應與相位隨頻率得響應兩個方面.利用系統函數也可以確定系統頻率特性,公式如下:
幅度響應用表示,相位響應用表示。
本實驗所研究得系統函數 H(s)就是有理函數形式,也就就是說,分子、分母分別就是 m、n 階多項式。
要計算頻率特性,可以寫出
為了計算出、得值,可以利用復數三角形式得一個重要特性:
而,則 利用這些公式可以化簡高次冪,因此分子與分母得復數多項式就可以轉化為分別對實部與虛部得實數運算,算出分子、分母得實部、虛部值后,最后就可以計算出幅度、相位得值了。
三、實驗內容 a),m 取值區間 [0,1],繪制一組曲線 m=0、1,0、3,0、5,0、7,0、9;b)繪制下列系統得幅頻響應對數曲線與相頻響應曲線,分析其頻率特性.(1)
(2)
(3)
a)% design2、m
figure
alpha=[0、1,0、3,0、5,0、7,0、9];
colorn=['r’ ’g’ ’b“ ’y” “k'];
%
r g b y m c k(紅,綠,藍,黃,品紅,青,黑)
for n=1:5
b=[0 alpha(n)];
% 分子系數向量
a=[alpha(n)-alpha(n)^2 1];
% 分母系數向量
printsys(b,a,”s“)
[Hz,w]=freqs(b,a);
w=w、/pi;
magh=abs(Hz);
zerosIndx=find(magh==0);
magh(zerosIndx)=1;
magh=20*log10(magh);
magh(zerosIndx)=-inf;
angh=angle(Hz);
angh=unwrap(angh)*180/pi;
subplot(1,2,1)
plot(w,magh,colorn(n));
hold on
subplot(1,2,2)
plot(w,angh,colorn(n));
hold on
end
subplot(1,2,1)
hold off
xlabel(”特征角頻率(timespi rad/sample)“)
title('幅頻特性曲線 |H(w)|(dB)”);
subplot(1,2,2)
hold off
xlabel(’特征角頻率(timespi rad/sample)’)
title(“相頻特性曲線 theta(w)(degrees)’);
b)(1)% design1、m b=[1,0];
% 分子系數向量 a=[1,1];
% 分母系數向量 printsys(b,a,”s’)[Hz,w]=freqs(b,a);w=w、/pi;magh=abs(Hz);zerosIndx=find(magh==0); magh(zerosIndx)=1; magh=20*log10(magh);
% 以分貝 magh(zerosIndx)=-inf;angh=angle(Hz);angh=unwrap(angh)*180/pi;
% 角度換算 figure subplot(1,2,1)plot(w,magh);grid on xlabel(’特征角頻率(timespi rad/sample)')title(’幅頻特性曲線 |H(w)|(dB)’); subplot(1,2,2)plot(w,angh);grid on xlabel(’特征角頻率(times\pi rad/sample)’)title(’相頻特性曲線 \theta(w)
(degrees)’);
(2)
% design1、m b=[0,1,0];
% 分子系數向量 a=[1,3,2];
% 分母系數向量 printsys(b,a,’s’)[Hz,w]=freqs(b,a);w=w、/pi; magh=abs(Hz);zerosIndx=find(magh==0); magh(zerosIndx)=1; magh=20*log10(magh);
% 以分貝 magh(zerosIndx)=-inf; angh=angle(Hz);angh=unwrap(angh)*180/pi;
% 角度換算 figure subplot(1,2,1)plot(w,magh);grid on xlabel(“特征角頻率(\times\pi rad/sample)')
title(’幅頻特性曲線 |H(w)|(dB)’);subplot(1,2,2)plot(w,angh); grid on xlabel(”特征角頻率(\times\pi rad/sample)“)title(”相頻特性曲線 theta(w)(degrees)’);
(3)
% design1、m b=[1,-1];
% 分子系數向量 a=[1,1];
% 分母系數向量 printsys(b,a,“s”)[Hz,w]=freqs(b,a);w=w、/pi;magh=abs(Hz);zerosIndx=find(magh==0);magh(zerosIndx)=1;magh=20*log10(magh);
% 以分貝 magh(zerosIndx)=-inf;angh=angle(Hz);angh=unwrap(angh)*180/pi;
% 角度換算 figure subplot(1,2,1)
plot(w,magh); grid on xlabel(’特征角頻率(timespi rad/sample)“)
title(”幅頻特性曲線 |H(w)|(dB)’);subplot(1,2,2)plot(w,angh);grid on xlabel(’特征角頻率(times\pi rad/sample)')title(’相頻特性曲線 theta(w)
(degrees)“);
實驗心得: :雖然之前用公式轉換到頻域上分析,但就是有時會覺得挺抽象得,不太好理解。根據這些圖像結合起來更進一步對信號得了解。同時,這個在編程序時,雖然遇到一些問題,但就是總算解決了。
實驗六
離散時間系統得 Z 域分析 一、實驗目得 1.學習與掌握離散系統得頻率特性及其幅度特性、相位特性得物理意義。
2.深入理解離散系統頻率特性與對稱性與周期性。
3.認識離散系統頻率特性與系統參數之間得系統 4.通過閱讀、修改并調試本實驗所給源程序,加強計算機編程能力。
二、
實驗原理及方法 對于離散時間系統,系統單位沖激響應序列得 Fourier 變換完全反映了系統自身得頻率特性,稱為離散系統得頻率特性,可由系統函數求出,關系式如下:
(6 – 1)由于就是頻率得周期函數,所以系統得頻率特性也就是頻率得周期函數,且周期為,因此研究系統頻率特性只要在范圍內就可以了.? ? ???? ???? ???? ??? ? ?n n nj jn n h j n n h e n h e H)sin()()cos()()()(? ?? ?
(6 – 2)容易證明,其實部就是得偶函數,虛部就是得奇函數,其模得得偶函數,相位就是得奇函數。因此研究系統幅度特性、相位特性,只要在范圍內討論即可。
綜上所述,系統頻率特性具有周期性與對稱性,深入理解這一點就是十分重要得。
當離散系統得系統結構一定,它得頻率特性將隨參數選擇得不同而不同,這表明了系統結構、參數、特性三者之間得關系,即同一結構,參數不同其特性也不同。
例如,下圖所示離散系統,其數學模型由線性常系數差分方程描述:
系統函數: 系統函數頻率特性:
幅頻特性: 相頻特性:
容易分析出,當時系統呈低通特性,當時系統呈高通特性;當時系統呈全通特性.同時說明,在系統結構如圖所示一定時,其頻率特性隨參數 a 得變化而變化.三、實驗內容 a)。
b)c)a)% design1、m b=[1,0,-1];
% 分子系數向量 a=[1,0,—0、81];
% 分母系數向量 printsys(b,a,”z“)[Hz,w]=freqz(b,a);w=w、/pi;magh=abs(Hz);zerosIndx=find(magh==0);magh(zerosIndx)=1;magh=20*log10(magh);
% 以分貝 magh(zerosIndx)=-inf; angh=angle(Hz); angh=unwrap(angh)*180/pi;
% 角度換算 figure subplot(1,2,1)
plot(w,magh);grid on xlabel(’特征角頻率(timespi rad/sample)')title(’幅頻特性曲線 |H(w)|(dB)”);subplot(1,2,2)plot(w,angh);grid on xlabel(“特征角頻率(times\pi rad/sample)”)title('相頻特性曲線 theta(w)(degrees)“);
帶通
b)% design1、m b=[0、1,—0、3,0、3,-0、1];
% 分子系數向量 a=[1,0、6,0、4,0、1];
% 分母系數向量 printsys(b,a,’z”)[Hz,w]=freqz(b,a);w=w、/pi; magh=abs(Hz); zerosIndx=find(magh==0);magh(zerosIndx)=1;magh=20*log10(magh);
% 以分貝 magh(zerosIndx)=-inf;angh=angle(Hz);angh=unwrap(angh)*180/pi;
% 角度換算 figure subplot(1,2,1)plot(w,magh);grid on xlabel(’特征角頻率(timespi rad/sample)’)
title(“幅頻特性曲線 |H(w)|(dB)”);subplot(1,2,2)plot(w,angh);grid on
xlabel(“特征角頻率(\timespi rad/sample)’)title(”相頻特性曲線 theta(w)
(degrees)’);
高通
c)% design1、m b=[1,—1,0];
% 分子系數向量 a=[1,0,0、81];
% 分母系數向量 printsys(b,a,“z’)[Hz,w]=freqz(b,a);w=w、/pi; magh=abs(Hz); zerosIndx=find(magh==0);magh(zerosIndx)=1;magh=20*log10(magh);
% 以分貝 magh(zerosIndx)=—inf;angh=angle(Hz); angh=unwrap(angh)*180/pi;
% 角度換算 figure subplot(1,2,1)plot(w,magh);grid on xlabel(”特征角頻率(\times\pi rad/sample)')title(“幅頻特性曲線 |H(w)|(dB)”);subplot(1,2,2)
plot(w,angh);
grid on xlabel(’特征角頻率(\timespi rad/sample)")title(’相頻特性曲線 theta(w)
(degrees)’);
帶通
實驗心得: :本來理論知識不就是很強得,雖然已經編出程序得到相關圖形,但就是不會辨別相關通帶,這讓我深刻地反省。