<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Fourier Transformation Fehler [gelöst]]]></title><description><![CDATA[<p>Hi C++ und Mathe Profis,<br />
ich hoffe das ich hier richtig bin.<br />
Ich schreibe ein Programm in dem eine Fourier Transformation an einer Sprungfunktion durchgeführt werden soll.<br />
Die Höhe der Amplitude (A), die Anzahl der Perioden (T) und die Anzahl der Sinusschwingungen (x) der Fouriertransformation sollen gewählt werden können.<br />
Die Ausgabe der Ergebnisse erfolgt in einer Datei.<br />
Das Programm besteht bis jetzt im wesentlichem aus einer Äußeren Schleife die durch die Schrittweite auf der Zeitachse bestimmt wird (Δt=T/(10*x-1) und einer Inneren Schleife zur Berechnung der Summenanteile der Transformation.</p>
<p>Bis jetzt konnte ich herausfinden das es wohl an der Sinusfunktion liegt das viel zu hohe Werte ausgegeben werden.<br />
Die ausgegebenen Werte sollten ja zwischen 0 und dem Amplitudenwert liegen.</p>
<p>Ich hoffe das der Quelltext soweit gut genug gekürzt ist und jemand Rat weiß...<br />
vielen dank schonmal!</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;math.h&gt;
#include &lt;iomanip&gt;

using namespace std;

const float pi=3.14159;
double A,B,T,F,y,t=0.0,i,x;
int n;

int main()
{

	std::fstream fstreamobj;

	fstreamobj.open(&quot;ausgabe.txt&quot;,std::ios::out|std::ios::trunc);

	//Wertabfrage und Eingabe
	cout&lt;&lt;&quot;geben sie einen Amplitudenwert ein&quot;&lt;&lt;endl;
	cin&gt;&gt;A;
	cout&lt;&lt;&quot;geben sie einen Periodenwert ein&quot;&lt;&lt;endl;
	cin&gt;&gt;T;
	cout&lt;&lt;&quot;geben sie die Anzahl der Schwingungen ein&quot;&lt;&lt;endl;
	cin&gt;&gt;x;

	fstreamobj&lt;&lt;setw(15)&lt;&lt;&quot;Amplitude&quot;&lt;&lt;setw(15)&lt;&lt;&quot;Zeitschritt&quot;&lt;&lt;std::endl
&lt;&lt;&quot;==============================&quot;&lt;&lt;std::endl;

	//Schleife zur Berechnung der y(t) Werte
	for (;t&lt;=2.0*T;t+=(T/(10.0*(2.0*x-1.0))))
	{

	i=1.0;

	for(n=1;n&lt;=x;n+=1)
{

	//Fourier Transformation Summenanteil
	B+=((1.0/i)*sin(i*(2*pi/T)*t));

	//cout&lt;&lt;B&lt;&lt;endl;
	i+=2.0;

}

	//Fouriertransformation 
	y=(A/2.0)+((2.0*A)/pi)*B;

	//Bildschirmausgabe
	cout&lt;&lt;setw(10)&lt;&lt;y&lt;&lt;&quot;;&quot;&lt;&lt;setw(10)&lt;&lt;t&lt;&lt;&quot;;&quot;&lt;&lt;endl;

	//Dateiausgabe
	fstreamobj&lt;&lt;setw(14)&lt;&lt;y&lt;&lt;&quot;;&quot;&lt;&lt;setw(14)&lt;&lt;t&lt;&lt;&quot;;&quot;&lt;&lt;std::endl;
}

	//Prüfung ob bei durchgeführten Stream-operationen ein Fehler aufgetreten ist
	std::cout&lt;&lt;&quot;Ausgabe Stream Fehler: &quot;&lt;&lt;fstreamobj.fail()&lt;&lt;std::endl;

	//Lösen der Filestreamobjekte vom Stream (Schließen)
	fstreamobj.close();

	return 0;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/337679/fourier-transformation-fehler-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 19:44:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337679.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Apr 2016 18:26:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fourier Transformation Fehler [gelöst] on Tue, 19 Apr 2016 19:28:39 GMT]]></title><description><![CDATA[<p>Hi C++ und Mathe Profis,<br />
ich hoffe das ich hier richtig bin.<br />
Ich schreibe ein Programm in dem eine Fourier Transformation an einer Sprungfunktion durchgeführt werden soll.<br />
Die Höhe der Amplitude (A), die Anzahl der Perioden (T) und die Anzahl der Sinusschwingungen (x) der Fouriertransformation sollen gewählt werden können.<br />
Die Ausgabe der Ergebnisse erfolgt in einer Datei.<br />
Das Programm besteht bis jetzt im wesentlichem aus einer Äußeren Schleife die durch die Schrittweite auf der Zeitachse bestimmt wird (Δt=T/(10*x-1) und einer Inneren Schleife zur Berechnung der Summenanteile der Transformation.</p>
<p>Bis jetzt konnte ich herausfinden das es wohl an der Sinusfunktion liegt das viel zu hohe Werte ausgegeben werden.<br />
Die ausgegebenen Werte sollten ja zwischen 0 und dem Amplitudenwert liegen.</p>
<p>Ich hoffe das der Quelltext soweit gut genug gekürzt ist und jemand Rat weiß...<br />
vielen dank schonmal!</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;math.h&gt;
#include &lt;iomanip&gt;

using namespace std;

const float pi=3.14159;
double A,B,T,F,y,t=0.0,i,x;
int n;

int main()
{

	std::fstream fstreamobj;

	fstreamobj.open(&quot;ausgabe.txt&quot;,std::ios::out|std::ios::trunc);

	//Wertabfrage und Eingabe
	cout&lt;&lt;&quot;geben sie einen Amplitudenwert ein&quot;&lt;&lt;endl;
	cin&gt;&gt;A;
	cout&lt;&lt;&quot;geben sie einen Periodenwert ein&quot;&lt;&lt;endl;
	cin&gt;&gt;T;
	cout&lt;&lt;&quot;geben sie die Anzahl der Schwingungen ein&quot;&lt;&lt;endl;
	cin&gt;&gt;x;

	fstreamobj&lt;&lt;setw(15)&lt;&lt;&quot;Amplitude&quot;&lt;&lt;setw(15)&lt;&lt;&quot;Zeitschritt&quot;&lt;&lt;std::endl
&lt;&lt;&quot;==============================&quot;&lt;&lt;std::endl;

	//Schleife zur Berechnung der y(t) Werte
	for (;t&lt;=2.0*T;t+=(T/(10.0*(2.0*x-1.0))))
	{

	i=1.0;

	for(n=1;n&lt;=x;n+=1)
{

	//Fourier Transformation Summenanteil
	B+=((1.0/i)*sin(i*(2*pi/T)*t));

	//cout&lt;&lt;B&lt;&lt;endl;
	i+=2.0;

}

	//Fouriertransformation 
	y=(A/2.0)+((2.0*A)/pi)*B;

	//Bildschirmausgabe
	cout&lt;&lt;setw(10)&lt;&lt;y&lt;&lt;&quot;;&quot;&lt;&lt;setw(10)&lt;&lt;t&lt;&lt;&quot;;&quot;&lt;&lt;endl;

	//Dateiausgabe
	fstreamobj&lt;&lt;setw(14)&lt;&lt;y&lt;&lt;&quot;;&quot;&lt;&lt;setw(14)&lt;&lt;t&lt;&lt;&quot;;&quot;&lt;&lt;std::endl;
}

	//Prüfung ob bei durchgeführten Stream-operationen ein Fehler aufgetreten ist
	std::cout&lt;&lt;&quot;Ausgabe Stream Fehler: &quot;&lt;&lt;fstreamobj.fail()&lt;&lt;std::endl;

	//Lösen der Filestreamobjekte vom Stream (Schließen)
	fstreamobj.close();

	return 0;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2493521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493521</guid><dc:creator><![CDATA[1.4matze]]></dc:creator><pubDate>Tue, 19 Apr 2016 19:28:39 GMT</pubDate></item><item><title><![CDATA[Reply to Fourier Transformation Fehler [gelöst] on Tue, 19 Apr 2016 18:46:08 GMT]]></title><description><![CDATA[<p>Welchen Wert hat B in Zeile 42?</p>
<p>Deine Formatierung ist nicht schön.<br />
Warum ist pi ein <code>float</code> (und kein <code>double</code> )?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493522</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Tue, 19 Apr 2016 18:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to Fourier Transformation Fehler [gelöst] on Tue, 19 Apr 2016 18:58:14 GMT]]></title><description><![CDATA[<p>Entschuldige das bitte,<br />
ich bin noch stark am lernen das ist etwa mein 10. Programm.</p>
<p>Bei pi habe ich das noch nicht geändert da ich dachte das würde mich nicht so viel Zeit bei solch einem Programm kosten oder ist das schon schlimm?</p>
<p>B hat noch keinen Wert doch auch wenn ich ihm in der Deklaration 0 zuweise ändert das leider nichts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493523</guid><dc:creator><![CDATA[1.4matze]]></dc:creator><pubDate>Tue, 19 Apr 2016 18:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to Fourier Transformation Fehler [gelöst] on Tue, 19 Apr 2016 19:19:59 GMT]]></title><description><![CDATA[<p>Jetzt muss ich mich natürlich wieder mal entschuldigen bei Ihnen!<br />
Klar ich muss in der ersten Schleife B immer wieder auf = 0 setzen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>so gehts...</p>
<p>vielen dank für den Denkanstoß! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;math.h&gt;
#include &lt;iomanip&gt;

using namespace std;

const float pi=3.14159;
double A,B=0,T,F,y,t=0.0,i,x;
int n;

int main()
{

	std::fstream fstreamobj;

	fstreamobj.open(&quot;ausgabe.txt&quot;,std::ios::out|std::ios::trunc);

	//Wertabfrage und Eingabe
	cout&lt;&lt;&quot;geben sie einen Amplitudenwert ein&quot;&lt;&lt;endl;
	cin&gt;&gt;A;
	cout&lt;&lt;&quot;geben sie einen Periodenwert ein&quot;&lt;&lt;endl;
	cin&gt;&gt;T;
	cout&lt;&lt;&quot;geben sie die Anzahl der Schwingungen ein&quot;&lt;&lt;endl;
	cin&gt;&gt;x;

	fstreamobj&lt;&lt;setw(15)&lt;&lt;&quot;Amplitude&quot;&lt;&lt;setw(15)&lt;&lt;&quot;Zeitschritt&quot;&lt;&lt;std::endl
			&lt;&lt;&quot;==============================&quot;&lt;&lt;std::endl;

		//Schleife zur Berechnung der y(t) Werte
		for (;t&lt;=2.0*T;t+=(T/(10.0*(2.0*x-1.0))))
		{

		i=1.0;
		B=0;

			for(n=1;n&lt;=x;n+=1)
			{

				//Fourier Transformation Summenanteil
				B+=((1.0/i)*sin(i*(2*pi/T)*t));

				//cout&lt;&lt;B&lt;&lt;endl;
				i+=2.0;

			}

		//Fouriertransformation 
		y=(A/2.0)+((2.0*A)/pi)*B;

		//Bildschirmausgabe
		cout&lt;&lt;setw(10)&lt;&lt;y&lt;&lt;&quot;;&quot;&lt;&lt;setw(10)&lt;&lt;t&lt;&lt;&quot;;&quot;&lt;&lt;endl;

		//Dateiausgabe
		fstreamobj&lt;&lt;setw(14)&lt;&lt;y&lt;&lt;&quot;;&quot;&lt;&lt;setw(14)&lt;&lt;t&lt;&lt;&quot;;&quot;&lt;&lt;std::endl;
		}

	//Prüfung ob bei durchgeführten Stream-operationen ein Fehler aufgetreten ist
	std::cout&lt;&lt;&quot;Ausgabe Stream Fehler: &quot;&lt;&lt;fstreamobj.fail()&lt;&lt;std::endl;

	//Lösen der Filestreamobjekte vom Stream (Schließen)
	fstreamobj.close();

	return 0;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2493524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493524</guid><dc:creator><![CDATA[1.4matze]]></dc:creator><pubDate>Tue, 19 Apr 2016 19:19:59 GMT</pubDate></item><item><title><![CDATA[Reply to Fourier Transformation Fehler [gelöst] on Wed, 20 Apr 2016 04:20:28 GMT]]></title><description><![CDATA[<p>1.4matze schrieb:</p>
<blockquote>
<p>B hat noch keinen Wert doch auch wenn ich ihm in der Deklaration 0 zuweise ...</p>
</blockquote>
<p>Das ist dann eine Definition mit Initialsierung.</p>
<p>Bei einer Deklaration kann man keinen Wert zuweisen (, da dabei kein Speicher belegt wird).<br />
Die Definition schließt die Deklaration mit ein, aber nicht umgekehrt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493541</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Wed, 20 Apr 2016 04:20:28 GMT</pubDate></item><item><title><![CDATA[Reply to Fourier Transformation Fehler [gelöst] on Wed, 20 Apr 2016 17:50:59 GMT]]></title><description><![CDATA[<p>ok aber das ist reine Formulierungssache?</p>
<p>Wenn ich einer Variablen bei der Deklaration einen Wert zuweise dann heisst es nur Definition?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493598</guid><dc:creator><![CDATA[1.4matze]]></dc:creator><pubDate>Wed, 20 Apr 2016 17:50:59 GMT</pubDate></item><item><title><![CDATA[Reply to Fourier Transformation Fehler [gelöst] on Mon, 25 Apr 2016 18:19:38 GMT]]></title><description><![CDATA[<p>Eine Deklaration ist nur die Bekanntmachung des Namens. Eine Definition ist eine Deklaration mit Belegung des Speichers. Wenn auch gleich ein Wert mitgegeben wird ist das eine Initialisierung, also eine Definition mit Initialisierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494037</guid><dc:creator><![CDATA[Schrauber]]></dc:creator><pubDate>Mon, 25 Apr 2016 18:19:38 GMT</pubDate></item></channel></rss>