數碼訊號實驗

2022-11-29 04:18:05 字數 4862 閱讀 3474

實驗二快速fourier變換(fft)及其應用

一、實驗目的

1.在理論學習的基礎上,通過本實驗,加深對fft的理解,熟悉fft子程式。

2.熟悉應用fft對典型訊號進行頻譜分析的方法。

3.了解應用fft進行訊號頻譜分析過程中可能出現的問題以便在實際中正確應用fft。

4.熟悉應用fft實現兩個序列的線性卷積的方法。

5.初步了解用週期圖法作隨機訊號譜分析的方法。

二、實驗原理與方法

在各種訊號序列中,有限長序列訊號處理占有很重要地位,對有限長序列,我們可以使

用離散fouier變換(dft)。這一變換不但可以很好的反映序列的頻譜特性,而且易於用快速演算法在計算機上實現,當序列x(n)的長度為n時,它的dft定義為:

反變換為:

有限長序列的dft是其z變換在單位圓上的等距取樣,或者說是序列fourier變換的等距取樣,因此可以用於序列的譜分析。

fft並不是與dft不同的另一種變換,而是為了減少dft運算次數的一種快速演算法。

它是對變換式進行一次次分解,使其成為若干小點數的組合,從而減少運算量。常用的fft是以2為基數的,其長度。它的效率高,程式簡單,使用非常方便,當要變換的序列長度不等於2的整數次方時,為了使用以2為基數的fft,可以用末位補零的方法,使其長度延長至2的整數次方。

三、實驗內容及步驟

實驗中用到的訊號序列:

a)gaussian序列

b)衰減正弦序列

c) 三角波序列

d)反三角波序列

上機實驗內容:

(1)、觀察高斯序列的時域和幅頻特性,固定訊號xa(n)中引數p=8,改變q的值,使q分別等於2,4,8,觀察它們的時域和幅頻特性,了解當q取不同值時,對訊號序列的時域幅頻特性的影響;固定q=8,改變p,使p分別等於8,13,14,觀察引數p變化對訊號序列的時域及幅頻特性的影響,觀察p等於多少時,會發生明顯的洩漏現象,混疊是否也隨之出現?記錄實驗中觀察到的現象,繪出相應的時域序列和幅頻特性曲線。

% %定義高斯序列

% function [xa,fa] =gauss(p,q)

% n=[0:15];

% xa(n+1)=exp(-(n+1-p).^2./q);

% f=fft(xa);

% fa=abs(f);

clear all;

%%%%%%% p=8,q=2

[xa1,fa1]= gauss(8,2);

k=0:15;

subplot(5,2,1);plot(k,xa1);

xlabel('n');ylabel('時域特性');text(10,0.5,'p=8,q=2');

subplot(5,2,2);plot(k,fa1);

xlabel('n');ylabel('幅頻特性');text(8,3,'p=8,q=2');

%%%%%%% p=8,q=4

[xa2,fa2]= gauss(8,4);

subplot(5,2,3);plot(k,xa2);

xlabel('n');ylabel('時域特性');text(10,0.5,'p=8,q=4');

subplot(5,2,4);plot(k,fa2);

xlabel('n');ylabel('幅頻特性');text(8,3,'p=8,q=4');

%%%%%%% p=8,q=8

[xa3,fa3]= gauss(8,8);

subplot(5,2,5);plot(k,xa3);

xlabel('n');ylabel('時域特性');text(10,0.5,'p=8,q=8');

subplot(5,2,6);plot(k,fa3);

xlabel('n');ylabel('幅頻特性');text(8,3,'p=8,q=8');

%%%%%%% p=13,q=8

[xa4,fa4]= gauss(13,8);

subplot(5,2,7);plot(k,xa4);

xlabel('n');ylabel('時域特性');text(10,0.5,'p=13,q=8');

subplot(5,2,8);plot(k,fa4);

xlabel('n');ylabel('幅頻特性');text(8,3,'p=13,q=8');

%%%%%%% p=14,q=8

[xa5,fa5]= gauss(14,8);

subplot(5,2,9);plot(k,xa5);

xlabel('n');ylabel('時域特性');text(10,0.5,'p=14,q=8');

subplot(5,2,10);plot(k,fa5);

xlabel('n');ylabel('幅頻特性');text(8,3,'p=14,q=8');

(2)、觀察衰減正弦序列xb(n)的時域和幅頻特性,a=0.1,f=0.0625,檢查譜峰出現位置是否正確,注意頻譜的形狀,繪出幅頻特性曲線,改變f,使f分別等於0.

4375和0.5625,觀察這兩種情況下,頻譜的形狀和譜峰出現位置,有無混疊和洩漏現象?說明產生現象的原因。

% 定義衰減正弦序列

% function [xb,fb] = downsin(a,f)

% n=[0:15];

% xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n); %自然對數的底:e=:2.71828 18284 59045 23536

% f = fft(xb);

% fb=abs(f);

clear all;

k=0:15;

a=0.1,f=0.0.0625

[xb,fb]=downsin(0.1,0.0625);

subplot(3,2,1); plot(k,xb);

xlabel('n');ylabel('時域特性');text(8,0.5,'a=0.1,f=0.0625');

subplot(3,2,2); plot(k,fb);

xlabel('n');ylabel('幅值特性');text(10,3,'a=0.1,f=0.0625');

a=0.1,f=0.4375

[xb1,fb1]=downsin(0.1,0.4375);

subplot(3,2,3); plot(k,xb1);

xlabel('n');ylabel('時域特性');text(8,0.5,'a=0.1,f=0.4375');

subplot(3,2,4); plot(k,fb1);

xlabel('n');ylabel('幅值特性');text(10,3,'a=0.1,f=0.4375');

a=0.1,f= 0.5625

[xb2,fb2]=downsin(0.1,0.5625);

subplot(3,2,5); plot(k,xb2);

xlabel('n');ylabel('時域特性');text(8,0.5,'a=0.1,f=0.5625');

subplot(3,2,6); plot(k,fb2);

xlabel('n');ylabel('幅值特性');text(10,3,'a=0.1,f=0.5625');

(3)、觀察三角波和反三角波序列的時域和幅頻特性,用n=8點fft分析訊號序列xc(n)和xd(n)的幅頻特性,觀察兩者的序列形狀和頻譜曲線有什麼異同?繪出兩序列及其幅頻特性曲線。在xc(n)和xd(n)末尾補零,用n=16點fft分析這兩個訊號的幅頻特性,觀察幅頻特性發生了什麼變化?

兩情況的fft頻譜還有相同之處嗎?這些變化說明了什麼?

clear all;

n=[0:3];k=[1:8];

%定義三角波序列

xc(n+1) = n;xc(n+5) =4-n;

% 三角波特性

subplot(2,1,1);plot(k-1,xc);

xlabel('n');ylabel('時域特性');text(1,3,'三角波');

subplot(2,1,2);plot(k-1,abs(fft(xc)));

xlabel('k');ylabel('幅頻特性');text(4,10,'三角波');

%末尾補0,計算32點fft

xc(9:32)=0;xd(9:32)=0;k=1:32;figure;

% 三角波特性

subplot(2,1,1);plot(k-1,xc);

xlabel('n');ylabel('時域特性');text(1,3,'三角波');

subplot(2,1,2);plot(k-1,abs(fft(xc)));

xlabel('k');ylabel('幅頻特性');text(4,10,'三角波');

(4)、乙個連續訊號含兩個頻率分量,經取樣得

x(n)=sin2π*0.125n+cos2π*(0.125+δf)n n=0,1……,n-1

已知n=16,δf分別為1/16和1/64,觀察其頻譜;當n=128時,δf不變,其結果有何不同,為什麼?

clear all;

%%%%%%% n = 16

n=16;detf=1/16;n=[0:n-1];

x1(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n);

detf = 1/64;x2(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n);

%%%%%%% n = 16,detf = 1/16

subplot(2,2,1);stem(n,x1);hold;plot(n,x1);

xlabel('n');ylabel('時域特性');text(6,1,'n=16,detf=1/16');

subplot(2,2,2);stem(n,abs(fft(x1)));

xlabel('n');ylabel('幅值特性');text(6,4,'n=16,detf=1/16');

數字訊號處理實驗

一 實驗目的 研究不同型別的窗函式,研究一些不同的方法來測試窗函式的效能 專注於有關窄帶訊號的幾個不同的情形。二 實驗原理 訊號是無限長的,而在進行訊號處理時只能採用有限長訊號,所以需要將訊號 截斷 在訊號處理中,截斷 被看成是用乙個有限長的 視窗 看無限長的訊號,或者從分析的角度是無限長的訊號x ...

數字訊號處理實驗

班級 08050742 姓名 劉曉華 學號 41 實驗一頻譜分析與取樣定理 一 實驗目的 1 觀察模擬訊號經理想取樣後的頻譜變化關係。2 驗證取樣定理,觀察欠取樣時產生的頻譜混疊現象 3 加深對dft演算法原理和基本性質的理解 4 熟悉fft演算法原理和fft的應用 二 實驗原理 根據取樣定理,對給...

數字訊號處理實驗

利用fft實現快速卷積 姓名 田昕煜 學號 13081405 班級 通訊四班 指導教師 周爭 一 實驗原理 應用fft實現數字濾波器實際上就是用fft來快速計算有限長度序列的線性卷積。這種方法就是先將輸入訊號x n 通過fft變換為它的頻譜取樣值x k 然後再和fir的頻響取樣值h k 相乘,h k...