<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AB-WebLog.com&#187; Sinus</title>
	<atom:link href="http://www.ab-weblog.com/de/schlagwort/sinus/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ab-weblog.com/de</link>
	<description>Andreas Breitschopp</description>
	<lastBuildDate>Mon, 23 Nov 2015 08:51:46 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Einfacher Sinus-Generator für .NET</title>
		<link>http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/</link>
		<comments>http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 12:08:56 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Mathematik]]></category>
		<category><![CDATA[Sinus]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/de/?p=125</guid>
		<description><![CDATA[In diesem Artikel möchte ich zeigen, wie man einen einfachen Sinus-Generator in .NET erstellen kann. Zunächst ein Quelltextausschnitt, danach erkläre ich, was es damit aufsich hat: const double frequency = 1000; const double amplitude = 20000; const long sampleRate = &#8230; <a href="http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In diesem Artikel möchte ich zeigen, wie man einen einfachen Sinus-Generator in .NET erstellen kann.</p>
<p>Zunächst ein Quelltextausschnitt, danach erkläre ich, was es damit aufsich hat:</p>
<pre class="brush: csharp; gutter: true">const double frequency	= 1000;
const double amplitude	= 20000;
const long sampleRate	= 44100;
const int durationSec	= 5;

long sampleCount = sampleRate * durationSec;

double timeStep = 1.0 / (double)sampleRate;

double time = 0;
int[] values = new int[sampleCount];
for (long i = 0; i &lt; sampleCount; i++) {
	values[i] = (int)(amplitude * Math.Sin(2 * Math.PI * frequency * time));
	time = time + timeStep;
}</pre>
<p>Gut, nun also ein paar Erklärungen:</p>
<ul>
<li>Zeilen 1-4: Einige Konstanten, die geändert werden können, um z. B. die Frequenz anzupassen.<br />
<em>Hinweis:</em> Die Frequenz kann maximal die Hälfte der Abtastrate betragen.</li>
<li>Zeile 6: Berechnung der Anzahl an Abtastpunkten.</li>
<li>Zeile 8: Berechnung der Zeit zwischen zwei Abtastpunkten.</li>
<li>Zeilen 10-11: Ein paar Variablen-Initialisierungen.</li>
<li>Zeilen 12-15: Hier wird schlussendlich der Wert für jeden Abtastpunkt berechnet.</li>
</ul>
<p>Und nun noch der entsprechende Quelltext für Visual Basic .NET:</p>
<pre class="brush: vbnet; gutter: true">const frequency as double		= 1000
const amplitude as double		= 20000
const sampleRate As Long		= 44100
const durationSec As Integer	= 5

Dim sampleCount As Long
sampleCount = sampleRate * durationSec

Dim timeStep As Double
timeStep = 1.0 / sampleRate

Dim time As Double = 0
Dim values(0 To sampleCount - 1) As Integer
For i As Long = 0 To sampleCount - 1
	values(i) = amplitude * Math.Sin(2 * Math.PI * frequency * time)
	time = time + timeStep
Next i</pre>
<p>Um das Ganze abzuspielen, kann man nun entweden einen API-Aufruf wie <em>PlaySound</em> (von <em>winmm.dll</em>) oder die Lösung <a title="Article about .NET sound class" href="http://www.codeproject.com/KB/audio-video/CPIAudio.aspx" target="_blank">dieses super Artikels</a> (Englisch) verwenden.</p>
<p>Haben Sie auch bereits einmal einen Sinus in .NET generieren müssen?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/de/einfacher-sinus-generator-fuer-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->