(实验五利用DFT分析模拟信号频谱)
实验报告
实验课程:数字信号处理实验开课时间:2020—2021 学年秋季学期
实验名称:利用DFT分析模拟信号频谱实验时间: 2020年9月27日星期日
学院:物理与电子信息学院年级:大三班级:182 学号:1843202000234 姓名:武建璋
一、实验预习
【例1.5.1】
已知周期信号x(t)=cos(10*pi*t)+2sin(18*pi*t),计算其频谱。
解:信号基频ω0=2*pi rad/s,周期T=1;最高次谐频为9*ω0=18*pi rad/s,所以N≥(2*9+1=19),程序如下:
%example 1_5_1……
clc,clear,close all
T0 = 1;
N = 19;
T = T0/N;
t = 0:T:T0;
x = cos(2*pi*5*t) +2*sin(2*pi*9*t);
Xm = fft(x,N);
f = (-(N - 1)/2:(N - 1)/2)/N/T;
stem(f,abs(fftshift(Xm)));
xlabel('f(Hz)');
ylabel('f(Magnitube)');
title('幅度谱');
【例1.5.2】
利用DFT近似分析连续信号x(t)=exp(-t)*u(t)的幅度谱并理论值比较。
fsam = 50;
Tp = 6;
N = 512;
T = 1/fsam;
t = 0:T:Tp;
x = exp(-1*t);
X = T*fft(x,N);
subplot(2,1,1);
plot(t,x);
xlabel('t');
title('时域波形');
w = (-N/2:N/2 - 1)*(2*pi/N)*fsam;
y = 1./(j*w+1);
subplot(2,1,2);
plot(w,abs(fftshift(X)),w,abs(y),'r-.');
title('幅度谱');
xlabel('w');
legend('理论值','计算值',0);
axis([-10,10,0,1.4])
实验内容
1. 利用FFT分析信号)
x t-
=的频谱。
u
t
(
e
)
(2t
(1) 确定DFT计算的各参数(抽样间隔,截短长度,频谱分辨率等);
(2) 比较理论值与计算值,分析误差原因,提出改善误差的措施。
% 5_1_1……
clc,clear,close all
T0 = 1;
N = 19;
T = T0/N;
t = 0:T:T0;
x = exp(-2*t)
Xm = fft(x,N);
f = (-(N - 1)/2:(N - 1)/2)/N/T;
stem(f,abs(fftshift(Xm)));
xlabel('f(Hz)');
ylabel('f(Magnitube)');
title('幅度谱');
% 5_1_2……
clc,clear,close all
fsam = 50;
Tp = 6;
N = 512;
T = 1/fsam;
x = exp(-2*t);
X = T*fft(x,N);
subplot(2,1,1);
plot(t,x);
xlabel('t');
title('时域波形');
w = (-N/2:N/2-1)*(2*pi/N)*fsam;
y = 1./(j*w+1);
subplot(2,1,2);
plot(w,abs(fftshift(X)),w,abs(y),'r-. ');
title('幅度谱');
xlabel('W');
legend('理论值','计算值',0);
axis([-10,10,0,1.4]);
2.分析周期信号)
(t
t
)
x+
=频谱时,如果分析长度不为整周期,利用
cos(
t
sin(
18
π
2
)
π
10
fft函数计算并绘出其频谱,总结对周期信号进行频谱分析时,如何选取信号的分析长度。
% 5_2……
clc,clear,close all
T0 = 1.5;%周期不为整数时,如1.5时分析
N = 19;
T = T0/N;
x = cos(2*pi*5*t) +2*sin(2*pi*9*t);
Xm = fft(x,N);
f = (-(N - 1)/2:(N - 1)/2)/N/T;
stem(f,abs(fftshift(Xm)));
xlabel('f(Hz)');
ylabel('f(Magnitube)');
title('幅度谱');
3. 假设一实际测得的一段信号的长度为0.4s,其表达式为x(t)=cos(2p f1t)+0.75 cos(2p f2t)其中f1=100Hz,f2=110Hz。当利用FFT近似分析该信号的频谱时,需要对信号进行时域抽样。试确定一合适抽样频率f sam,利用DFT分析信号x(t)的频谱。若在信号截短时使用Hamming窗,由实验确定能够分辨最小谱峰间隔D f和信号长度T p的关系。若采用不同参数的Kaiser窗,重新确定能够分辨最小谱峰间隔D f和信号长度T p 的关系。
% 5_3……
clc,clear,close all
fsam=440;
Tp=0.4;
N=55;
T=1/fsam;
t=0:T:Tp;
f1=100;f2=110;
x=cos(2*pi*f1*t)+sin(2*pi*f2*t);
Xm=fft(x,N)/N;
f=(-(N-1)/2:(N-1)/2)/N/T;
subplot(2,1,1);
stem(f,abs(fftshift(Xm)));
xlabel('f (Hz)');
ylabel('magnitude');
title('幅度谱 N=440');
fsam=440;
Tp=0.4;
N=55;
T=1/fsam;
t=0:T:Tp;
N=Tp/T+1;
f1=100;f2=110;
y=cos(2*pi*f1*t)+0.75*sin(2*pi*f2*t); w=0.54-0.46*cos(2*pi*t/(N-1));
x=y.*w;
Xm=fft(x,N)/N;
f=(-(N-1)/2:(N-1)/2)/N/T;
subplot(2,1,2);
stem(f,abs(fftshift(Xm)));
xlabel('f (Hz)');
ylabel('magnitude');
二、实验内容