用matlab對訊號進行傅利葉變換

2021-08-10 10:56:03 字數 2317 閱讀 9302

傅氏變換分析是訊號分析中很重要的方法,借助matlab可以很方便的對各類訊號進行傅氏頻域分析。本文介紹了集中離散的傅氏變換以及matlab實現方法。

1.離散序列的傅利葉變換dtft(discrete time fourier transform)

**:

1 n=8;                         %原離散訊號有8點

2 n=[0:1:n-1] %原訊號是1行8列的矩陣

3 xn=0.5.^n; %構建原始訊號,為指數訊號

45 w=[-800:1:800]*4*pi/800; %頻域共-800----+800

的長度(本應是無窮,高頻分量很少,故省去)

6 x=xn*exp(-j*(n'

*w)); %求dtft變換,採用原始定義的方法,對復指數分量求和而得

7 subplot(311)8

stem(n,xn);

9 title('

原始訊號(指數訊號)');

10 subplot(312

);11 plot(w/pi,abs(x));

12 title('

dtft變換

')

結果:

分析:可見,離散序列的dtft變換是週期的,這也符合nyquist取樣定理的描述,連續時間訊號經週期取樣之後,所得的離散訊號的頻譜是原連續訊號頻譜的週期延拓。

2.離散傅利葉變換dft(discrete fourier transform)

與1中dtft不一樣的是,dtft的求和區間是整個頻域,這對計算機的計算來說是不可以實現的,dft就是序列的有限傅利葉變換。實際上,1中我給的**也只是對頻域的-800----+800中間的1601點求了和,也不是無數次求和。

實現**:

n=8;                         %原離散訊號有8點

n=[0:1:n-1] %原訊號是1行8列的矩陣

xn=0.5.^n; %構建原始訊號,為指數訊號

w=[-8:1:8]*4*pi/8; %頻域共-800----+800 的長度(本應是無窮,高頻分量很少,故省去)

x=xn*exp(-j*(n'*w)); %求dtft變換,採用原始定義的方法,對復指數分量求和而得

subplot(311)

stem(n,xn);

w1=[-4:1:4]*4*pi/4;

x1=xn*exp(-j*(n'*w1));

title('原始訊號(指數訊號)');

subplot(312);

stem(w/pi,abs(x));

title('原訊號的16點dft變換')

subplot(313)

stem(w1/pi,abs(x1));

title('原訊號的8點dft變換')

結果圖:

分析:dft只是dtft的現實版本,因為dtft要求求和區間無窮,而dft只在有限點內求和。

3.快速傅利葉變換fft(fast fourier transform)

雖然dft相比dtft縮減了很大的複雜度,但是任然有相當大的計算量,不利於資訊的實時有效處理,2023年發現的dft解決了這一問題。

實現**:

1 n=64;                         %原離散訊號有8點

2 n=[0:1:n-1] %原訊號是1行8列的矩陣

3 xn=0.5.^n; %構建原始訊號,為指數訊號

4 xk=fft(xn,n);

5 subplot(221);6

stem(n,xn);

7 title('

原訊號'

);8 subplot(212);9

stem(n,abs(xk));

10 title('

fft變換

')

效果圖:

分析:由圖可見,fft變換的頻率中心不在0點,這是fft演算法造成的,把fft改為fftshift可以將頻率中心移到0點。

用matlab對訊號進行傅利葉變換

傅氏變換分析是訊號分析中很重要的方法,借助matlab可以很方便的對各類訊號進行傅氏頻域分析。本文介紹了集中離散的傅氏變換以及matlab實現方法。1.離散序列的傅利葉變換dtft discrete time fourier transform 1 n 8 原離散訊號有8點 2 n 0 1 n 1 ...

離散週期訊號的傅利葉級數 DFS

目錄序言 引入離散週期訊號的傅利葉級數 成諧波關係的離散週期復指數序列 週期訊號的傅利葉級數表示 離散週期訊號的傅利葉級數係數及其確定過程 這篇文章的思路是按照與連續時間週期訊號的傅利葉級數一致的,看完這篇博文的基礎上,再看離散時間復指數序列的週期性質,了解了離散時間復指數序列的週期性後,就可以很簡...

matlab 快速傅利葉反變換函式(ifft)編寫

歡迎指正 matlab 編寫快速傅利葉反變換函式 ifft 橫向讀取資料進行變換 matlab 快速傅利葉逆變換,不夠2的整數冪的個數,末尾自動補齊0 function ret val myifft vector 因為輸入的資料可能不是2的整數次冪,補零使得計算更加方便 m,n size vecto...