实验一 利用DFT进行信号分析实验报告.docx
《实验一 利用DFT进行信号分析实验报告.docx》由会员分享,可在线阅读,更多相关《实验一 利用DFT进行信号分析实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
实验一利用DFT进行信号分析实验报告
利用DFT进行信号分析
一、实验目的
1.通过编写程序加深对DFT/IDFT的理解;
2.运用DFT/IDFT进行初步的频谱分析;
3.对DFT/IDFT运行过程出现的现象进行解释
二、实验内容
给定信号如下:
x(t)=2+3cos(100πt-π/6
)+1.5cos(150πt-π/2)
1.对给定信号进行频谱分析,画出时域、振幅谱、相位谱的图像;
2.滤掉50HZ频率,反变换后观察图像,分析是否满足采样定理;
3.对DFT出现的GIBBS效应、栅栏效应等的分析;
4.进行傅式反变换观察能否将原信号恢复
三、实验步骤
1.对给定信号进行频谱分析,画出时域、振幅谱、相位谱的图像;
x(t)=2+3cos(100πt-π/6
)+1.5cos(150πt-π/2)
其中fm1=75Hz为主频,包含一个有效信号和一个干扰信号(fm=50Hz),。
将子波信号离散化,令
则x(t)=x(i*dt),将子波信号变换到频率域进行滤波,取2560个采样点,采样间隔取0.001s
生成给定信号的源程序为:
clear
clf
N=2560;
fm=50;
fm1=75;
dt=0.001;
df=1/(N*dt);
n=[1:
N];
k=[1:
N];
t=0:
dt:
(N-1)*dt;
f=0:
df:
(N-1)*df;
fori=1:
N
x(i)=2+3*cos(fm*2*pi*dt*i-pi/6)+1.5*cos(fm1*2*pi*dt*i-pi/2);
end
q(k)=x*exp(-j*2*pi/N).^(n'*k);
a=abs(q);
p=angle(q);
p=180/pi*p;
subplot(3,1,1);plot(t,x,'k'),gridon,xlabel('时间t'),ylabel('信号x(t)'),title('给定信号的时域图像');
subplot(3,1,2);plot(f,a,'k'),gridon,xlabel('频率f'),ylabel('振幅a'),title('给定信号的振幅谱');
subplot(3,1,3);plot(f,p,'k'),gridon,xlabel('频率f'),ylabel('相位p'),title('给定信号的相位谱');
运行程序,得给定信号的时域图像、振幅谱、相位谱如图:
频率
其中频率采样间隔
,所以x(f)=x(k*df)。
从振幅谱中可以看出,原信号包含两个主要频率,分别为fm=50Hz和fm1=75Hz。
2.分析振幅谱有什么特点,在频率域设计滤波器,滤掉50HZ频率,反变换后观察图像,分析是否满足采样定理;
已知原信号的频谱,现要将干扰信号(fm=50Hz)滤掉,应将k1=fm/df附近的部分滤掉,又因为频谱是对称的,还应将N-fm/df的部分滤掉.滤波方程为Y(k)=X(k)×Y(k),为频率域滤波。
设计滤波器Hn,低频过渡带宽度d1=5,高频过渡带宽度d2=3.
生成滤波器的源程序为:
Hn=linspace(1,1,N);
d1=5;
d2=3;
H1=round(50/df);
H2=round(N-50/df);
fori=(H1-d1):
H1
Hn(i)=1-(i-H1+d1)/d1;
end
fori=(H1+1):
(H1+d2)
Hn(i)=(i-H1)/d2;
end
fori=(H2-d2):
(H2)
Hn(i)=1-(i-(H2-d2))/d2;
end
fori=(H2+1):
(H2+d1-1)
Hn(i)=(i-H2)/d1;
end
plot(f,Hn,'k'),gridon,title('滤波器');
运行程序,得到滤波器图形为:
滤波后信号的振幅谱为:
xn=a.*Hn;
x1=abs(xn);
plot(f,x1,'k'),gridon,xlabel('频率f'),ylabel('振幅1'),title('滤波后信号振幅谱')
从中可以看出大于50Hz的频率成分已经被滤掉,剩下的为要保留的信号。
将滤波后的信号反变换回时间域,并绘出信号曲线,观察与原信号的差别。
利用idft将频率域的信号反变换到时间域,取其实部进行绘图。
源程序:
x2(k)=x1*exp(j*2*pi/N).^(n'*k)/N;
x3=real(x2);
plot(t,x3,'k'),gridon,xlabel('时间t'),ylabel('反变换信号x3(t)'),title('反变换信号时域图像')
反变换回时间域后的滤波信号如图:
对反变换信号时域图像进行局部放大(t取0~0.2s),观察波形:
对比原给定信号时域图像(局部放大,同样取t为0~0.2s):
从图中可以看出,经过滤波后,频率50Hz附近的成分被滤掉的同时,有效信号中的部分频率也被滤掉,从而反变换回时间域后有效信号的波形也发生了变化。
其原因是原有效信号除主要频率外还包含其他频率成分,在滤波时连同有效信号中的频率也被滤掉。
对比原信号和滤波后信号的时域图像和振幅谱可知,无明显频率泄露,且满足采样定理fs=1000Hz>2fm1=150Hz.
3.对DFT出现的GIBBS效应、栅栏效应等的分析;
(1)取相同采样点数N=2560,不同采样间隔dt分别为0.001s和0.005s(满足采样定理的条件下),时间域图像对比:
(2)等采样间隔,取不同采样点数(2560个和256个)
观察图像发现采样点数越多,采样间隔越小,越逼近真实的信号。
采样间隔过大或者采样点数过少均可能由于Gibbs效应和栅栏效应造成信号的失真。
4.进行傅式反变换观察能否将原信号恢复
源程序为:
S1(k)=x1*exp(j*2*pi/N).^(n'*k)/N;
s=real(x2);
plot(t,s,'k'),gridon,xlabel('时间t'),ylabel('反变换信号s(t)'),title('反变换信号时域图像')
如图所示(局部放大,取t为0~0.2s):
对比原信号:
对比可知,idft变换可近似恢复原信号,但有一定的信号失真。
附录利用DFT进行信号分析的源程序
clear
clf
N=256;
fm=50;
fm1=75;
dt=0.001;
df=1/(N*dt);
n=[1:
N];
k=[1:
N];
t=0:
dt:
(N-1)*dt;
f=0:
df:
(N-1)*df;
fori=1:
N
x(i)=2+3*cos(fm*2*pi*dt*i-pi/6)+1.5*cos(fm1*2*pi*dt*i-pi/2);
end
q(k)=x*exp(-j*2*pi/N).^(n'*k);
a=abs(q);
p=angle(q);
p=180/pi*p;
figure
(1),subplot(3,1,1);plot(t,x,'k'),gridon,xlabel('时间t'),ylabel('信号x(t)'),title('给定信号的时域图像');
figure
(1),subplot(3,1,2);plot(f,a,'k'),gridon,xlabel('频率f'),ylabel('振幅a'),title('给定信号的振幅谱');
figure
(1),subplot(3,1,3);plot(f,p,'k'),gridon,xlabel('频率f'),ylabel('相位p'),title('给定信号的相位谱');
Hn=linspace(1,1,N);
d1=5;
d2=3;
H1=round(50/df);
H2=round(N-50/df);
fori=(H1-d1):
H1
Hn(i)=1-(i-H1+d1)/d1;
end
fori=(H1+1):
(H1+d2)
Hn(i)=(i-H1)/d2;
end
fori=(H2-d2):
(H2)
Hn(i)=1-(i-(H2-d2))/d2;
end
fori=(H2+1):
(H2+d1-1)
Hn(i)=(i-H2)/d1;
end
figure
(2),plot(f,Hn,'k'),gridon,title('滤波器');
xn=a.*Hn;
x1=abs(xn);
figure(3),subplot(2,1,1);plot(f,x1,'k'),gridon,xlabel('频率f'),ylabel('振幅1'),title('滤波后信号振幅谱')
x2(k)=x1*exp(j*2*pi/N).^(n'*k)/N;
x3=real(x2);
figure(3),subplot(2,1,2);plot(t,x3,'k'),gridon,xlabel('时间t'),ylabel('反变换信号x3(t)'),title('反变换信号时域图像')