1、 DFT不但可以很好的反应序列频谱特性,而且易于用快速算法( FFT)在计算机上实现。设序列为 x(n),长度为 N,其 DFT定义为:,反变换为有限长序列的 DFT是其 Z 变换在单位圆上的等距采样, 或者说是序列傅里叶变换的等距采样,因此可以用于序列的谱分析。 FFT是 DFT的一种快速算法,是对变换式进行一次次分解, 使其成为若干小点数的组合, 从而减少运算量。 常用的FFT是以 2 为基数,其长度为 N=2M。它的效率高,程序简单,使用方便。当要变换的序列长度不等于 2 的整数幂次时,为了使用以 2 为基数的 FFT,可以使用末尾补零的方法,使其长度为 2 的整数次方。在 MATLAB
2、信号处理工具箱中的函数为 fft(x,N),可用于序列 x(n)的 N 点快速傅里叶变换。经函数 fft 求得的序列一般是复序列, 通常要求其幅值和相位。 MATLAB中提供了求复数的幅值和相位函数: abs、angle。三、实验内容:(一)模拟信号 ,以 0.01n 进行采样,其中n=0, ,N-1:求 N=40点 FFT的幅度频谱,从图中能否观察出信号的 2 个频率分量?提高采样点数,如N=128,再求该信号的幅度频谱,此时幅度频谱发生了 什么变化?信号的 2 个模拟频率和数字频率各为多少? FFT频谱分析结果与理论 上是否一致?解: MATLAB程序:3 / 13N=40;n=0:N-1
3、;t=0.01*n;x=2*cos(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)grid on;subplot(2,1,2);plot(w/pi,magX);FFT N=40xlabel(f (unit:pi)ylabel(|X|结果截图:能观察出信号的 2 个频率分量 MATLAB程序:N=128;FFT N=1284 / 13幅度频谱变得更加密集,模拟频率和数字频率各为 4hz 和100hz 频谱分析结果
4、与理论相一致的。(二)一个连续信号含 3 个频率分量,经采样得到以下序列:。已知 N=16, 分别为 1/16,1/64,观察其频谱; 当N=64、128,不变,其结果有何不同,为什么?分析参数变化对频率分辨率的影响。N=16, 1/16,1/64 :MATLAB程序:N=16;df1=1/16;df2=1/64;x1=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df1)*n)+cos(2*pi*(0.15+2*df1)*n);x2=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df2)*n)+cos(2*pi*(0.15+2*df2)*n);X1=fft
5、(x1,N);magX1=abs(X1(1:X2=fft(x2,N);magX2=abs(X2(1:subplot(2,2,1);plot(n,x1);N=16 df=1/16subplot(2,2,2);plot(n,x2);N=16 df=1/64subplot(2,2,3);plot(w/pi,magX1);FFT N=16 df=1/165 / 13subplot(2,2,4);plot(w/pi,magX2);FFT N=16 df=1/64N=64和128, =1/64:N1=64;n1=0:N1-1;N2=128;n2=0:N2-1;df=1/64;x1=sin(2*pi*0.1
6、5*n1)+cos(2*pi*(0.15+df)*n1)+cos(2*pi*(0.15+2*df)*n1);x2=sin(2*pi*0.15*n2)+cos(2*pi*(0.15+df)*n2)+cos(2*pi*(0.15+2*df)*n2);k1=0:N1/2;w1=2*pi/N1*k1;k2=0:N2/2;w2=2*pi/N2*k2;X1=fft(x1,N1);N1/2+1);X2=fft(x2,N2);N2/2+1);plot(n1,x1);N=64 df=1/64plot(n2,x2); N=128 df=1/64plot(w1/pi,magX1);FFT N=64 df=1/64p
7、lot(w2/pi,magX2);FFT N=128 df=1/646 / 13由上图可知,当 f 越小时,频谱分辨率越低。当 N越大时,频谱分辨率越高。N 从 16 变化为 64,128时,谱峰逐渐清晰,截取长度增加,谱线变得密集,频谱更加接近真实值,泄露和混叠效应、栅栏效应都变小。(三)被噪声污染的信号, 比较难看出所包含的频率分量, 如一个由 50Hz和120Hz正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为 1000Hz。选取合适的采样点数, 使用 FFT函数来分析其信号频率成分, 并绘制信号的时域和频域波形。t=0:0.001:0.8;x=sin(2*pi*50*t)+co
8、s(2*pi*120*t);y=x+1.5*randn(1,length(t);subplot(3,1,1);plot(t,x);subplot(3,1,2);plot(t,y);Y=fft(y,512);P=Y.*conj(Y)/512;f=1000*(0:255)/512;subplot(3,1,3);plot(f,P(1:256);7 / 13(四)已知 AM 调幅信号 ,其中 ,以采样频率 ,采样长度 N,对信号 x(t)进行采样,频率分辨率为 1Hz。求采样信号的频谱和功率谱,验证不发生频谱泄露的条件。频谱泄露条件 f0=m*fs/N=m*F0,此题f0易证为(w/2pi+w0/2p
9、i) ,代入上式可得条件为 f0是整数时不会产生频谱泄露 当 f0 为整数时:F0=1;A0=5;A=4;w0=2*pi*2;w=2*pi*8;fs=N*F0;(N-1);t=1/fs*n;x=(A0+A*cos(w*t).*cos(w0*t);subplot(1,2,1); 满足条件的频谱图 |x|grid ;window=boxcar(length(x);nfft=1024;Pxx,f=periodogram(x,window,nfft,fs);subplot(1,2,2);plot(f,10*log10(Pxx); 满足条件的功率谱图 8 / 13当 f0 不为整数时:w=2*pi*8.
10、4; 不满足条件的频谱图 不满足条件的功率谱图 9 / 13(五)研究高密度频谱和高分辨率频谱1.高密度频谱:(1)定义:当信号的时间域长度不变时,在频域内对它的频谱进行提高采样频率,得到高密度频谱。(2)特点:由于信号末尾补零没有对源信号增加任何新的信息,因此不能提高频率分辨率,但可以减少栅栏效应,细化当前分辨率下的频谱。(3)应用:减少栅栏效应,细化当前分辨率下的频谱2.高分辨率频谱:在维持采样频率 fs 不变的情况下,为提高分辨率智能增加采样点数 N,此时所得到的的频谱称为高分辨率频谱。分辨率高提高频谱分辨率(六)考虑一连续信号以采样率 fs=32kHz对信号进行 采样,分析如下情况的幅频特性: 采集数据长度 N=16,做 16 点的 FFT;采集长度 N=16 点,补零至 256 点,10 / 13做256 点 FFT。 采集数据长度 N=64,做64 点的 FFT;采集数据长度 N=16,补零至 256 点,做256 点的 FFT。 采集长度 N=256 点,做 256
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1