第一篇:3課程設計—任務書—離散時間信號與系統的頻域分析及其編程實現
課程設計名稱:信號分析與處理課程設計
課程設計題目:離散時間信號與系統的頻域分析及其編程實現
初始條件:
1.Matlab6.5以上版本軟件;
2.課程設計輔導資料:“Matlab語言基礎及使用入門”、“信號與系統”、“數字信號處理原理與實現”、“Matlab及在電子信息課程中的應用”等;
3.先修課程:信號與系統、數字信號處理、Matlab應用實踐及信號處理類課程等。
要求完成的主要任務:(包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)
1.課程設計時間:1周;
2.課程設計內容:離散時間信號與系統的頻域分析及其編程實現,具體包括:離散時間信號的傅里葉
變換、離散傅里葉變換、系統的幅頻和相頻特性等;
3.本課程設計統一技術要求:研讀輔導資料對應章節,對選定的設計題目進行理論分析,針對具體設
計部分的原理分析、建模、必要的推導和可行性分析,畫出程序設計框圖,編寫程序代碼(含注釋),上機調試運行程序,記錄實驗結果(含計算結果和圖表),并對實驗結果進行分析和總結,按要求進行實驗演示和答辯等;
4.課程設計說明書按學校“課程設計工作規范”中的“統一書寫格式”撰寫,具體包括:
① 目錄;
② 與設計題目相關的理論分析、歸納和總結;
③ 與設計內容相關的原理分析、建模、推導、可行性分析;
④ 程序設計框圖、程序代碼(含注釋)、程序運行結果和圖表、實驗結果分析和總結;
⑤ 課程設計的心得體會(至少500字);
⑥ 參考文獻(不少于5篇);
⑦ 其它必要內容等。
時間安排: 1周(第18周)
附——具體設計內容:
1.已知序列xn=[1 1 1 1 ],試用MATLAB編寫程序,計算該序列的離散付里葉變換及逆離散付里葉變
換。
2.取一個周期的正弦信號,作8點采樣,求它的連續頻譜。然后對該信號進行N個周期延拓,再求
它的連續頻譜。把N無限增大,比較分析其結果。
3.一個三階濾波器由以下的差分方程描述:
y(n)= 0.0211x(n)+ 0.0443x(n-1)+ 0.044x(n-2)+0.0181x(n-3)
+1.76y(n-1)-1.272y(n-2)+ 0.3181y(n-3)
畫出此濾波器的副值和相位響應并說明它是一個什么樣的濾波器。
第二篇:實驗七離散時間信號和系統
實驗七 離散時間信號和系統
§7.1離散時間正弦信號
目的學習創建和分析離散時間正弦信號。
相關知識
離散時間正弦和余弦信號能夠用復指數信號表示,即
1j?n(e?e?j?n)21j?n?j?nsinn?()?(e?e)2jcosn?()?
基本題
1.考慮下面離散時間信號:xM[n]?sin??2?Mn??,假設?N?N=12。對于M=4,5,7
和10,在0?n?2N?1區間上畫出xM[n]。用stem創建這些圖,并在圖的各坐標軸上給出適當標注。每一個信號的基波周期是什么?由任意的整數M和N值,一般如何來確定信號的基波周期?務必考慮M?N的情況。
§7.2離散時間信號時間變量的變換
目的主要研究離散時間信號的延時與反褶運算。
基本題
1.定義一個MATLAB向量nx是在?3?n?7上的時間變量,而MATLAB向量x是信號x[n]在這些樣本上的值,x[n]給出如下:
?2,n?0?1,n?2??x[n]???1,n?
3?3,n?4???0,其余n
請正確定義x[n],用stem(nx,x)畫出該離散時間序列。
2.定義MATLAB向量y1~y4,來表示下列離散時間信號:
y1[n]?x[n?2]
y2[n]?x[n?1]
y3[n]?x[?n]
y4[n]?x[?n?1]
為此,應該定義y1~y4,關鍵是要正確定義標號向量ny1~ny4。首先應判斷當變換到yi[n]時,一個給定的x[n]樣本的變量時如何改變的。標號向量不必要跨于和nx相同的一組變量值,但至少都是11個樣本長,并包含了與有關信號全部非零樣本的變量值。
§7.3離散時間系統的性質
目的懂得如何來證明一個系統滿足或不滿足某一給定性質。
相關知識
本課程研究的離散時間系統通常是用幾個性質來表征的,如線性、時不變、穩定性、因果性及可逆性等。
基本題
1.系統y[n]?sin??2x[n]?不是線性的。利用信號x1[n]??[n]和x2[n]?2?[n]來證明該系統是如何違反線性性質的。
2.系統y[n]?x[n]?x[n?1]不是因果的。利用信號x[n]?u[n]證明它。定義MATLAB向量x和y分別代表?5?n?9上的輸入和?6?n?9上的輸出。
中等題
3.系統y[n]?log?x[n]?不是穩定的。
§7.4實現一階差分方程
目的學習求解自遞歸差分方程。
相關知識
離散時間系統往往用線性常系數差分方程來實現。兩種最簡單的差分方程是一階移動平均y[n]?x[n]?bx[n?1]和一階自遞歸y[n]?ay[n?1]?x[n],能用這些簡單系統對許多實際系統進行建模或近似。例如,一階自遞歸可以用于銀行帳戶建模,x[n]是第n次的存款或取款,這時y[n]就是第n次的結余,而a?1?r就是利率為r的復利。
深入題
1.寫出一個函數y=diffeqn(a,x,yn1),該函數計算y[n]?ay[n?1]?x[n]所描述的因果系統的輸出y[n]。輸入向量x包含0?n?N?1內的x[n],yn1提供y[-1]的值。輸出向量y包含0?n?N?1內的y[n]。M文件的第一行應該讀出function y=diffeqn(a,x,yn1)
提示:從y[-1]計算y[0]是自遞歸的第一步。在M文件中利用for循環從n?0開始依次計算到較大n值的y[n]。
2.假設a?1,y[?1]?0,而且僅關心0?n?30內的輸出。利用這個函數計算x1[n]??[n]和x2[n]?u[n]時的響應,用stem畫出每個響應。
第三篇:實驗二離散時間信號分析
實驗二離散時間信號分析
一、實驗目的1.掌握各種常用的序列,理解其數學表達式和波形表示。
2.掌握在計算機中生成及繪制數字信號波形的方法。
3.掌握序列的相加、相乘、移位、反褶等基本運算及計算機實現與作用。
4.掌握線性卷積軟件實現的方法。
5.掌握計算機的使用方法和常用系統軟件及應用軟件的使用。
6.通過編程,上機調試程序,進一步增強使用計算機解決問題的能力。
二、實驗原理
1.序列的基本概念
離散時間信號在數學上可用時間序列{x(n)}來表示,其中x(n)代表序列的第n個數字,n代表時間的序列,n的取值范圍為???n??的整數,n取其它值x(n)沒有意義。離散時間信號可以是由模擬信號通過采樣得到,例如對模擬信號xa(t)進行等間隔采樣,采樣間隔為T,得到{xa(nT)}一個有序的數字序列就是離散時間信號,簡稱序列。
2.常用序列
常用序列有:單位脈沖序列(單位抽樣)?(n)、單位階躍序列u(n)、矩形序列RN(n)、實指數序列、復指數序列、正弦型序列等。
3.序列的基本運算
序列的運算包括移位、反褶、和、積、標乘、累加、差分運算等。
4.序列的卷積運算
y(n)?
m????x(m)h(n?m)?x(n)?h(n)?
上式的運算關系稱為卷積運算,式中?代表兩個序列卷積運算。兩個序列的卷積是一個序列與另一個序列反褶后逐次移位乘積之和,故稱為離散卷積,也稱兩序列的線性卷積。其計算的過程包括以下4個步驟。
(1)反褶:先將x(n)和h(n)的變量n換成m,變成x(m)和h(m),再將h(m)以縱軸為對稱軸反褶成h(?m)。
(2)移位:將h(?m)移位n,得h(n?m)。當n為正數時,右移n位;當n為負數時,左移n位。
(3)相乘:將h(n?m)和x(m)的對應點值相乘。
(4)求和:將以上所有對應點的乘積累加起來,即得y(n)。
5.matlab命令
1、單位采樣序列:可用MATLAB中的zeros函數實現;
X=[1 zeros(1,n-1)]
2、單位階躍序列:這一序列可用MATLAB中的zeros函數實現;
X=ones(1,N)
3、實指數序列;
n=0:N-1;
x=a.^n;
4、正弦波:
t=0:0.01*pi:2*pi
x=sin(2*pi*t);
plot(t,x);
xlabel(‘時間t’);
ylabel(‘幅值y’);
5、移位
用MATLAB編寫一個移位函數sigshift()
function [y,m]=sigshift(x,n,k)
%implements y(m+k)=x(n)
m=n+k;
y=x;
把上面的矩形序列右移3位
n0=0;
n1=-10;
n2=10;
n=[n1:n2];
x=[(n-n0)>=0&(n-4)<=0];
k=3;
[y,n]=sigshift(x,n,k);
stem(n,y);
xlabel('n');ylabel('x(n)');
title('step sequence');
grid6、翻褶
用MATLAB編寫一個翻褶函數sigfold()
function [y,n]=sigfold(x,m,k)
y=fliplr(x);
n=-fliplr(n);
用MATLAB編寫一個程序把上面的矩形序列翻褶
三、主要實驗儀器及材料
微型計算機、Matlab6.5教學版、TC編程環境。
四、實驗內容
1.知識準備
認真復習以上基礎理論,理解本實驗所用到的實驗原理。
2.離散時間信號(序列)的產生。
利用MATLAB編程產生和繪制下列有限長序列:
(1)單位脈沖序列?(n)
(2)單位階躍序列u(n)
(3)矩形序列R8(n)
(4)正弦型序列x(n)?Asin((5)任意序列 ?5n??3)
x(n)??(n)?2?(n?1)?3?(n?2)?4?(n?3)?5?(n?4)
h(n)??(n)?2?(n?1)??(n?2)?2?(n?3)
3.序列的運算
利用MATLAB編程完成上述兩序列的移位、反褶等運算,并繪制運算后序列的波形。
4.卷積運算
利用MATLAB編制一個計算兩個序列線性卷積的通用程序,計算上述兩序列x(n)?h(n),并繪制卷積后序列的波形。
5.上機調試并打印或記錄實驗結果。
6.完成實驗報告。
五、實驗報告要求
1.簡述實驗原理及目的。
2.列出計算卷積的公式,畫出程序框圖,并列出實驗程序清單(可略)(包括必要的程序說明)。
3.記錄調試運行情況及所遇問題的解決方法。
4.給出實驗結果,并對結果作出分析。
第四篇:實驗二 離散時間信號與系統的Z變換分析
實驗二 離散時間信號與系統的Z變換分析
一、實驗目的
1、熟悉離散信號Z變換的原理及性質
2、熟悉常見信號的Z變換
3、了解正/反Z變換的MATLAB實現方法
4、了解離散信號的Z變換與其對應的理想抽樣信號的傅氏變換和拉氏變換之間的關系
5、了解利用MATLAB實現離散系統的頻率特性分析的方法
二、實驗原理
1、正/反Z變換
Z變換分析法是分析離散時間信號與系統的重要手段。如果以時間間隔Ts對連續時間信號f(t)進行理想抽樣,那么,所得的理想抽樣信號f?(t)為:
?f?(t)?f(t)*?Ts(t)?f(t)*??(t?kTs)
k???理想抽樣信號f?(t)的雙邊拉普拉斯變換F?(s)為:
?????stF?(s)???f(t)*??(t?kTs)?edt??f(kTs)e?ksTs
??k???k??????若令f(kTs)?f(k),z?esTs,那么f?(t)的雙邊拉普拉斯變換F?(s)為:
F?(s)?k??????f(k)z?k?F(z)z?esTs
則離散信號f(k)的Z變換定義為:
F(z)?k????f(k)z?k
從上面關于Z變換的推導過程中可知,離散信號f(k)的Z變換F(z)與其對應的理想抽樣信號f?(t)的拉氏變換F?(s)之間存在以下關系:
F?(s)?F(z)z?esTs
同理,可以推出離散信號f(k)的Z變換F(z)和它對應的理想抽樣信號f?(t)的傅里葉變換之間的關系為 F?(j?)?F(z)z?ej?Ts
如果已知信號的Z變換F(z),要求出所對應的原離散序列f(k),就需要進行反Z變換,反Z變換的定義為: f(k)??F(z)z2?j?1k?1dz 的所有極點的閉合積分路線。其中,C為包圍F(z)z如下:
k?1在MATLAB語言中有專門對信號進行正反Z變換的函數ztrans()和itrans()。其調用格式分別? F=ztrans(f)對f(n)進行Z變換,其結果為F(z)? F=ztrans(f,v)
對f(n)進行Z變換,其結果為F(v)? F=ztrans(f,u,v)對f(u)進行Z變換,其結果為F(v)? f=itrans(F)對F(z)進行Z反變換,其結果為f(n)? f=itrans(F,u)對F(z)進行Z反變換,其結果為f(u)? f=itrans(F,v,u)
對F(v)進行Z反變換,其結果為f(u)注意: 在調用函數ztran()及iztran()之前,要用syms命令對所有需要用到的變量(如t,u,v,w)等進行說明,即要將這些變量說明成符號變量。
例①.用MATLAB求出離散序列f(k)?(0.5)k?(k)的Z變換 MATLAB程序如下:
syms k z f=0.5^k;%定義離散信號
Fz=ztrans(f)%對離散信號進行Z變換 運行結果如下:
Fz = 2*z/(2*z-1)例②.已知一離散信號的Z變換式為F(z)?MATLAB程序如下:
syms k z Fz=2* z/(2*z-1);%定義Z變換表達式 fk=iztrans(Fz,k)%求反Z變換 運行結果如下:
fk =(1/2)^k
例③:求序列f(k)??(k?1)??(t?4)的Z變換.clc;clear all syms n
hn=sym('kroneckerDelta(n, 1)+ kroneckerDelta(n, 2)+ kroneckerDelta(n, 3)')Hz=ztrans(hn)Hz=simplify(Hz)
2z,求出它所對應的離散信號f(k)2z?
12、離散系統的頻率特性
同連續系統的系統函數H(s)類似,離散系統的系統函數H(z)也反映了系統本身固有的特性。對于離散系統來說,如果把其系統函數H(z)中的復變量z換成ej??ej?Ts(其中???Ts),那么所得的函數H(ej?)就是此離散系統的頻率響應特性,即離散時間系統的頻率響應為:
H(ej?)?H(ej?)?ej?(?)?H(z)z?ej? j?其中,H(e)稱為離散系統的幅頻特性,?(?)稱為系統的相頻特性。同連續系統一樣,離散時間系統的幅頻特性也是頻率的偶函數,相頻特性也是頻率的齊函數。
由于ej?是頻率?的周期函數,所以離散系統的頻率響應特性也是頻率?的周期函數,其周期為2?,或者角頻率周期為?T?2?。實際上,這就是抽樣系統的抽樣頻率,而其中的T則是系統的抽樣周期。Ts頻率響應呈現周期性是離散系統特性區別于連續系統特性的重要特點。因此,只要分析H(ej?)在??2?范圍內的情況,便可分析出系統的整個頻率特性。
H(ej?)函數來表示離散系統的頻率響應特性,H(ej?)表示幅頻特性,而相頻特性仍用?(?)來表示。應該特別注意的是,雖然這里的變量?仍然稱為頻率變量,但是它已經不是原來意義上的角頻率概念,而實際上是表示角度的概念。我們稱之為數字頻率。它與原來角頻率的關系為:???Ts。也就是說,根據離散系統的系統函數H(z),令其中的z?ej?,并且代入0~2?范圍內不同的頻率值(實際上是角度值),就可以逐個計算出不同頻率時的響應,求出離散系統的頻率響應特性。再利用離散系統頻率特性的周期性特點(周期為2?),求出系統的整個頻率特性。
離散系統的幅頻特性曲線和相頻特性曲線能夠直觀地反映出系統對不同頻率的輸入序列的處理情況。在函數H(ej?)隨?的變換關系中,在?=0附近,反映了系統對輸入信號低頻部分的處理情況,而在?=?附近,則反映了系統對輸入信號高頻部分的處理情況。
一般來說,分析離散系統頻率響應特性就要繪制頻率響應曲線,而這是相當麻煩的。雖然可以通過幾何矢量法來定性畫出頻率響應特性曲線,但一般來說這也是很麻煩的。值得慶幸的是,MATLAB為我們提供了專門用于求解離散系統頻率響應的函數freqz(),其調用格式如下:
? [H,w]=freqz(B,A,N)其中,B和A分別是表示待分析的離散系統的系統函數的分子,分母多項式的向量,N為正整數,返回向量H則包含了離散系統頻率響應函數H(e)在0~?范圍內的N個頻率等分點的值。向量?則包含0~?范圍內的N個頻率等分點。在默認情況下N=512。
? [H,w]=freqz(B,A,N,'whole')其中,B,A和N的意義同上,而返回向量H包含了頻率響j?應函數H(e)在0~2?范圍內N個頻率等分點的值。
j?由于調用freqz()函數只能求出離散系統頻率響應的數值,不能直接繪制曲線圖,因此,我們可以先用freqz()函數求出系統頻率響應的值,然后再利用MATLAB的abs()和angle()函數以及plot()命令,即可繪制出系統在0~?或0~2?范圍內的幅頻特性和相頻特性曲線。例①.若離散系統的系統函數為H(z)?率響應H(e)的樣值。
MATLAB程序如下:
A=[1 0];
%分母多項式系數向量 B=[1-0.5];
%分子多項式系數向量
[H,w]=freqz(B,A,10)%求出對應0~?范圍內10個頻率點的頻率響應樣值 運行結果如下: H = j?z?0.5,請用MATLAB計算0~?頻率范圍內10個等分點的頻z 0.5000
0.5245 + 0.1545i 0.5955 + 0.2939i 0.7061 + 0.4045i 0.8455 + 0.4755i 1.0000 + 0.5000i 1.1545 + 0.4755i 1.2939 + 0.4045i 1.4045 + 0.2939i 1.4755 + 0.1545i w = 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 例②.用MATLAB計算前面離散系統在0~2?頻率范圍內200個頻率等分點的頻率響應值,并繪出相應的幅頻特性和相頻特性曲線。MATLAB程序如下:
A=[1 0];B=[1-0.5];[H,w]=freqz(B,A,200);[H,w]=freqz(B,A,200,'whole');%求出對應0~2?范圍內200個頻率點的頻率響%應樣值 HF=abs(H);%求出幅頻特性值 HX=angle(H);%求出相頻特性值 subplot(2,1,1);plot(w,HF)%畫出幅頻特性曲線 subplot(2,1,2);plot(w,HX)%畫出相頻特性曲線
運行結果如下:
運行結果分析:從該系統的幅頻特性曲線可以看出,該系統呈高通特性,是一階高通濾波器。
三、實驗內容
1. 求出下列離散序列的Z變換
k?① f1(k)?(1)cos(k2)?(k)2k② f2(k)?k(k?1)(2 3)?(k)③ f3(k)??(k)??(k?5)
④ f4(k)?k(k?1)??(k)??(k?5)?
2. 已知下列單邊離散序列的z變換表達式,求其對應的原離散序列。
z2?z?1①F1(z)?
2z?z?2②F2(z)?1?1111?2?3?4 zzzz2(z2?3z?6)③F3(z)?
4zz(z2?z?1)④ F4(z)?
(z?1)(z?2)(z?3)3.已知離散系統的系統函數H(z)如下,請繪出系統的幅頻和相頻特性曲線,并說明系統的作用 ① H(z)?4z?4 12(z?2)(z?3)z2?1② H(z)?
2z?0.814.已知描述離散系統的差分方程為:
y(k)?1.2y(k?1)?0.35y(k?2)?e(k)?0.25e(k?1)
請繪出系統的幅頻和相頻特性曲線,并說明系統的作用。
四、預習要求
1、熟悉正反z變換的意義及用MATLAB軟件實現的方法
2、熟悉離散系統的頻率響應特性及用MATLAB軟件實現的方法
3、編寫MATLAB程序
五、實驗報告要求
1、簡述實驗目的及實驗原理
2、計算相應z變換或反z變換的理論值,并與實驗結果進行比較
3、記錄離散系統的頻率響應特性曲線,分析系統作用
4、寫出程序清單
5、收獲與建議
%參考程序 %三 1.① clc;clear all syms k z f1=0.5^k*cos(k*pi/2);%定義離散信號 Fz1=ztrans(f1)%對離散信號進行Z變換 % 實驗二 1.②
f2=k*(k-1)*(2/3)^k;%定義離散信號 Fz2=ztrans(f2)%對離散信號進行Z變換 % 實驗二 1.③
f3=sym('kroneckerDelta(n, 1)+ kroneckerDelta(n, 2)+ kroneckerDelta(n, 3)')Fz3=ztrans(f3)Fz3=simplify(Fz3)% 實驗二 1.④
f4=k*(k-1)*sym('kroneckerDelta(k, 1)+ kroneckerDelta(k, 2)+ kroneckerDelta(k, 3)');%定義離散信號 Fz4=ztrans(f4)Fz4=simplify(Fz4)
第五篇:信號與系統課程設計教案
信號與系統課程設計教案
一、matlab工作空間介紹。
二、信號處理部分:
1)信號的產生,matlab工具箱,自己編程函數仿真,導入實際數據。2)信號的卷積,奇偶分解,各種性質的驗證。3)信號分解的基本原理。
4)信號分解的算法實現,自己編程驗證。5)結合實驗給出實驗分析和結論。
三、離散信號處理部分:
1)信號分解算法的離散化。2)信號分解的基本原理。
3)信號分解的算法實現,自己編程驗證。4)結合實驗給出實驗分析和結論。
四、信號濾波處理部分:
1)將信號進行傅里葉分解。2)在頻率域進行理想濾波。3)將信號變換到時間域。
4)結合實驗結果給出實驗分析和結論。
五、連續系統分析部分:
1)電路系統建?;蛘咭延形⒎窒到y方程。2)根據輸入求解系統的響應。3)求解系統的單位沖激響應。
4)編程實現,驗證系統的因果性,穩定性。
六、離散系統分析部分:
1)電路系統建?;蛘咭延胁罘窒到y方程。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、實驗分析