实验四 信号与系统(数字信号部分2)

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

实验四 信号的频域分析

实验目的:

1、掌握FFT 和IFFT ;

2、掌握功率密度普;

3、掌握数字滤波;

一、实验讲义

信号的频域分析在实际中有着广泛的应用,是LTI 系统分析的基础。对于连续信号的分析,如周期信号的傅里叶级数、非周期信号的傅里叶变换等,都需要利用其相应的公式进行分解或变换,以便获得傅里叶级数和傅里叶变换的表达形式,然后利用绘图工具绘制其频谱。对于连续信号而言,MATLAB 无法提供专门的函数进行频谱分析和处理。因此,本节只讨论离散信号和离散系统的频谱分析,并介绍频域分析的应用(以数字滤波为例)。

1 离散傅里叶变换及其逆变换

傅里叶变换可以将时域信号转换为频域信号,以便分析信号的频域特性,其逆变换则把频域信号转换为时域信号。傅里叶变换的原理是把一个时域信号分解成用不同频率的正弦信号(或复信号)线性组合的形式,这样时域信号所包含的频率成分就一目了然。

离散傅里叶变换DFT 是数字信号分析的主要工具,快速傅里叶变换是对离散傅里叶变换DFT 进行快速计算的有效算法。在MATLAB 中,利用函数fft 和ifft 分别计算一维信号的离散傅里叶变换和其逆变换。对于二维信号,使用的离散傅里叶变换和离散傅里叶变换逆变换函数则为fft2和ifft2。函数fft 和ifft 的调用格式为:

y=fft(x,n);Y=ifft(X,n)

说明:(1)x 和X 分别为待变换的输入向量,x 为时域信号,X 为频域信号。 (2)n 表示进行变换的点数,可以缺省,若输入的序列比n 短,则fft 和ifft 用0填充序列,使其长度为n ;若输入的序列比n 长,则截短输入序列。

(3)n 缺省时,变换的点数为输入序列的长度。 (4)n 为2的幂数时,计算速度最快。

例1 对信号()sin 100sin 240x t t t ππ=+进行傅里叶变换,然后对变换后的序列进行傅里叶逆变换,并绘制它们的图像。

N=512; % N 为采样点数 T=1; %T 为采样时间终点

t=linspace(0,T,N); % 给出N 个采样时间ti(I=1:N)

x=sin(2*pi*50*t)+5*cos(2*pi*120*t); % 求各采样点样本值x figure(1),plot(x(1:30)); %绘制输入信号的部分波形 dt=t(2)-t(1); % 采样周期 f=1/dt; % 采样频率(Hz)

X=fft(x); % 计算x 的快速傅立叶变换X F=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1) f=f*(0:N/2)/N; % 使频率轴f 从零开始 figure(2),plot(f,abs(F),'-*') % 绘制振幅-频率图 xlabel('Frequency');ylabel('|F(k)|'); z=ifft(X) ; %傅里叶逆变换

Z=real(z); %逆变换之后的信号是复信号,去其实部即可 figure(3),plot(Z(1:30)); %绘制逆变换之后的信号 程序运行结果如图1、图2和图3所示。

图1 输入信号的时域图

Frequency

|F (k )|

图2 输入信号的频谱

图3 逆傅里叶变换后的信号

可以看出,1和2是完全一致的,说明傅里叶变换和傅里叶逆变换是严格对应的。从图2可知,频谱在50Hz 和120Hz 有两个冲激,说明原时域信号中同时含有频率为50Hz 和120Hz 的两个周期信号。

2 信号的功率密度谱

信号的功率密度谱是信号功率谱密度值在频率范围内的分布,具体表现就是不同频段上波形幅值的变化。功率谱是进行频率分析的基础,在许多工程方面有着重要的意义。在MATLAB 中,求取信号的功率密度谱用函数psd 来实现,该函数的调用格式为:

[Pxx,f]=psd(Xn,nfft,Fs,window,noverlap) 说明:

(1)Pxx 为输入信号Xn 的功率谱密度数值序列,f 为与Pxx 对应的频率序列。

(2)Xn 为输入的时域信号,nfft 为计算FFT 的单位宽度,FS 为采样频率,window 为声明窗函数的类型,noverlap 是处理Xn 混叠的点数。

(3)使用psd 函数计算信号的功率密度谱的基本原理是:把输入时域信号Xn 分成许多连续的区域,对每个区域加窗(窗函数的类型由window 设置),然后做FFT 计算,每两个相邻的区域之间有个重叠的区域(大小由noverlap 设置)。把每个区域计算所得的序列先做模计算,然后对所有区域的序列进行求和,最后用这个和除以计算过的功率分布范围就获得到了信号的功率密度谱。

例2 在时域信号()sin(120)2sin(320)x t t t ππ=+掺入随机噪声,并绘制该信号的功率密度谱。

t=0:0.001:1;

x=sin(2*pi*60*t)+2*sin(2*pi*160*t)+randn(size(t)) ; %信号加噪声 nfft=256; %设置nfft 值 Fs=1000; %设置采样频率

window=hanning(nfft); %设置窗函数为汉宁窗,窗宽为256 noverlap=128; %混叠宽度为128点

[Pxx,f]=psd(x,nfft,Fs,window,noverlap); %计算功率密度谱 plot(t(1:200),x(1:200)); %绘制输入信号 figure,plot(f,Pxx) %绘制功率密度谱 程序运行结果如图4所示。

050100150200250300350400450500

20406080100120140160

180

图4 信号的功率密度谱

从图4可以看出,经过psd 函数的计算,随机噪声的能量被大大地弱化,而周期信号的能量得到了加强。

3 信号的互相关功率密度谱

信号的相关分为自相关和互相关两种类型,分别说明一个信号与自己或另外一个信号之间在频域上的相似性。信号的互相关功率密度谱(如果两个信号完全相同,则为自相关功率密度谱)在故障诊断和状态预测等方面有广泛的应用,例如检测振动信号中是否有周期信号、检测零部件裂缝的位置及孔洞的大小等。在MATLAB 中,求取信号的互相关功率密度谱用函数csd 来实现,该函数的调用格式为:

[Pxy,f]=csd(x,y,nfft,Fs,window,noverlap) 说明:

(1)x 和y 分别为两个时域的输入信号,nfft 为计算FFT 的单位宽度,Fs 为采样频率,window 是指窗函数的类型,noverlap 是处理Xn 混叠的点数。

(2)Pxy 为互相关功率密度谱的数值序列,f 为相应的频率轴。

(3)该函数与功率密度谱函数psd 的原理基本相似。

相关文档
最新文档