Fouriertransformation

Neue Frage »

Sebi06 Auf diesen Beitrag antworten »
Fouriertransformation
Guten Tag, liebe Mathe-Freunde!

Ich habe eine Aufgabe, bei der ich die diskrete Fouriertransformation in Matlab implementieren sollte, wobei der Wertevektor eingegeben und die Fourier-, Kosinus-, Sinuskoeffizienten und die grafische Darstellung des trigonometrischen Polynoms T(t) (*) ausgegeben werden sollte.

(*) : [attach]14134[/attach]

Ich habe dazu den folgenden Kern-Code verwendet:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
clear all
close all
f0 = 5/(256);
f02 = 6/(256);
x = sin(2 * pi *[0:256-1] * f0) + 0.5*sin(2 * pi *[0:256-1] * (f02)); %
%Test-Signal
%x = exp(-j*2*pi*[0:64-1]*f0)/2;
K = 4; % Zoom-Faktor
begin = 0;
sig = x;
N = length(sig)/K; % Teilintervall
specZoom = zeros(1,N); % Zoom-Spektrum
specAliasing = specZoom;
fAchseZ = begin/K:1/length(sig):begin/K + (N-1)/length(sig);
for m = 1:K % Zoom-Faktor
sig(m:K:length(sig));
temp(m,:) = fft(sig(m:K:length(sig)))/N;
tempPhaseKor(m,:) = temp(m,:) .* exp(-j*2*pi*([0:N-1]+begin*N)*m/(K*N));
specZoom = specZoom + (temp(m,:).* exp(-j*2*pi*([0:N-1]+begin*N)*m/(K*N)))/K;
specAliasing = specAliasing + temp(m,:)/K;
end
figure(1)
fAchseZ = begin/K:1/length(sig):begin/K + (N-1)/length(sig);
stem(fAchseZ, abs((specZoom))); grid
title('Zoom - Spektrum')
xlabel('f/fa')
figure(2)
fAchse= -0.5: 1/length(x):0.5-1/length(x);
X = fftshift(fft(x))/length(sig);
stem( fAchse, abs(X), 'r');grid
title('Gesamtes Spektrum')
xlabel('f/fa')
figure(3)
compass((temp(:,59))); title('ohne Phasenkorrektur')
grid
figure(4)
compass((tempPhaseKor(:,59)),'b'); title('mit Phasenkorrektur')
grid
figure(5)
stem(fAchseZ, abs(specAliasing));grid; title('Zoom-DFT ohne Phasenkorrektur')


Nun habe ich die Aufgabe aber nochmals durchgeschaut, und es steht, dass man keine vorimplementierten (Matlab-)Funktionen verwenden soll..was ich hier aber (mit fft) gemacht habe..
Leider bin ich noch nicht dahinter gekommen, wie ich den Code sonst - also ohne vorimplementierten Funktionen - schreiben könnte.
Deshalb wäre ich um gute Tipps oder einen Lösungsvorschlag sehr dankbar!

Liebe Grüsse und einen schönen Tag,
Sebi
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »