北京工業(yè)大學(xué)信號(hào)處理工程應(yīng)用訓(xùn)練_第1頁(yè)
北京工業(yè)大學(xué)信號(hào)處理工程應(yīng)用訓(xùn)練_第2頁(yè)
北京工業(yè)大學(xué)信號(hào)處理工程應(yīng)用訓(xùn)練_第3頁(yè)
北京工業(yè)大學(xué)信號(hào)處理工程應(yīng)用訓(xùn)練_第4頁(yè)
北京工業(yè)大學(xué)信號(hào)處理工程應(yīng)用訓(xùn)練_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、北京工業(yè)大學(xué)通信系統(tǒng)工程應(yīng)用訓(xùn)練報(bào)告專 業(yè):通信工程學(xué)生姓名:劉瑩瑩指導(dǎo)教師:席大林完成時(shí)間:2020年7月4日目錄訓(xùn)練十一DFT性質(zhì)研究 0.訓(xùn)練十二DFT及抽樣定理研究 1.2訓(xùn)練十三數(shù)字濾波器制作1.9訓(xùn)練十四IIR 數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)2. 4訓(xùn)練十五線性卷積計(jì)算4.5訓(xùn)練十六FIR 數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn) 5.4訓(xùn)練HDFT性質(zhì)研究驗(yàn)證dft函數(shù)正確性,將輸入信號(hào)設(shè)置原始輸入信號(hào)為 x8=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0x8進(jìn)彳亍DFT正變換,dft(X,x,8,1),輸出保存在 X8,如下:|-20r2Dtl.52091可以看到,輸入信號(hào) x(n)已經(jīng)變

2、換到頻域 X(k),且仍為8位。再對(duì)X8進(jìn)彳t DFT反變換,dft(x,X,8,-1),重新得到x8,觀察得到的輸出與原始輸入數(shù)據(jù)是否相同。結(jié)果如下:喇3。何即格I F E q I I IT:1 萬(wàn) 2091 隔可以看到,輸出的x8取值仍為 x8=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0證明經(jīng)過(guò)DFT正反變換后,信號(hào)能夠恢復(fù)原始信號(hào)。N-li N-)工1(口)=石根據(jù)帕塞瓦爾定理,應(yīng)有時(shí)域、頻域總能量相等:k-c。經(jīng)過(guò)計(jì)算,時(shí)域、頻域能量和分別為|時(shí)域能量和=2明-®曬風(fēng)頻域能量和。酗曬, 證明時(shí)域、頻域能量和相同,符合帕塞瓦爾定理。綜上,證明 DFT變換正確

3、。A、補(bǔ)0效應(yīng)研究原數(shù)組:x8=1,0,2,0,3,0,4,0,5,0,6,0,7,8,0示例程序中補(bǔ)0后數(shù)組為:x216=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0補(bǔ)0方式我使用的補(bǔ)0方式為:for(i=8;i<13;i+)x2i=COMPLEX(0,0);補(bǔ)0后數(shù)組為:x213=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,0,0,0,0,0,0,0,0,0,0 結(jié)果分析與圖在時(shí)域中,信號(hào)長(zhǎng)度增加,由于所增加的項(xiàng)均為零,波形仍與未補(bǔ) 0時(shí)相同未補(bǔ)零時(shí)的信號(hào)時(shí)域圖服FlH收匕刈的經(jīng)過(guò)D

4、FT變換后,X(k)長(zhǎng)度也會(huì)隨著x(n)長(zhǎng)度的增加而增加,且增加的值非零補(bǔ)5個(gè)零后的信號(hào)時(shí)域圖補(bǔ)8個(gè)零后的信號(hào)時(shí)域圖未在末端補(bǔ)零時(shí),信號(hào)頻譜圖在末端補(bǔ)5個(gè)零時(shí),信號(hào)頻譜圖在末端補(bǔ)8個(gè)零時(shí),信號(hào)頻譜圖it.rif 2goi20 JO)則NP13.蛔HW可以看到,經(jīng)過(guò)補(bǔ) 0,經(jīng)過(guò)DFT變換的頻譜與未補(bǔ)零時(shí)形狀基本相同,只是在長(zhǎng)度上進(jìn)行擴(kuò)展,且補(bǔ)零數(shù)量越多,擴(kuò)展越長(zhǎng)??梢岳斫鉃榻?jīng)過(guò)補(bǔ)0效應(yīng),增加了頻域采樣頻率,但是由于信號(hào)未增加新的信息,因此不能提高物理分辨率。在能量上,補(bǔ)5/8個(gè)零時(shí),信號(hào)能量時(shí)域、頻域能量和如下:時(shí)域能量和=204. 000000,頡域能量和=204. OOOOUO-時(shí)域能量加=

