git-svn-id: http://moon:8086/svn/matlab/trunk@153 801c6759-fa7c-4059-a304-17956f83a07c
25 lines
1019 B
Matlab
Executable File
25 lines
1019 B
Matlab
Executable File
% ##################################################################################
|
|
% ## Funktion [H, W] = ldtft(h, N) ##
|
|
% ##################################################################################
|
|
% DTFT Berechnet die DTFT an N aequidistanten Frequenzstuetzstellen.
|
|
% Aufruf: [H, W] = ldtft(h, N)
|
|
% h : Eingabevektor der Laenge L
|
|
% N : Anzahl der Frequenzen im Intervall [-pi,pi); (N >= L)
|
|
% H : DTFT Werte (komplexwertig)
|
|
% W : Vektor der Stuetzstellen, an denen die DTFT berechnet wurde
|
|
|
|
function [H, W] = ldtft(h, N)
|
|
|
|
N = fix(N);
|
|
L = length(h);
|
|
h = h(:); % nur Vektoren
|
|
if( N < L )
|
|
error('DTFT: Anzahl Datenwerte muss kleiner sein als Anzahl Stuetzstellen')
|
|
end;
|
|
W = (2*pi/N) * [ 0:(N-1) ]';
|
|
mid = ceil(N/2) + 1;
|
|
W(mid:N) = W(mid:N) - 2*pi; % <--- Verschiebung [pi,2pi) to [-pi,0)
|
|
W = fftshift(W);
|
|
H = fftshift( fft( h, N ) ); % <--- Verschiebung der negativen Frequenzen
|
|
% ##### EOF #####
|