數字訊號處理實驗

2023-01-04 08:54:05 字數 1511 閱讀 8191

——利用fft實現快速卷積

姓名:田昕煜

學號:13081405

班級:通訊四班

指導教師:周爭

一. 實驗原理

應用fft實現數字濾波器實際上就是用fft來快速計算有限長度序列的線性卷積。這種方法就是先將輸入訊號x(n)通過fft變換為它的頻譜取樣值x(k),然後再和fir的頻響取樣值h(k)相乘,h(k)可以事先存放在儲存器中,最後再將乘積h(k)和x(k)通過快速傅利葉變換還原為時域序列y(n)。

二.實驗內容

三.程式與執行結果

(1)clear;

x=[2 1 1 2];

h=[1 -1 -1 1];

n1=4;

n2=4;

n=n1+n2-1;

y=conv(x,h);

n=0:length(y)-1;

subplot(2,1,1);

stem(n,y);

xlabel('n');

ylabel('輸出值');

title('線性卷積y');

xk=fft(x,n);

hk=fft(h,n);

yk=xk.*hk;

y=ifft(yk,n);

if all(imag(x)==0)&(all(imag(h)==0))

y=real(y);

endk=0:n-1;

subplot(2,1,2);

stem(k,y);

xlabel('n');

ylabel('輸出值');

title('fft計算的線性卷積y');

執行結果:

。 (2)

函式:lineconv

function y=lineconv(x,h,n)xk=fft(x,n);

hk=fft(h,n);

yk=xk.*hk;

y=ifft(yk,n);

endm檔案:

clear;

n1=16;

n2=17;

n=n1+n2-1;

n=0:15;

m=0:16;

k=0:n-1;

x1=ones(1,n1);

x2=cos((2.*pi.*n)./n1);

x3=(1/3).^n;

h=(-1/2).^m;

subplot(3,1,1);

stem(k,lineconv(x1,h,n));

subplot(3,1,2);

stem(k,lineconv(x2,h,n));

subplot(3,1,3);

stem(k,lineconv(x3,h,n));

執行結果:

結論:線性卷積長度=x(n)長度+ h(n)長度。

fft是將x(n)變換為它的dft——x(k),h(k)和x(k)相乘再通過ifft還原為時域序列y(n)。

四.實驗總結:

本次實驗相對較易,主要進行驗證實驗,完成較快。

注意長度值的選取。

數字訊號處理實驗

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

數字訊號處理實驗

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

數字訊號處理實驗一

實驗一卷積與傅利葉變換 一 實驗目的 1 了解線性卷積與圓周卷積 2 學會運用matlab求解離散時間系統的卷積和 3 學會通過求解離散時間訊號的卷積和運算得到系統的零狀態響應 4 掌握通過傅利葉變換和反變換求取圓周卷積。二 實驗內容 1.試用matlab命令求解一下離散時間系統的單位取樣響應。1 ...