5、20泣000000,一域能量和=204 000000時(shí)域能量和、頻域能量和始終相等,符合帕塞瓦爾定理,且能量與未插值時(shí)的相同。B、插值效應(yīng)研究原數(shù)組:x8=1,0,2,0,3,0,4,0,5,0,6,0,7,8,0示例程序中插值后數(shù)組為:x316=1,0,8,0,2,0,7,0,3,0,6,0,4,0,5,0,5,0,4,0,6,0,3,0,7,0,2,0,8,0,1,0插值方式我使用的插值方式為:for(i=0;i<16;i=i+2)x3i=COMPLEX(1+i/2,0);x3i+1=COMPLEX(i*0.5+2.5,0);插值后數(shù)組為:x16=1,0,3,0,2,0,4,0,3,

6、0,5,0,4,0,6,0,5,0,7,0,6,0,8,0,7,0,9,0,8,0,10,0結(jié)果分析與圖(1)在示例程序中,在 x8=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0 中反向插入原序列,使原序列變?yōu)閤316=1,0,8,0,2,0,7,0,3,0,6,0,4,0,5,0,5,0,4,0,6,0,3,0,7,0,2,0,8,0,1,0,再進(jìn)行DFT變換,觀察頻譜,對(duì)比時(shí)域、頻域能量和。反向插值后,時(shí)域、頻域圖可以看到,反向插值后,信號(hào)頻譜有了很大的直流分量,且近乎左右對(duì)稱。從三維頻譜圖上可以看出,高頻、低頻部分實(shí)際上是共軻反對(duì)稱:G周期后目裝造團(tuán)時(shí)屋聿量 和Tg4.

7、自88日96.領(lǐng)域解量趕-2 34 .的30B白X3 iai=72. mnaflfl4o. HnnanXW13=-4.3S6B0Q*-0.79E649K32 3=-1.306B0B*-1.656854 灼 t3=-4LlMUUUH4-2K343-4.306080* 4.3eeO93<35=-4.300OB8+-5,986423 /LbJ=4.kftMUU-y . E»£>t8>>4,1 , K3I71- 4.30電迪乎 20.1056 * I* H厘網(wǎng)I1HW J1H出向一".-H3I?- 4.9060001 塢IR1-%胸間1即 OI11

8、14.WUU4U atisi- 40的函 K3 F l 31=-4.fKSnfl?W K?llJ-4.060030 K3I15 J=-4.066000 的 LtJ=l . BE!W«lia+-ii-fi.e3SSB0*-ka 值N 1=2 .新IR剛WI *由k331=7 .舊心IWi J: UIk3 <-3 .63B660 »-i 必 91 *3 isfk3(-4.83O6G0« D.pfiqBL x3 71-5 .日的e的翅坤E吸Q mJ LIW .幽口醐+-4.封1 啟【打-4.8300陋,ka<金期成一X3 1101=6. PMWAnftA.內(nèi)

9、 IVg A%k3 iu=3. aesooa.。的的 bx3 IL2=7.90目皿的g.090Q00ttMl A )-2 L«WUHil4 M WMlhlLt xJIlll-e .9SQQ8d>0.090SOa t(3risi-i.wiARnn.nnpipnria - F'擊:!: f :-4HM.M HHHWrfil:照上量彳:-1MN. HMLW1MI1反向插值后,三維頻域圖I時(shí)域能量和二40以 000000顏域能量樵401 000000 。符合帕塞瓦爾定理,且能量是未插值時(shí)的2倍。(2)在 x8=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0中插入

10、序列,使原序列變?yōu)閤316=3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0 1,0,3,0,2,0,4,0,3,0,5,0,4,0,6,0,5,0,7,0,6,0,8,0,7,0,9,0,8,0,10, 0,再進(jìn)行DFT變換,觀察頻譜,對(duì)比時(shí)域、頻域能量和。插值后,時(shí)域、頻域圖可以看到,插值后,信號(hào)頻譜有了很大的直流分量,且近乎左右對(duì)稱。|時(shí)域能量和峙34瑚皿眄頻域能量和靖曬的,符合帕塞瓦爾定理。中正向插入原序列,使原序在 x8=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0列分別變?yōu)閤216=1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,5

