数字信号处理课程设计报告实验三Word文档格式.docx
《数字信号处理课程设计报告实验三Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计报告实验三Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
DFT不但可以很好的反应序列频谱特性,而且易
于用快速算法(FFT)在计算机上实现。
设序列为x(n),长度为N,其DFT定义为:
,
反变换为
有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列傅里叶变
换的等距采样,因此可以用于序列的谱分析。
FFT是DFT的一种快速算法,是对
变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。
常用的
FFT是以2为基数,其长度为N=2M。
它的效率高,程序简单,使用方便。
当要
变换的序列长度不等于2的整数幂次时,为了使用以2为基数的FFT,可以使用
末尾补零的方法,使其长度为2的整数次方。
在MATLAB信号处理工具箱中的函数为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/13
N=40;
n=0:
N-1;
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('
signalx(n)'
gridon;
subplot(2,1,2);
plot(w/pi,magX);
FFTN=40'
xlabel('
f(unit:
pi)'
ylabel('
|X|'
结果截图:
能观察出信号的2个频率分量
②MATLAB程序:
N=128;
FFTN=128'
4/13
幅度频谱变得更加密集,模拟频率和数字频率各为4hz和100hz频谱分析结果
与理论相一致的。
(二)一个连续信号含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(x1,N);
magX1=abs(X1(1:
X2=fft(x2,N);
magX2=abs(X2(1:
subplot(2,2,1);
plot(n,x1);
N=16df=1/16'
subplot(2,2,2);
plot(n,x2);
N=16df=1/64'
subplot(2,2,3);
plot(w/pi,magX1);
FFTN=16df=1/16'
5/13
subplot(2,2,4);
plot(w/pi,magX2);
FFTN=16df=1/64'
②N=64和128,=1/64:
N1=64;
n1=0:
N1-1;
N2=128;
n2=0:
N2-1;
df=1/64;
x1=sin(2*pi*0.15*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=64df=1/64'
plot(n2,x2);
N=128df=1/64'
plot(w1/pi,magX1);
FFTN=64df=1/64'
plot(w2/pi,magX2);
FFTN=128df=1/64'
6/13
由上图可知,当f越小时,频谱分辨率越低。
当N越大时,频谱分辨率越高。
N从16变化为64,128时,谱峰逐渐清晰,截取长度增加,谱线变得密集,频谱
更加接近真实值,泄露和混叠效应、栅栏效应都变小。
(三)被噪声污染的信号,比较难看出所包含的频率分量,如一个由50Hz和120Hz
正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz。
选取
合适的采样点数,使用FFT函数来分析其信号频率成分,并绘制信号的时域和频
域波形。
t=0:
0.001:
0.8;
x=sin(2*pi*50*t)+cos(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/2pi),代入上式可
得条件为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.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