WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Diskrete Fouriertransformation

 

Sebi06

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2010, 18:22     Titel: Diskrete Fouriertransformation
  Antworten mit Zitat      
Guten Tag miteinander!

Ich habe eine Aufgabe, bei der ich die diskrete Fouriertransformation in Matlab implementieren sollte, wobei der Wertevektor (f_r)^{n-1}_{r=0} eingegeben und die Fourier-, Kosinus-, Sinuskoeffizienten ~f_r, Ã_m, ~B_m und die grafische Darstellung des trigonometrischen Polynoms T(t) (*) ausgegeben werden sollte.

(*) http://www.matheboard.de/attachment.....tid=14134&thumbnail=1

Ich habe dazu folgenden Kern-Code verwendet:
Code:
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!
(Was ich auch noch nicht zufriedenstellend hingekriegt habe, ist die Ausgabe - deshalb ist diese im angehängten Code auch nicht vollständig).

Besten Dank für die Hilfe und einen schönen Abend!


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.