11、,0,5,0,6,0,6,0,7,0,7,0,8,0,8,0,再進(jìn)行DFT變換,觀察頻譜,對(duì)比時(shí)域、頻域能量和。正向插值后,時(shí)域、頻域圖可以看到,正向插值后,信號(hào)頻譜有了很大的直流分量,且近乎左右對(duì)稱。時(shí)域能量利M08 .曬曬l股能量和期四0。符合帕塞瓦爾定理,且能量是未插值時(shí)的2倍。C、插0效應(yīng)研究原數(shù)組:x8=1,0,2,0,3,0,4,0,5,0,6,0,7,8,0示例程序中插0后數(shù)組為:x416=1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0插0方式我使用的插0方式為:for(i=0;i<16;i=i

12、+3)x4i=COMPLEX(1+i/2,0);x4i+1=COMPLEX(2+i/2,0);x4i+2=COMPLEX(0,0);插0后數(shù)組為:x412=1,0,2,0,0,0,3,0,4,0,0,0,5,0,6,0,0,0,7,0,8,0,0,0結(jié)果分析與圖在示例程序中,在 x8=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0 中,每隔點(diǎn),插入1個(gè)0值,使原序列分別變?yōu)閤116= 1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,再進(jìn)行DFT變換,觀察頻譜,對(duì)比時(shí)域、頻域能量和。11-niLJU1

13、!W<-I純川« *HHlaJCtl插。前,時(shí)域、頻域圖插。后,時(shí)域、頻域圖可以看到,插0后的頻譜是對(duì)原始信號(hào)頻譜的周期延拓。畫(huà)出三維圖像,可以更直觀地看出周期延拓關(guān)系:未插入零/插入一個(gè)零后的三維頻譜圖通過(guò)對(duì)插零后圖像進(jìn)行 DFT運(yùn)算,可以證明插零后的 DFT是原信號(hào)DFT的周期延拓。忖域總和-2日4.韻加梅領(lǐng)城總和皿時(shí)朝。符合帕塞瓦爾定理,且能量與未插值時(shí)的相同。(2)在 x8=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0中,每隔兩點(diǎn),插入 1個(gè) 0 值,使原序列變?yōu)閤416= 1,0,2,0,0,0,3,0,4,0,0,0,5,0,6,0,0,0,7,0

14、,8,0,0,0,再進(jìn)行 DFT變換,觀察頻譜,對(duì)比時(shí)域、頻域能量和。插。后,時(shí)域、頻域圖|時(shí)域總和T20曲的孫領(lǐng)域總和n2小則附符合帕塞瓦爾定理源程序:/ llyy.cpp : Defines the entry point for the console application./#include "stdafx.h"#include"D:xhclgcyyx_math.cpp"#include"D:xhclgcyyx_graph.cpp"void plotgri2(COLORREF gridcolor,COLORREF linec

