用快速傅里叶变换对信号进行频谱分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 用快速傅里叶变换对信号进行频谱分析

一、实验目的

1.理解离散傅里叶变换的意义;

2.掌握时域采样率的确定方法;

3.掌握频域采样点数的确定方法;

4.掌握离散频率与模拟频率之间的关系;

5.掌握离散傅里叶变换进行频谱分析时,各参数的影响。

二、实验原理

序列的傅里叶变换结果为序列的频率响应,但是序列的傅里叶变换是频率的连续函数,而且在采用计算机计算时,序列的长度不能无限长,为了便于计算机处理,作如下要求:序列x (n )为有限长,n 从0~N -1,再对频率ω在0~2π范围内等间隔采样,采样点数为N ,采样间隔为2π/N 。第k 个采样点对应的频率值为2πk /N 。可得离散傅里叶变换及其逆变换的定义为

∑-=-=1

02)()(N n n N k j e n x k X π (1)

∑-==1

02)(1)(N k k N

n j e k X N n x π (2) 如果把一个有限长序列看作是周期序列的一个周期,则离散傅里叶变换就是傅里叶级数。离散傅里叶变换也是周期的,周期为N 。

数字频率与模拟频率之间的关系为

s f f /2πω=,即s

s T f f πωπω22==

(3) 则第k 个频率点对应的模拟频率为 N

kf NT k T N k f s s s k ==⋅=ππ212 (4) 在用快速傅里叶变换进行频谱分析时,要确定两个重要参数:采样率和频域采样点数,采样率可按奈奎斯特采样定理来确定,采样点数可根据序列长度或频率分辨率△f 来确定

f N

f s ∆≤,则f f N s ∆≥ (5) 用快速傅里叶变换分析连续信号的频谱其步骤可总结如下:

(1)根据信号的最高频率,按照采样定理的要求确定合适的采样频率f s ;

(2)根据频谱分辨率的要求确定频域采样点数N ,如没有明确要求频率分辨率,则根据实际需要确定频率分辨率;

(3)进行N 点的快速傅里叶变换,最好将纵坐标根据帕塞瓦尔关系式用功率来表示,

横坐标根据式(7-21)转换为模拟频率Hz;

(4)根据所得结果进行分析。

三、实验内容

1.采样率和采样点数的确定

在本实验中要用到正弦波、矩形波和正弦调制波

正弦波:sin(20πt);

矩形波:频率为50Hz、占空比为1的矩形波;

正弦波调制波:sin(20πt)×cos(100πt)

根据上述波形确定采样频率。假定所有波形的频率分辨率均为0.5Hz,确定频域采样点数。

2.信号的频谱分析

①正弦波进行快速傅里叶变换;

②矩形波进行快速傅里叶变换;

③正弦调制波进行快速傅里叶变换;

3.分析各信号的频谱与时域波形之间的关系

四、实验步骤

1.复习并理解离散傅里叶变换的定义和物理意义;

2.编写Matlab程序对信号进行频谱分析(参看例题中的程序);

3.调试程序,排除程序中的错误;

4.分析程序运行结果,检验是否与理论一致;

5.如结果不理想,调整有关参数,得到较理想的结果。

五、实验报告要求

1.阐明实验的目的、原理和内容;

2.打印主要程序并粘贴在实验报告中;

3.打印实验结果并粘贴在实验报告中;

4.针对实验结果加以分析和总结。

六、思考题

(1)频谱的幅度有没有物理意义?如没有,怎样处理才能有物理意义?

(2)为什么所得信号的频谱均是关于中心点对称的?

(3)要让所得频谱近似为理想的冲激,该如何调整参数?

附例题

例1试对信号x(t)=2sin(30πt)-cos(32πt)+ sin(60πt)进行频谱分析。

解:信号中包含了3种频率:15Hz、16Hz和30Hz,最高频率为30Hz,所以采样率不

能低于60Hz,这里取100Hz。没有明确告诉频率分辨率,但是有两个频率仅相差1Hz,因此,频率分辨率不能低于1Hz,取0.1Hz。当然采样率越高、频率分辨率越高,则计算量就越大。程序如下:

deltf=0.1;%频率分辨率

Fs=100;%采样率

N=Fs/deltf;%采样点数

n=0:N-1;%采样点

x=2*sin(30*pi*n/Fs)-cos(32*pi*n/Fs)+sin(60*pi*n/Fs);%采样

y=fft(x);%快速傅里叶变换

ye=y.*conj(y);%计算能量

subplot(2,2,1);plot(n*Fs/N,real(y),'k');

xlabel('频率/Hz');ylabel('幅度');text(45,100,'实部');

subplot(2,2,2);plot(n*Fs/N,imag(y),'k');

xlabel('频率/Hz');ylabel('幅度');

axis([0 100 -1500 1500]);text(45,1200,'虚部');

subplot(2,2,3);plot(n*Fs/N,ye,'k');

xlabel('频率/Hz');ylabel('幅度');

axis([0 100 0 12e5]);text(45,10e5,'能量');

subplot(2,2,4);plot(n*Fs/N,ye/N^2,'k');

xlabel('频率/Hz');ylabel('幅度');

axis([0 100 0 1.5]);text(45,1.2,'功率');

相关文档
最新文档