Digital Signal Processing Reference
In-Depth Information
Programmbeispiel 5-1
Klirrfaktormessung mit der DFT
% Short-time spectral analysis with the fft
% dsplab5_1.m * mw * 21Oct2010
f0 = 50; T0 = 1/f0;
%
fundamental frequency in Hz and signal period
fs = 1e3; Ts = 1/fs;
%
sampling frequency and sampling period
Ns = floor(T0/Ts);
%
number of samples per period
n = 0:Ns-1;
%
normalized discrete time
%
Signal
x = zeros(1,Ns);
x(1:floor(Ns/2)) = sin(2*pi*f0*Ts*(0:floor(Ns/2)-1));
%
sine half wave
X = fft(x);
%
dft spectrum
X = X/Ns;
%
normalize dft spectrum
%%
Graphics
%
Time signal, sampled signal
t = 1e3*Ts*n;
%
time scale in ms
FIG1 = figure(
'Name'
,
'dsplab5_1 : distortion'
,
'NumberTitle'
,
'off'
);
subplot(2,1,1), plot(t,x,t,x,
'.'
,
'MarkerFaceColor'
,
'b'
,...
'MarkerEdgeColor'
,
'b'
,
'MarkerSize'
,20), grid
axis([0 1e3*Ts*Ns 0 1]);
xlabel(
'{\itt} in ms \rightarrow'
)
ylabel(
'{\itx}({\itt}) \rightarrow'
)
%
DFT spectrum
M = Ns/2;
%
omit spectral line at normalized frequency pi
if rem(Ns,2)==0
M = Ns/2 - 1;
end
f = (0:M)*fs/Ns;
%
frequency scale
MAX = max(abs(X));
subplot(2,1,2), stem(f,abs(X(1:M+1))/MAX,
'filled'
), grid
axis([0 max(f) 0 1]);
xlabel(
'{\itf} in Hz \rightarrow'
)
ylabel(
'norm. | {\itX}({\itf}) | \rightarrow'
)
%%
Text on screen
fprintf(
'\n'
)
%
text output on screen
fprintf(
'dsplab5_1 : distortion\n'
)
fprintf(
'f0 = %5i Hz\n'
,f0)
fprintf(
'fs = %5i Hz\n'
,fs)
fprintf(
'max|X(f)| = %g\n'
,MAX)
fprintf(
'f in Hz |X(f)|/max|X(f)|: \n'
)
for k = 1:M+1
fprintf(
' %5i %6.4f \n'
,f(k),abs(X(k)/MAX))
end
%%
Distortion
D1 = abs(X(2)).^2;
%
rms-value for fundamental frequency signal
D = sum(abs(X(2:1:M+1)).^2);
%
rms-value for higher harmonics
d = sqrt((D-D1)/D);
%
distortion (THD)
fprintf(
'distortion d = %6.4f \n'
,d)
5.1.5
Auffüllen mit Nullen
Durch Anhängen von Nullen kann ein Signal endlicher Länge stets, ohne Werte wegzulassen,
auf eine Länge gebracht werden, die die Anwendung der schnellen Radix-2-FFT erlaubt. Mit
dem Auffüllen mit Nullen auf die gewünschte DFT-Länge, englisch
Zero-padding
genannt,
kann unter Umständen die Darstellung des Spektrums günstig beeinflusst werden. Man beachte