15、olor,COMPLEX p,int N)int i;HPEN pen1=CreatePen(PS_SOLID,1,gridcolor),oldpen=(HPEN)SelectObject(win3.hdc,pen1);HPEN pen2=CreatePen(PS_SOLID,1,linecolor);for(i=0;i<N;i+)line2(i,0,i,abs(pi);SelectObject(win3.hdc,pen2);moveto2(0,p0.r);for(i=0;i<N;i+)lineto2(i,abs(pi);SelectObject(win2.hdc,oldpen);

16、DeleteObject(pen1);DeleteObject(pen2);void plotgri3(COLORREF gridcolor,COLORREF linecolor,COMPLEX p,int N)int i;HPEN pen1=CreatePen(PS_SOLID,1,gridcolor),oldpen=(HPEN)SelectObject(win3.hdc,pen1);HPEN pen2=CreatePen(PS_SOLID,1,linecolor);for(i=0;i<N;i+)line3(i,0,0,i,pi.r,pi.i);SelectObject(win3.hd

17、c,pen2);moveto3(0,p0.r,p0.i);for(i=0;i<N;i+)lineto3(i,pi.r,pi.i);SelectObject(win2.hdc,oldpen);DeleteObject(pen1);DeleteObject(pen2);void main()int i;double sumT,sumF;COMPLEX x8,/1,0,2,0,3,0,4,0,5,0,6,0,7,8,0X8,x213,/=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,0,0,0,0,0,0,0,0,0,0X216,x316,/=1,0,1,0,2,0,2,0,

18、3,0,3,0,4,0,4,0,5,0,5,0,6,0,6,0,7,0,7,0,8,0,8,0X316,x412,/=1,0,2,0,0,0,3,0,4,0,0,0,5,0,6,0,0,0,7,0,8,0,0,0 X416;/給待變換的復(fù)數(shù)數(shù)組賦值:for(i=0;i<8;i+)xi=COMPLEX(i+1,0);Xi=COMPLEX(0,0);for(i=0;i<8;i+)x2i=COMPLEX(i+1,0);for(i=8;i<13;i+)x2i=COMPLEX(0,0);for(i=0;i<16;i=i+2)x3i=COMPLEX(1+i/2,0);x3i+1=C

19、OMPLEX(1+i/2,0);for(i=0;i<16;i=i+3)x4i=COMPLEX(1+i/2,0);x4i+1=COMPLEX(2+i/2,0);x4i+2=COMPLEX(0,0);/第 1 步:驗(yàn)證dft 函數(shù)正確性dft(X,x,8,1);for(i=0;i<8;i+)printf("X%d=%f+%fn",i,Xi.r,Xi.i);getch();dft(x,X,8,-1);for(i=0;i<8;i+)printf("x%d=%f+%fn",i,xi.r,xi.i);getch();for(sumT=0,sumF=

20、0,i=0;i<8;i+)sumT=sumT+xi.r*xi.r;sumF=sumF+Xi.r*Xi.r+Xi.i*Xi.i;printf(" 時(shí)域能量和=%f, 頻域能量和=%fn",sumT,sumF/8.0);window2(" 函數(shù)圖形顯示",-20,40,20,-20,"t","f(t)");xy2(BLUE);plotgri2(BLUE,RED,X,8);getch();frame2(win2.xstr,win2.ystr);xy2(BLUE);plotgri2(BLUE,RED,x,8);get

21、ch();window3(" 周期信號(hào)頻譜圖",-1,-12,-12,20,12,12,"N","r","i");xyz3(BLUE);plotgri3(BLUE,RED,X,8);getch();frame3();xyz3(BLUE);plotgri3(BLUE,RED,x,8);getch();/第 2 步:補(bǔ) 0 效應(yīng)dft(X2,x2,13,1);for(i=0;i<13;i+)printf("X2%d=%f+%fn",i,X2i.r,X2i.i);getch();dft(x2,X

22、2,13,-1);for(i=0;i<13;i+)printf("x2%d=%f+%fn",i,x2i.r,x2i.i);getch();for(sumT=0,sumF=0,i=0;i<13;i+)sumT=sumT+x2i.r*x2i.r;sumF=sumF+X2i.r*X2i.r+X2i.i*X2i.i;printf(" 時(shí)域能量和=%f, 頻域能量和=%fn",sumT,sumF/16.0);window2(" 函數(shù)圖形顯示",-20,40,20,-20,"t","f(t)")

23、;xy2(BLUE);plotgri2(BLUE,RED,X2,13);getch();frame2(win2.xstr,win2.ystr);xy2(BLUE);plotgri2(BLUE,RED,x2,13);getch();window3(" 周期信號(hào)頻譜圖",-1,-12,-12,20,12,12,"N","r","i");xyz3(BLUE);plotgri3(BLUE,RED,X,13);getch();frame3();xyz3(BLUE);plotgri3(BLUE,RED,x,13);getch(

24、);/第 3 步:插值效應(yīng)dft(X3,x3,16,1);for(i=0;i<16;i+)printf("X3%d=%f+%fn",i,X3i.r,X3i.i);getch();dft(x3,X3,16,-1);for(i=0;i<16;i+)printf("x3%d=%f+%fn",i,x3i.r,x3i.i);getch();for(sumT=0,sumF=0,i=0;i<16;i+)sumT=sumT+x3i.r*x3i.r;sumF=sumF+X3i.r*X3i.r+X3i.i*X3i.i;printf(" 時(shí)域能量和

25、=%f, 頻域能量和=%fn",sumT,sumF/16.0);window2(" 函數(shù)圖形顯示",-20,20,20,-20,"t","f(t)");xy2(BLUE);plotgri2(BLUE,RED,X3,16);getch();frame2(win2.xstr,win2.ystr);xy2(BLUE);plotgri2(BLUE,RED,x3,16);getch();window3(" 周期信號(hào)頻譜圖",-1,-12,-12,20,12,12,"N","r"

26、;,"i");xyz3(BLUE);plotgri3(BLUE,RED,X3,16);getch();frame3();xyz3(BLUE);plotgri3(BLUE,RED,x3,16);getch();/第 4 步:插 0 效應(yīng)dft(X4,x4,12,1);for(i=0;i<12;i+)printf("X4%d=%f+%fn",i,X4i.r,X4i.i);getch();dft(x4,X4,12,-1);for(i=0;i<12;i+)printf("x4%d=%f+%fn",i,x4i.r,x4i.i);ge

27、tch();for(sumT=0,sumF=0,i=0;i<12;i+)sumT=sumT+x4i.r*x4i.r;sumF=sumF+X4i.r*X4i.r+X4i.i*X4i.i;printf(" 時(shí)域總和=%f, 頻域總和=%fn",sumT,sumF/12.0);window2(" 函數(shù)圖形顯示",-20,40,20,-20,"t","f(t)");xy2(BLUE);plotgri2(BLUE,RED,X4,12);getch();frame2(win2.xstr,win2.ystr);xy2(BL

28、UE);plotgri2(BLUE,RED,x4,12);getch();window3(" 周期信號(hào)頻譜圖",-1,-12,-12,20,12,12,"N","r","i");xyz3(BLUE);plotgri3(BLUE,RED,X4,12);getch();frame3();xyz3(BLUE);plotgri3(BLUE,RED,x4,12);getch();訓(xùn)練十二DFT及抽樣定理研究D、給定單頻信號(hào)抽樣1.對(duì)給定信號(hào) x(t尸sin(2兀fct),fc=50,N=264 進(jìn)行抽樣,抽樣頻率分布為100

29、Hz, 110Hz,200Hz, 230Hz, 250Hz單頻信號(hào)抽樣示意圖關(guān)于能量泄露的問(wèn)題:1 .計(jì)算時(shí)域能量、頻域能量。觀察是否滿足Et=Ef=2|X 50|2/N ,若 抽樣頻率正確,即無(wú)泄漏。時(shí)域能量和1 32 - 0朋加領(lǐng)域靛量和-132. Q00080-f-皿32,006000fs=110Hz '時(shí)域能量和=132 .叫回時(shí)曲.領(lǐng)域能量和=1顯.覬IW團(tuán)加fs=200Hz k 5 8運(yùn)算132.00蠲豳時(shí)域能量和=n1.隗1?如.頻域能量和=131 隗斕Fs=230Hz*區(qū)0運(yùn)算77 _ 213575時(shí)域能量和=131 .57 5492 一領(lǐng)域能量和-131 .5如492

30、fs=250Hz叫唯算?;3815g抽樣定理指出,若信號(hào)x(t)的最高頻率為fc,當(dāng)抽樣頻率fs 2fc時(shí),可由抽樣信號(hào)x(nTs) 完全恢復(fù)原信號(hào) x(t)。本題中,fs> 100Hz,符合采樣定理?xiàng)l件。但在 fs=100Hz時(shí),由于采 樣點(diǎn)均是原信號(hào)x(t)取值為0的點(diǎn),導(dǎo)致采樣信號(hào)值始終為0,所以時(shí)域能量、頻域能量始終為0。其他采樣頻率時(shí),時(shí)域、頻域能量始終相等,約為 132,符合帕塞瓦爾定理。實(shí)驗(yàn)結(jié)果:抽樣頻率為110Hz, 200Hz時(shí),沒(méi)有發(fā)生能量泄漏,抽樣頻率為230Hz, 250Hz時(shí),發(fā)生能量泄漏。計(jì)算是否發(fā)生能量泄漏的依據(jù)是,計(jì)算頻率為原信號(hào)頻率fc=50Hz處的頻譜

31、能量,E=2|X50|2/N。而經(jīng)過(guò)長(zhǎng)度為 N的DFT變換,對(duì)應(yīng)f=50Hz的k點(diǎn)的計(jì)算公式為 k=N*fc/fs 。 當(dāng)抽樣頻率為110Hz和200Hz時(shí),k分別等于120和66,因此只需計(jì)算第120點(diǎn)和第66點(diǎn) 的能量,就可以計(jì)算 X50處的能量,不會(huì)發(fā)生泄漏。但當(dāng)抽樣頻率為230Hz, 250Hz時(shí),k不能取到整數(shù)值,只能取到近似值,能量會(huì)泄漏到周圍頻率上,會(huì)產(chǎn)生能量泄漏,這種泄露是由于非整周期采樣引起的。2 .對(duì)x(t尸sin(2兀fct),fc=50進(jìn)彳t fs=250hz的抽樣,然后分別進(jìn)行 250點(diǎn)的DFT和補(bǔ)零至256點(diǎn)的FFT,并計(jì)算時(shí)域能量、頻域能量。觀察是否滿足Et=Ef

32、=2|X50|2/N ,若抽樣頻率正確,則無(wú)泄漏。時(shí)域能量和=125 .008000,頻域能量和=125.曲曲曲K50=125*B日運(yùn)中 25 .Q0Q000250 點(diǎn) DFT256 點(diǎn) FFTXU 時(shí)域能量和T25.0000的,領(lǐng)域能量和=125.000配。K50=117運(yùn)算叩-EZL094由實(shí)驗(yàn)結(jié)果可知,經(jīng)過(guò) DFT、FFT前后均符合帕塞瓦爾定理,即時(shí)域、頻域能量一致, 均為原始信號(hào)能量125。但在用DFT計(jì)算X50處的能量時(shí),計(jì)算結(jié)果與原始信號(hào)能量相同, 即未發(fā)生能量泄漏;在用FFT計(jì)算X50處的能量時(shí),計(jì)算結(jié)果低于原始信號(hào)能量,即發(fā)生了能量泄漏。因?yàn)槿?f=50Hz 所對(duì)應(yīng)的 k 值時(shí)

33、,k=N*fc/fs 。對(duì) 250 點(diǎn) DFT , k=250*50/250=50 ,計(jì)算 k=50這點(diǎn)的能量即可;對(duì) 256點(diǎn)FFT, k=256*50/250 ,不能取到整數(shù),因此能量會(huì)泄漏到 周圍的頻率區(qū)間,即發(fā)生能量泄漏。由圖可知,DFT在f=50Hz(k=50)的能量即是頻譜上的全部能量。而FFT由于補(bǔ)零之后,k不能取到整數(shù),能量一定會(huì)泄漏到周圍的頻率區(qū)間,f=50Hz的能量并不是頻譜上的全部能量,而是有其他頻率分量,所以只計(jì)算f=50Hz處的能量時(shí),會(huì)低于頻譜上的全部能量。結(jié)論:所以對(duì)于DFT,只要滿足k=N*fc/fs可以取到整數(shù),即可實(shí)現(xiàn)無(wú)能量泄漏。 對(duì)于FFT, 因?yàn)樾枰a(bǔ)零

34、,所以能量一定會(huì)泄漏。E、畫(huà)出單頻信號(hào)抽樣后的頻譜圖F、標(biāo)出頻譜圖上的單頻信號(hào)位置Fs=110Hz未發(fā)生能量泄漏Fs=200Hz未發(fā)生能量泄漏F=50Hz無(wú)法對(duì)應(yīng)整數(shù)kF=50Hz無(wú)法對(duì)應(yīng)整數(shù)k對(duì)X(k)信號(hào)進(jìn)行反變換,再次得到x(n),與原始信號(hào)相對(duì)比,發(fā)現(xiàn)無(wú)論這五種抽樣頻率下,均能恢復(fù)原始信號(hào)。說(shuō)明采樣頻率fs大于信號(hào)最高頻率fc時(shí),能不失真地恢復(fù)原信號(hào),符合帕塞瓦爾定理。源程序:/ 12yy.cpp : Defines the entry point for the console application./#include "stdafx.h"#include&qu

35、ot;D:xhclgcyyx_math.cpp"#include"D:xhclgcyyx_graph.cpp"COMPLEXx264,Y264,X50,X264,x1264;1,0,2,0,3,0,4,0,5,0,6,0,7,8,0,X口做 完DFT之后的,Y是取模之后的 DFT,x1口為反DFT void plotgri2(COLORREF gridcolor,COLORREF linecolor,COMPLEX p,int N) int i;HPEN pen1=CreatePen(PS_SOLID,1,gridcolor),oldpen=(HPEN)Selec

36、tObject(win3.hdc,pen1);HPEN pen2=CreatePen(PS_SOLID,1,linecolor);/for(i=0;i<N;i+)line2(i,0,i,pi.r);SelectObject(win3.hdc,pen2);for(i=0;i<N;i+) moveto2(i,0);lineto2(i,pi.r);SelectObject(win2.hdc,oldpen);DeleteObject(pen1);DeleteObject(pen2); void chouyang(int N,double fs,int fc)/對(duì)正弦信號(hào)進(jìn)行抽樣int i;

37、double t=0,dt;dt=1.0/fs;for(i=0;i<N;i+)t=i*dt;xi=COMPLEX(sin(2*M_PI*fc*t),0);void main(void)int N=264;/ 數(shù)據(jù)長(zhǎng)度int i,fc=50,fs=110,down,up;/fs 可變 fs=100hz;fs=110hz;fs=200hz;fs=230hz;fs=250hz double sumT,sumF,dt,aa,bb,bb1,EX50;for(i=0;i<N;i+)Xi=COMPLEX(0,0);chouyang(N,fs,fc);/ 給正弦波抽樣dft(X,x,264,1);

38、/ 輸出 X ,輸入 x, 264 個(gè)數(shù), 1:正變換window2(" 函數(shù)圖形顯示",-10,60,10,-10,"i","Xi");/抽樣出來(lái)的xn 顯示window2(" 函數(shù)圖形顯示",-1,2,264,-2,"i","xi");xy2(GREEN);/ 畫(huà) xy 軸。plotgri2(BLUE,RED,x,264);/ 宏函數(shù)工具方式,注意x 是形式上的宏參數(shù),它指明后面函數(shù)的自變量。getch();frame2();/對(duì)做完DFT 的 Xn 取模之后顯示for(

39、i=0;i<264;i+)Yi=abs(Xi);window2(" 函數(shù)圖形顯示",-1,100,264,-1,"i","Xi");xy2(GREEN);/ 畫(huà) xy 軸。plotgri2(BLUE,BLUE,Y ,264);/宏函數(shù)工具方式,注意x 是形式上的宏參數(shù),它指明后面函數(shù)的自變量。getch();frame2();for(sumT=0,sumF=0,i=0;i<264;i+)sumT=sumT+xi.r*xi.r;sumF=sumF+Xi.r*Xi.r+Xi.i*Xi.i;printf(" 時(shí)域能量和

40、=%f, 頻域能量和=%fn",sumT,sumF/264.0);/求是否有頻譜泄露aa=50*N/fs; /aa:50HZ 處對(duì)應(yīng)的點(diǎn);down=floor(aa);/ 向下取整X50=Ydown;EX50=pow(abs(X50),2)*2/N;printf("X50 運(yùn)算 %fn",EX50);getchar();/求反DFT 看是否可以恢復(fù)出原函數(shù):dft(x1,X,264,-1);window2(" 函數(shù)圖形顯示",-1,2,264,-2,"i","x1i");xy2(GREEN);/畫(huà) xy

41、軸。plotgri2(BLUE,RED,x1,264);/宏函數(shù)工具方式,注意x是形式上的宏參數(shù),它指明后面函數(shù)的自變量。getch();frame2();/驗(yàn)證DFT 及其頻譜泄露情況N=250;fs=250;for(i=0;i<N;i+)Xi=COMPLEX(0,0);chouyang(N,fs,fc);/對(duì)信號(hào)進(jìn)行抽樣,抽樣頻率為250hz,抽樣點(diǎn)數(shù)為250點(diǎn)window2(" 函數(shù)圖形顯示",-1,2,250,-2,"i","xi");xy2(RED);/ 畫(huà) xy 軸。plotgri2(BLUE,BLUE,x,250)

42、;/ 宏函數(shù)工具方式,注意x 是形式上的宏參數(shù),它指明后面函數(shù)的自變量。 getch(); frame2();dft(X,x,250,1);/ 做 250 點(diǎn) DFTfor(i=0;i<250;i+)Yi=abs(Xi);window2(" 函數(shù)圖形顯示",-1,100,250,-1,"i","Xi");xy2(RED);/ 畫(huà) xy 軸。plotgri2(BLUE,BLUE,Y ,250);/宏函數(shù)工具方式,注意x 是形式上的宏參數(shù),它指明后面函數(shù)的自變量。 getch(); frame2();for(sumT=0,sumF=

43、0,i=0;i<250;i+) sumT=sumT+xi.r*xi.r;sumF=sumF+Xi.r*Xi.r+Xi.i*Xi.i;printf(" 時(shí)域能量和=%f, 頻域能量和=%fn",sumT,sumF/250.0);/看是否有泄漏aa=50*N/fs; /aa:50HZ 處對(duì)應(yīng)的點(diǎn); down=floor(aa);/ 向下取整X50=Ydown;EX50=pow(abs(X50),2)*2/N;printf("X50=%2.fn",X50);printf("X50 運(yùn)算 %fn",EX50);getchar();/驗(yàn)證

44、反DFT 可不可以恢復(fù)原信號(hào)dft(x,X,250,-1);window2(" 函數(shù)圖形顯示",-1,1,250,-1,"i","Xi");xy2(RED);/ 畫(huà) xy 軸。plotgri2(BLUE,BLUE,x,250);/ 宏函數(shù)工具方式,注意x 是形式上的宏參數(shù),它指明后面函數(shù)的自變量。 getch();frame2();/驗(yàn)證FFTN=256;fs=250;chouyang(N,fs,fc);for(i=250;i<N;i+)xi=COMPLEX(0,0);for(sumT=0,sumF=0,i=0;i<256

45、;i+)sumT=sumT+xi.r*xi.r;/ 求時(shí)域能量window2(" 函數(shù)圖形顯示",-1,1,256,-1,"i","xi");xy2(RED);/ 畫(huà) xy 軸。它指明后面函數(shù)的它指明后面函數(shù)的plotgri2(BLUE,BLUE,x,256);/ 宏函數(shù)工具方式,注意x 是形式上的宏參數(shù),自變量。getch();frame2();fft(x,256,1);for(i=0;i<256;i+)Yi=abs(xi);window2(" 函數(shù)圖形顯示",-1,100,256,-100,"i

46、","Xi");xy2(RED);/ 畫(huà) xy 軸。plotgri2(BLUE,BLUE,Y ,256);/宏函數(shù)工具方式,注意x 是形式上的宏參數(shù),自變量。getch();frame2();for(sumF=0,i=0;i<256;i+)sumF=sumF+xi.r*xi.r+xi.i*xi.i;printf(" 時(shí)域能量和=%f, 頻域能量和=%fn",sumT,sumF/256.0);aa=50*N/fs; /aa:50HZ 處對(duì)應(yīng)的點(diǎn);down=floor(aa);/ 向下取整X50=Ydown;EX50=pow(abs(X50)

47、,2)*2/N;printf("X50=%2.fn",X50);printf("X50 運(yùn)算 %fn",EX50);getchar();訓(xùn)練十三數(shù)字濾波器制作1、設(shè)一階數(shù)字濾波器的系統(tǒng)函數(shù)為:H(z)1 0.2z1 0.4z系統(tǒng)輸入為以下三種數(shù)字序列: (1)矩形序列:(2)三角序列:(3)正弦序列:2、設(shè)二階數(shù)字濾波器的系統(tǒng)函數(shù)為:1z1 1.5z1 0.5z 2其輸入為單位階躍信號(hào)3、編寫(xiě)通用數(shù)字濾波器函數(shù)工具。通用數(shù)字濾波器函數(shù)工具程序:void IIRT(COMPLEX input,COMPLEX output,double a,double b

48、口,int N,int Ne)/N 為數(shù)據(jù) 點(diǎn)數(shù),Ne為0狀態(tài)最大負(fù)輸入,a口為丫輸出的系數(shù),b口為x輸入的系數(shù);int i,n;for(n=0;n<N;n+)for(i=1;i<Ne;i+)if(n<i) outputn+=ai*0;/零狀態(tài)輸入所有負(fù)值都為0 else outputn=outputn+ai*output(n-i);for(i=0;i<Ne;i+)if(n<i)outputn+=bi*0;else outputn=outputn+bi*input(n-i);源程序:/ 13yy.cpp : Defines the entry point for

49、the console application./#include "stdafx.h"#include"D:xhclgcyyx_math.cpp"#include"D:xhclgcyyx_graph.cpp"double Y40;void plotgri2(COLORREF gridcolor,COLORREF linecolor,double p,int N)int i;HPENpen1=CreatePen(PS_SOLID,1,gridcolor),oldpen=(HPEN)SelectObject(win3.hdc,pen1)

50、;HPEN pen2=CreatePen(PS_SOLID,1,linecolor);for(i=0;i<N;i+)line2(i,0,i,pi);SelectObject(win2.hdc,pen2);moveto2(0,p0);SelectObject(win2.hdc,oldpen);DeleteObject(pen1);for(i=0;i<N;i+)lineto2(i,pi);DeleteObject(pen2);void f1(double a0,double b0,double b1,double X,int N)/ 通用一階數(shù)字濾波器函數(shù)工具int n;for(n=0

51、;n<N;n+)Yn=0;for(n=0;n<N;n+)Yn=b0*Xn+b1*Xn-1+a0*Yn-1; void f2(double a0,double a1,double b0,double b1,double b2,double X,int N)/ 通用二階數(shù)字濾 波器函數(shù)工具int n;for(n=0;n<N;n+)Yn=0;for(n=0;n<N;n+)Yn=b0*Xn+b1*Xn-1+b2*Xn-2+a0*Yn-1+a1*Yn-2; int main(int argc, char* argv)int i,n;double X140,X240,X340,X4

52、40;/ONE/X1-1=0;for(i=0;i<12;i+)X1i=1;for(i=12;i<38;i+)X1i=0; window2("X1",-10,-1,30,5,"x","y");xy2(BLUE);plotgri2(GREEN,RED,X1,30);getch();f1(0.4,1,0.2,X1,40);plotgri2(GREEN,BLUE,Y ,30);getch();/TWO/X2-1=0;for(i=0;i<6;i+)X2i=(double)i/5; for(i=6;i<11;i+)X2i=

53、(10-(double)i)/5; for(i=11;i<38;i+)X2i=0;window2("X2",-10,-1,20,5,"x","y");xy2(BLUE);plotgri2(GREEN,RED,X2,30);getch();f1(0.4,1,0.2,X2,40);plotgri2(GREEN,BLUE,Y ,30);getch();/THREE/X3-1=0;for(i=0;i<18;i+)X3i=sin(double)i*6.28/18); for(i=18;i<38;i+)X3i=0;window2("X3",-1,-5,30,5,"x","y");xy2(BLUE);plotgri2(GREEN,RED,X3,30);getch();f1(0.4,1,0.2,X3,40);plotgri2(GREEN,BLUE,Y ,30); getch();/FOUR/X40=1;for(i=-19;i<0;i+)X4i=0;for(i=1;i<40;i+)X4i=0; window2("X4",-1,-2,20,5,"x","

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論