数字信号处理实验指导书(DOC) 下载本文

(2) 比较两种方法的优缺点;

(3) 利用y=filter(b,a,x)函数观察对实际心电图信号的滤波效

果。

人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波器处理。已知某一实际心电图信号的采样序列如下:

x(n)=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,…

-4,8,12,12,10,6,6,6,4,0,0,0,0,0,

-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0],共56点

13

实验四 FFT频谱分析及应用

一、实验目的: 1. 2.

通过实验加深对FFT的理解;

熟悉应用FFT对典型信号进行频谱分析的方法。

二、实验原理与方法:

在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。

有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的普分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。

在matlab信号处理工具箱中的函数fft(x,n),可以用来实现序列的N点快速傅立叶变换。

经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。MATLAB中提供了求复数的幅值和相位的函数:abs、angle,这些函数一般和fft同时使用。 三、实验内容

14

1.模拟信号x(t)?2sin(4?t)?5cos(8?t),以t?0.01n(n?0:N?1)进行采样,求:

(1)N=40点FFT的幅度频谱,从图中能否观察出信号的2个频谱分量?

(2)提高采样点数,如N=128,再求该信号的幅度频谱,此时幅度频谱发生了什么变化?信号的2个模拟频率和数字频率各为多少?FFT频谱分析结果与理论上是否一致? 2.一个连续信号含三个频谱分量,经采样得以下序列:

x(n)?sin(2??0.15n)?cos(2??(0.15?df)n)?cos(2??(0.15?2df)n)

(1)N=64,df分别为116、1/64,观察其频谱;

(2)N=64、128,df为1/64,做128点得FFT,其结果有何不同? 3.

被噪声污染得信号,比较难看出所包含得频率分量,如一

个由50Hz和120Hz正弦信号

构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz,试用FFT函数来分析其信号频率成分,要求:(1)画出时域波形;(2)分析信号功率谱密度。

注:在MATLAB中,可用函数rand(1,N)产生均值为0,方差为1,长度为N的高斯随机序列。

四、实验程序

15

程序1: N=40;n=0:N-1; t=0.01*n;

x=2*sin(4*pi*t)+5*cos(8*pi*t); k=0:N/2;w=2*pi/N*k; X=fft(x,N);

magX=abs(X(1:N/2+1));

subplot(2,1,1);stem(n,x,'.');title('signal x(n)'); subplot(2,1,2);plot(w/pi,magX);title('FFT N=40'); xlabel('f (unit :pi)');ylabel('|X|');grid

N=40 N=128

signal x(n)1050-5-10signal x(n)1050-5-1005101520FFT N=4025303540020406080100120140FFT N=128400300100|X||X|50200100000.10.20.30.40.50.6f (unit :pi)0.70.80.91000.10.20.30.40.50.6f (unit :pi)0.70.80.91

程序2: N=128;n=0:N-1; t=n; df=1/64;

x=sin(2*pi*0.15*t)+cos(2*pi*(0.15+df)*t)+cos(2*pi*(0.15+2*df)*t);

16