实验五快速傅里叶变换.docx

上传人:b****6 文档编号:8116840 上传时间:2023-01-28 格式:DOCX 页数:14 大小:257.11KB
下载 相关 举报
实验五快速傅里叶变换.docx_第1页
第1页 / 共14页
实验五快速傅里叶变换.docx_第2页
第2页 / 共14页
实验五快速傅里叶变换.docx_第3页
第3页 / 共14页
实验五快速傅里叶变换.docx_第4页
第4页 / 共14页
实验五快速傅里叶变换.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实验五快速傅里叶变换.docx

《实验五快速傅里叶变换.docx》由会员分享,可在线阅读,更多相关《实验五快速傅里叶变换.docx(14页珍藏版)》请在冰豆网上搜索。

实验五快速傅里叶变换.docx

实验五快速傅里叶变换

实验五快速傅里叶变换(FFT)及其应用

实验目的:

快速傅里叶变换并不是一种新的变换方法,它是计算DFT的一种有效算法。

他是信号谱分析的有力工具。

通过本次试验,学习使用FFT进行信号分析的方法,加深对FFT的理解;理解应用FFT进行信号谱分析可能出现的问题,如:

频谱混叠,栅栏效应,频谱泄漏等,以便在实际中正确处理。

实验任务:

1通过实际例子学习使用FFT分析信号的方法。

对信号

进行DFT,对其结果进行IDFT,并IDF的结果和原信号进行比较。

程序如下:

%第一题

Fs=1/0.01

figure

(1)

N=50;n=0:

N-1;t=0.01*n;

q=n*Fs./N;

x=sin(80*pi*t)+2*sin(30*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=100');

%

figure

(2)

yf=ifft(fft(x,N));

stem(q,abs(yf));

title('IFFTN=100');

得到图像如下:

2.通过采样点数的不同,了解对此信号幅度谱的影响。

已知信号由15Hz幅值0.5的正弦信号和40Hz幅值为2的正弦信号组成,数据采样频率为100Hz,试分别复制N=128点和N=1024点的DFT幅频图。

程序如下:

%第二题

Fs=1/0.01

figure

(1)

N=128;n=0:

N-1;t=0.01*n;

q=n*Fs./N;

x=0.5*sin(30*pi*t)+2*sin(80*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=128');

%

figure

(2)

N=1024;n=0:

N-1;t=0.01*n;

q=n*Fs./N;

x=0.5*sin(30*pi*t)+2*sin(80*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFTN=1024');

图像如下所示:

3.编程实现对下列正弦信号的FFT分析,并讨论实验结果。

a.信号频率F=50Hz,采样长度N=32,采样时间T=0.000625s,

b信号频率F=50Hz,采样长度N=32,采样时间T=0.005s,

c.信号频率F=50Hz,采样长度N=32,采样时间T=0.0046875s,

d.信号频率F=50Hz,采样长度N=32,采样时间T=0.004s,

e.信号频率F=50Hz,采样长度N=64,采样时间T=0.000625s,

f.信号频率F=250Hz,采样长度N=32,采样时间T=0.005s,

g.信号频率F=50Hz,采样长度N=32,采样时间T=0.0046875s,后补32个0做64点FFT。

程序如下:

%第三题。

figure

(1)

Fs=1/0.000625

N=32;n=0:

N-1;t=0.000625*n;

q=2*n*pi/N;

x=sin(100*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=32');

figure

(2)

Fs=1/0.005

N=32;n=0:

N-1;t=0.005*n;

q=2*n*pi/N;

x=sin(100*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=32');

figure(3)

Fs=1/0.0046875

N=32;n=0:

N-1;t=0.0046875*n;

q=2*n*pi/N;

x=sin(100*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=32');

figure(4)

Fs=1/0.004

N=32;n=0:

N-1;t=0.004*n;

q=2*n*pi/N;

x=sin(100*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=32');

figure(5)

Fs=1/0.000625

N=64;n=0:

N-1;t=0.000625*n;

q=2*n*pi/N;

x=sin(100*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=64');

figure(6)

Fs=1/0.005

N=32;n=0:

N-1;t=0.005*n;

q=2*n*pi/N;

x=sin(500*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=32');

figure(7)

Fs=1/0.0046875

N=32;n=0:

N-1;t=0.0046875*n;

q=2*n*pi/N;

x=sin(500*pi*t);

y=fft(x(1:

32),zeros(1,32))

stem(q,abs(y));

title('FFTN=32');

得到图像如下:

4.线性卷积的FFT算法

【例5-1】模拟信号

,t=0.01,n(n=0:

N-1)进行取样。

求:

N东岸DFT的幅度值。

N分别为:

(1)N=15;

(2)N=25;(3)N=35;(4)N=55。

解:

matlab程序如下:

Fs=1/0.01

figure

(2)

N=50;n=0:

N-1;t=0.01*n;

q=n*Fs./N;

x=2*sin(4*pi*t)+5*sin(8*pi*t);

y=fft(x,N)

stem(q,abs(y));

title('FFTN=50');

figure

(1)

subplot(2,2,1)

N=15;n=0:

N-1;t=0.01*n;

q=2*n*pi/N;

x=2*sin(4*pi*t)+5*sin(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFTN=15');

subplot(2,2,2)

N=25;n=0:

N-1;t=0.01*n;

q=2*n*pi/N;

x=2*sin(4*pi*t)+5*sin(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFTN=25');

subplot(2,2,3)

N=35;n=0:

N-1;t=0.01*n;

q=2*n*pi/N;

x=2*sin(4*pi*t)+5*sin(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFTN=35');

subplot(2,2,4)

N=55;n=0:

N-1;t=0.01*n;

q=2*n*pi/N;

x=2*sin(4*pi*t)+5*sin(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFTN=55');

执行后可得如图所示的信号频谱。

分析取不同的N值时,其精度有什么样的变化,当N取何值时,其精度会与N值无关。

得到图像如下:

【例5-2】在上例的基础上,N=64,并在信号中加入噪声(正态)w(t),

试比较有无噪声时的信号谱。

figure

(1);

subplot(2,1,1)

N=64;n=0:

N-1;t=0.01*n;

q=2*n*pi/N;

x=2*sin(4*pi*t)+5*sin(8*pi*t);

y=fft(x,N);

plot(q,abs(y));

title('FFTN=64');

subplot(2,1,2)

N=64;n=0:

N-1;t=0.01*n;

q=2*n*pi/N;

x=2*sin(4*pi*t)+5*sin(8*pi*t)+0.8*randn(1,N);

y=fft(x,N);

plot(q,abs(y));

title('FFTN=64(withnoise)');

得到图像如下:

执行后可得如图所示的信号频谱。

从图中可以看到,在信号检测的意义上,这种噪声不会影响信号的频谱。

【例5-3】用函数conv和FFT计算长度为1000的序列的卷积,比较其计算时间。

编程如下:

clf;

L=5000;N=2*L-1;

n=1:

L;

x1=0.5*n;x2=2*n;

t0=clock

yc=conv(x1,x2);

tc=etime(clock,t0)

yf=ifft(fft(x1,N).*fft(x2,N));

tf=etime(clock,t0)

n1=0:

length(yf)-1;

figure

(1)

plot(n1,yc,'r')

figure

(2)

plot(n1,yf,'b')

图像如下

其中:

tc=0.2640s,tf=0.2760s.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1