具体描述:
1.使用DFT时候,要确保输入样本是N周期的,否则要用加窗调制的方法来缓解最后一个数据点和第一个点的不连续性。
下面进行Matlab代码验证:
clear
clc
f=50; %feature frequency
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
L = 20*Fs/f; % Length of signal x(保证样本序列是N周期)
t = (0:L-1)*T; % Time vector
X= 0.7*sin(2*pi*f*t);
Y = myDFT(X);
P1 = abs(Y/L);
f = Fs*(0:L-1)/L;
figure(1)
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
只改动L = 20.1*Fs/f;
2.加入噪声时候,增加采样点数目可以增大处理增益,使得信号和噪声更容易分离。
clear
clc
f=50; %feature frequency
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
L = 20*Fs/f; % Length of signal x(保证样本序列是N周期)
t = (0:L-1)*T; % Time vector
X= 0.7*sin(2*pi*f*t)+1*randn(size(t));
Y = myDFT(X);
P1 = abs(Y/L);
f = Fs*(0:L-1)/L;
figure(1)
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
只将20改成200;