├── middleware.js ├── public ├── fourier-guide.png ├── trig-sum-proof.png └── right-triangle.de.png ├── postcss.config.js ├── pages ├── references.en.mdx ├── appendix │ ├── 1-sine-angle-sum.en.mdx │ ├── 2-cosine-angle-sum.en.mdx │ ├── fourier-series-examples.en.mdx │ ├── _meta.de.json │ ├── _meta.en.json │ ├── fourier-series-examples.de.mdx │ ├── 1-sine-angle-sum.de.mdx │ └── 2-cosine-angle-sum.de.mdx ├── 1-complex-plane.en.mdx ├── 4-fourier-series.en.mdx ├── 5-fourier-transform.en.mdx ├── 3-periodic-functions.en.mdx ├── 2-complex-exponentials.en.mdx ├── _app.js ├── _meta.en.json ├── _meta.de.json ├── _document.js ├── about.en.mdx ├── about.de.mdx ├── references.de.mdx ├── index.en.mdx ├── index.de.mdx ├── 2-complex-exponentials.de.mdx ├── 3-periodic-functions.de.mdx ├── 1-complex-plane.de.mdx └── 5-fourier-transform.de.mdx ├── .gitignore ├── next-env.d.ts ├── next.config.js ├── tailwind.config.js ├── globals.css ├── components ├── fourier-series │ ├── SignalPlotter.tsx │ ├── SingleSignal.tsx │ ├── Harmonics.tsx │ ├── PeriodicSignal.tsx │ ├── ScrollingFunction.tsx │ └── FourierSeries.tsx ├── general │ ├── AutoMath.tsx │ ├── MultipleChoiceQuestion.tsx │ └── QuestionAnswer.tsx ├── periodic-functions │ ├── SampleAddition.tsx │ ├── UnitCircle.tsx │ └── InteractiveSin.tsx ├── LazyWrapper.jsx ├── complex-numbers │ ├── PolarCoordinates.tsx │ ├── ComplexPlaneRotation.tsx │ ├── ComplexPlaneAdder.tsx │ ├── ComplexExponentialsSum.tsx │ ├── ComplexPowers.tsx │ ├── ComplexExponential.tsx │ └── ComplexConjugates.tsx └── fourier-transform │ ├── FixedProductIntegral.tsx │ └── WaveCheck.tsx ├── tsconfig.json ├── README.md ├── package.json ├── utils └── general.tsx ├── theme.config.jsx └── LICENSE /middleware.js: -------------------------------------------------------------------------------- 1 | export { locales as middleware } from 'nextra/locales' 2 | -------------------------------------------------------------------------------- /public/fourier-guide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tobotis/fourier-guide/HEAD/public/fourier-guide.png -------------------------------------------------------------------------------- /public/trig-sum-proof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tobotis/fourier-guide/HEAD/public/trig-sum-proof.png -------------------------------------------------------------------------------- /public/right-triangle.de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tobotis/fourier-guide/HEAD/public/right-triangle.de.png -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /pages/references.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English) 4 | -------------------------------------------------------------------------------- /pages/appendix/1-sine-angle-sum.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English) 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .next 3 | .DS_Store 4 | yarn-error.log 5 | .prettierignore 6 | dist 7 | examples 8 | packages 9 | out 10 | .vscode 11 | next-env.d.ts -------------------------------------------------------------------------------- /pages/appendix/2-cosine-angle-sum.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English) 4 | -------------------------------------------------------------------------------- /pages/appendix/fourier-series-examples.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English) 4 | -------------------------------------------------------------------------------- /pages/appendix/_meta.de.json: -------------------------------------------------------------------------------- 1 | { 2 | "1-sine-angle-sum": "Sinus-Winkelsumme", 3 | "2-cosine-angle-sum": "Kosinus-Winkelsumme", 4 | "fourier-series-examples": "Beispiele für Fourier-Reihen" 5 | } 6 | -------------------------------------------------------------------------------- /pages/appendix/_meta.en.json: -------------------------------------------------------------------------------- 1 | { 2 | "1-sine-angle-sum": "Sine-Angle-Sum", 3 | "2-cosine-angle-sum": "Cosine-Angle-Sum", 4 | 5 | "fourier-series-examples": "Examples for Fourier-Series" 6 | 7 | 8 | } 9 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /pages/1-complex-plane.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English): add a translation on [Github](https://github.com/Tobotis/fourier-guide/blob/main/pages/1-complex-plane.en.mdx) 4 | -------------------------------------------------------------------------------- /pages/4-fourier-series.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English): add a translation on [Github](https://github.com/Tobotis/fourier-guide/blob/main/pages/4-fourier-series.en.mdx) 4 | -------------------------------------------------------------------------------- /pages/5-fourier-transform.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English): add a translation on [Github](https://github.com/Tobotis/fourier-guide/blob/main/pages/5-fourier-transform.en.mdx) 4 | -------------------------------------------------------------------------------- /pages/3-periodic-functions.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English): add a translation on [Github](https://github.com/Tobotis/fourier-guide/blob/main/pages/3-periodic-functions.en.mdx) 4 | -------------------------------------------------------------------------------- /pages/2-complex-exponentials.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | Translation missing (German $\to$ English): add a translation on [Github](https://github.com/Tobotis/fourier-guide/blob/main/pages/2-complex-exponentials.en.mdx) 4 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | const withNextra = require("nextra")({ 2 | theme: "nextra-theme-docs", 3 | themeConfig: "./theme.config.jsx", 4 | latex: true, 5 | }); 6 | 7 | module.exports = withNextra({ 8 | i18n: { 9 | locales: ["en", "de"], 10 | defaultLocale: "en", 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | './pages/**/*.{html,js,mdx,jsx}', 5 | './components/**/*.{html,js,jsx,tsx,ts}', 6 | './*.{jsx,tsx}', 7 | ], 8 | theme: { 9 | extend: {}, 10 | }, 11 | plugins: [], 12 | } 13 | -------------------------------------------------------------------------------- /pages/_app.js: -------------------------------------------------------------------------------- 1 | import '../globals.css' 2 | import 'nextra-theme-docs/style.css' 3 | import { Analytics } from '@vercel/analytics/react' 4 | 5 | export default function Nextra({ Component, pageProps }) { 6 | return ( 7 | <> 8 | 9 | 10 | 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /globals.css: -------------------------------------------------------------------------------- 1 | @import "mafs/core.css"; 2 | @import "mafs/font.css"; 3 | @import "katex/dist/katex.min.css"; 4 | @import "tailwindcss/base"; 5 | @import "tailwindcss/components"; 6 | @import "tailwindcss/utilities"; 7 | 8 | .katex-display > .katex { white-space: normal } 9 | .katex-display > .base { margin: 0.25em 0 } 10 | .katex-display { margin: 0.5em 0; } -------------------------------------------------------------------------------- /pages/_meta.en.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "Introduction", 3 | "1-complex-plane": "1. Complex Numbers", 4 | "2-complex-exponentials": "2. Complex Exponentials", 5 | "3-periodic-functions": "3. Periodic Functions", 6 | "4-fourier-series": "4. Fourier Series", 7 | "5-fourier-transform": "5. Fourier Transform", 8 | "appendix":"Appendix", 9 | "references": "References", 10 | "about": { 11 | "type": "page", 12 | "title": "About this project" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /pages/_meta.de.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "Übersicht & Motivation", 3 | "1-complex-plane": "1. Komplexe Zahlen", 4 | "2-complex-exponentials": "2. Komplexe e-Funktion", 5 | "3-periodic-functions": "3. Periodische Funktionen", 6 | "4-fourier-series": "4. Fourier-Reihen", 7 | "5-fourier-transform": "5. Fourier-Transformation", 8 | "appendix":"Anhang", 9 | "references": "Verweise", 10 | "about": { 11 | "type": "page", 12 | "title": "Über dieses Projekt" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /pages/_document.js: -------------------------------------------------------------------------------- 1 | import { Html, Head, Main, NextScript } from 'next/document' 2 | 3 | export default function Document() { 4 | return ( 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | ) 15 | } 16 | -------------------------------------------------------------------------------- /components/fourier-series/SignalPlotter.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | 3 | import { Mafs, Coordinates, Plot, labelPi } from 'mafs' 4 | 5 | interface SignalPlotterProps { 6 | f: (x: number) => number 7 | } 8 | 9 | const SignalPlotter: React.FC = ({ 10 | f, 11 | }: SignalPlotterProps) => { 12 | return ( 13 |
14 | 15 | f(x)} /> 16 | 17 | 18 |
19 | ) 20 | } 21 | 22 | export default SignalPlotter 23 | -------------------------------------------------------------------------------- /components/general/AutoMath.tsx: -------------------------------------------------------------------------------- 1 | import { BlockMath, InlineMath } from 'react-katex'; 2 | 3 | 4 | interface AutoMathProps { 5 | text: string; 6 | } 7 | 8 | const AutoMath: React.FC = ({ text }) => { 9 | const parts = text.split('$'); 10 | const formattedQuestion = parts.map((part, index) => { 11 | if (index % 2 === 0) { 12 | return {part}; // Normal text 13 | } else { 14 | return ; // Math expression 15 | } 16 | }); 17 | 18 | return

{formattedQuestion}

; 19 | }; 20 | 21 | export default AutoMath -------------------------------------------------------------------------------- /components/periodic-functions/SampleAddition.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | 3 | import { Mafs, Coordinates, Plot, labelPi } from 'mafs' 4 | 5 | const SampleAddition = () => { 6 | return ( 7 | 8 | 10 | Math.sin(2 * Math.PI * x) + 11 | 2 * Math.sin(4 * Math.PI * x) + 12 | Math.sin(9 * 2 * Math.PI * x) 13 | } 14 | maxSamplingDepth={15} 15 | /> 16 | 17 | 18 | 19 | ) 20 | } 21 | 22 | export default SampleAddition 23 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "noEmit": true, 4 | "module": "esnext", 5 | "target": "ES2021", 6 | "moduleResolution": "node", 7 | "jsx": "preserve", 8 | "strict": true, 9 | "noImplicitAny": true, 10 | "checkJs": true, 11 | "allowJs": true, 12 | "lib": ["dom", "dom.iterable", "esnext"], 13 | "skipLibCheck": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "incremental": true, 16 | "esModuleInterop": true, 17 | "resolveJsonModule": true, 18 | "isolatedModules": true 19 | }, 20 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], 21 | "exclude": ["node_modules"] 22 | } 23 | -------------------------------------------------------------------------------- /components/LazyWrapper.jsx: -------------------------------------------------------------------------------- 1 | import { useInView } from "react-intersection-observer"; 2 | import dynamic from "next/dynamic"; 3 | 4 | const LazyWrapper = ({ component: ComponentImport, props = {}, fallback =
Loading...
}) => { 5 | const { ref, inView } = useInView({ 6 | threshold: 0.1, // Adjust as necessary 7 | triggerOnce: true, // Render only once when in view 8 | }); 9 | 10 | const DynamicComponent = dynamic(() => ComponentImport().then(mod => mod.default), { 11 | ssr: false, // Disable SSR for heavy components 12 | }); 13 | 14 | return ( 15 |
16 | {inView ? : fallback} 17 |
18 | ); 19 | }; 20 | 21 | export default LazyWrapper; 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![[Fourier-Guide](fourier.tobotis.com)](./public/fourier-guide.png) 2 | 3 | # Fourier Guide 4 | 5 | A interactive guide to the **Fourier-Transform** on the basis of highschool knowledge. 6 | 7 | ## Authors 8 | 9 | - Tobias Steinbrecher 10 | - Florian Reinecke 11 | 12 | ## References 13 | 14 | - Theme: [Nextra](https://nextra.vercel.app/) © 2023 The Nextra Project. (MIT License) 15 | - Interactive Math Components: [Mafs](https://mafs.dev/) © 2023 Steven Petryk. (MIT License) 16 | 17 | ## License 18 | 19 | Creative Commons License
This 20 | work is licensed under a 21 | Creative 22 | Commons Attribution-NonCommercial-ShareAlike 4.0 International License. 23 | -------------------------------------------------------------------------------- /components/fourier-series/SingleSignal.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { Mafs, Plot, Coordinates, Text, Line } from 'mafs' 3 | const SingleSignal: React.FC = () => { 4 | return ( 9 | 13 | 15 | x < 1 && x > -1 16 | ? -1 * (x + 1) * (Math.pow(x, 2) + 1) * (x - 1) 17 | : 0 18 | } 19 | /> 20 | 21 | 22 | 23 | a 24 | 25 | 26 | b 27 | 28 | 29 | ) 30 | } 31 | export default SingleSignal 32 | -------------------------------------------------------------------------------- /pages/about.en.mdx: -------------------------------------------------------------------------------- 1 | # About this project 2 | 3 | This project was started as part of the **Seminar Course: Astronomy and Astrophyics** and was intended to provide an introduction to **Fourier Analysis** for students. 4 | 5 | The information was collected, implemented and written by _us_ (two students in the 13th grade). 6 | We welcome improvements, feedback and notifications of possible errors. 7 | 8 | ## Content 9 | 10 | - The content is based on many different sources and self-made explanations. 11 | 12 | Specific references can be found at [references](./references) 13 | 14 | ## Translations 15 | 16 | ### English 17 | 18 | - [**HajFunk**](https://github.com/HajFunk) 19 | - [**Tobotis**](https://github.com/Tobotis) 20 | 21 | ## Dependencies 22 | 23 | ###### Layout & Desingn 24 | 25 | The _Documentation-Theme_ of the [**Next.js**](https://nextjs.org/) framework [**Nextra**](https://nextra.site/) is used. 26 | 27 | ###### Mathmatical components 28 | 29 | The basis is the [**React**](https://reactjs.org/)-component library [**Mafs**](https://mafs.dev/) (© 2023 Steven Petryk). 30 | 31 | ###### Deployment 32 | 33 | [**Vercel**](https://vercel.com/) 34 | 35 | ###### Project-Management & Version-Control: 36 | 37 | [**GitHub**](https://github.com/Tobotis/fft-introduction) 38 | -------------------------------------------------------------------------------- /components/complex-numbers/PolarCoordinates.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Coordinates, 5 | useMovablePoint, 6 | Theme, 7 | Vector, 8 | Text, 9 | Plot, 10 | vec 11 | } from 'mafs' 12 | 13 | const PolarCoordinates = () => { 14 | const tip = useMovablePoint([2, 1], { 15 | color: Theme.indigo, 16 | constrain: (point)=>{ 17 | var norm = vec.mag(point); 18 | if(norm > 1) { 19 | return point; 20 | } 21 | else { 22 | return vec.withMag(point,1) 23 | } 24 | } 25 | }) 26 | return ( 27 | 28 | { 31 | return y.toString() + 'i' 32 | }, 33 | }} 34 | /> 35 | [Math.cos(t)*0.8,Math.sin(t)*0.8]} color={Theme.indigo}/> 38 | {tip.element} 39 | 40 | 41 | {'θ ≈ ' + 42 | ((Math.atan2(tip.y, tip.x) * 180) / Math.PI).toFixed(2) + 43 | '°'} 44 | 45 | 46 | ) 47 | } 48 | export default PolarCoordinates 49 | -------------------------------------------------------------------------------- /components/fourier-series/Harmonics.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | 3 | import { Mafs, Plot } from 'mafs' 4 | import { InlineMath } from 'react-katex' 5 | 6 | const Harmonics = () => { 7 | const [period, setPeriod] = React.useState(Math.PI) 8 | return ( 9 | <> 10 |
11 | {'T= ' + period.toFixed(1)}:{' '} 12 | { 20 | setPeriod(+event.target.value) 21 | }} 22 | /> 23 |
24 | 29 | Math.sin((2 * Math.PI * x) / period)} 31 | /> 32 | Math.sin((2 * (2 * Math.PI * x)) / period) - 2.5} 34 | /> 35 | Math.sin((3 * (2 * Math.PI * x)) / period) - 5} 37 | /> 38 | Math.sin((4 * (2 * Math.PI * x)) / period) - 7.5} 40 | /> 41 | 42 | 43 | ) 44 | } 45 | 46 | export default Harmonics 47 | -------------------------------------------------------------------------------- /pages/about.de.mdx: -------------------------------------------------------------------------------- 1 | # Über dieses Projekt 2 | 3 | Diese Projekt ist im Rahmen des **Seminarfaches: Astronomie und Astrophysik** entstanden und soll Schülern eine Einführung in die **Fourier-Analysis** bereitstellen. 4 | 5 | Der Inhalt wurde von uns (zwei Schülern aus dem 13. Jahrgang) zusammengestellt, verfasst und implementiert. 6 | Wir freuen uns über Verbesserungen, Feedback und Hinweise auf mögliche Fehler. 7 | 8 | ## Inhalt 9 | 10 | - Der Inhalt basiert auf vielen verschiedenen Quellen und ist einen Sammlung von zusammengesuchten und selbsterstellten Erklärungen. 11 | 12 | spezifische Verweise sind unter [Verweise](./references) aufgelistet: 13 | 14 | ## Übersetzungen 15 | 16 | ### Englisch 17 | 18 | - [**Tobotis**](https://github.com/Tobotis) 19 | - [**HajFunk**](https://github.com/HajFunk) 20 | 21 | ## Dependencies 22 | 23 | ###### **Layout & Design**: 24 | 25 | Es wird das _Documentation-Theme_ des [**Next.js**](https://nextjs.org/) Frameworks [**Nextra**](https://nextra.site/) verwendet. 26 | 27 | ###### **Mathematische Komponenten**: 28 | 29 | Als Grundlage dient die [**React**](https://reactjs.org/)-Komponenten Bibliothek [**Mafs**](https://mafs.dev/) (© 2023 Steven Petryk). 30 | 31 | ###### **Deployment**: 32 | 33 | [**Vercel**](https://vercel.com/) 34 | 35 | ###### **Projekt-Management & Version-Control**: 36 | 37 | [**GitHub**](https://github.com/Tobotis/fft-introduction) 38 | -------------------------------------------------------------------------------- /components/periodic-functions/UnitCircle.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | - Unit Circle and a rotation vector with length 1 3 | - Creation of sine and cosine curve 4 | */ 5 | 6 | import * as React from "react"; 7 | import { 8 | Mafs, 9 | Point, 10 | Coordinates, 11 | useStopwatch, 12 | Vector, 13 | Plot, 14 | Circle, 15 | Line, 16 | Theme, 17 | labelPi, 18 | } from "mafs"; 19 | 20 | export default function UnitCircleSine() { 21 | const { time, start } = useStopwatch(); 22 | React.useEffect(() => start(), [start]); 23 | let speed = 1 / 5; 24 | return ( 25 | 26 | 31 | 37 | 38 | [t, -Math.sin(t - Math.PI * time * speed)]} 40 | t={[0, 8]} 41 | /> 42 | 50 | 51 | 52 | ); 53 | } 54 | -------------------------------------------------------------------------------- /components/fourier-series/PeriodicSignal.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { Mafs, Plot, Coordinates, } from 'mafs' 3 | const PeriodicSignal: React.FC = () => { 4 | return ( 5 | 6 | 10 | 14 | 16 | x <= -3 && x >= -5 17 | ? -1 * (x + 5) * (Math.pow(x + 4, 2) + 1) * (x + 3) 18 | : 0 19 | } 20 | /> 21 | 23 | x <= -1 && x >= -3 24 | ? -1 * (x + 3) * (Math.pow(x + 2, 2) + 1) * (x + 1) 25 | : 0 26 | } 27 | /> 28 | 30 | x <= 1 && x >= -1 31 | ? -1 * (x + 1) * (Math.pow(x, 2) + 1) * (x - 1) 32 | : 0 33 | } 34 | /> 35 | 37 | x <= 3 && x >= 1 38 | ? -1 * (x - 1) * (Math.pow(x - 2, 2) + 1) * (x - 3) 39 | : 0 40 | } 41 | /> 42 | 44 | x <= 5 && x >= 3 45 | ? -1 * (x - 3) * (Math.pow(x - 4, 2) + 1) * (x - 5) 46 | : 0 47 | } 48 | /> 49 | 50 | ) 51 | } 52 | export default PeriodicSignal 53 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fourier-guide", 3 | "version": "1.0.0", 4 | "description": "An interactive guide to the Fourier-Transform.", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "next", 8 | "start": "next start", 9 | "build": "next build", 10 | "prod": "next export" 11 | }, 12 | "author": "Tobias Steinbrecher", 13 | "license": "CC-BY-NC-SA-4.0", 14 | "dependencies": { 15 | "@matejmazur/react-katex": "^3.1.3", 16 | "@mdx-js/loader": "^2.3.0", 17 | "@mdx-js/react": "^2.3.0", 18 | "@next/mdx": "^13.4.7", 19 | "@use-gesture/react": "^10", 20 | "@vercel/analytics": "^0.1.8", 21 | "autoprefixer": "^10.4.13", 22 | "katex": "^0.16.8", 23 | "lodash": "^4.17.21", 24 | "lodash.range": "^3.2.0", 25 | "lodash.sumby": "^4.6.0", 26 | "mafs": "^0.17.1", 27 | "mathjs": "^11.5.0", 28 | "next": "^12.3.4", 29 | "nextra": "^2.0.1", 30 | "nextra-theme-docs": "^2.0.1", 31 | "react": "^18.2.0", 32 | "react-dom": "^18.2.0", 33 | "react-intersection-observer": "^9.13.1", 34 | "react-katex": "^3.0.1", 35 | "react-markdown": "^8.0.7", 36 | "rehype-katex": "5.0.0", 37 | "remark-math": "4.0.0", 38 | "tiny-invariant": "^1", 39 | "use-resize-observer": "^7 || ^8", 40 | "vec-la": "^1.5.0" 41 | }, 42 | "devDependencies": { 43 | "@types/lodash.range": "^3.2.7", 44 | "@types/lodash.sumby": "^4.6.7", 45 | "@types/node": "18.11.9", 46 | "@types/react": "^18.0.27", 47 | "@types/react-dom": "^18.0.10", 48 | "@types/react-katex": "^3.0.0", 49 | "prettier": "^2.0.5", 50 | "tailwindcss": "^3.2.2", 51 | "typescript": "4.8.4" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /pages/references.de.mdx: -------------------------------------------------------------------------------- 1 | # Verweise 2 | 3 | {/* spellcheck-off */} 4 | Es gibt unglaublich viele weitere Quellen zum Thema der **Fourier-Transformation**. Im Folgenden sind einige interessante Videos und Artikel aufgelistet, durch welche unter Anderem der Inhalt dieses Artikels inspiriert wurde. 5 | 6 | --- 7 | 8 | [(Youtube) Stanford University: Lectures - The Fourier Transforms and its Applications](https://www.youtube.com/playlist?list=PLB24BC7956EE040CD) 9 | 10 | ## Fourier Reihe 11 | 12 | 1. [(Wikipedia) Fourier-Series](https://en.wikipedia.org/wiki/Fourier_series) 13 | 2. [(Youtube) 3Blue1Brown: But what is a Fourier series?](https://www.youtube.com/watch?v=r6sGWTCMz2k) 14 | 3. [Math Libretexts: Complex Exponential Fourier Series]() 15 | 4. [MIT: Fourier Series and Fourier Transforms EECS2 (6.082), Fall 2006](https://web.mit.edu/6.02/www/f2006/handouts/Fourier.pdf) 16 | 17 | ## Fourier Transfomation 18 | 19 | 1. [(Youtube) Veritasium: The Most Important Algorithm Of All Time](https://www.youtube.com/watch?v=nmgFG7PUHfo) (**sehr empfehlenswert**) 20 | 2. [(Youtube) 3Blue1Brown: What is a Fourier-Transform? A visual Introduction](https://www.youtube.com/watch?v=spUNpyF58BY) 21 | 22 | 23 | ## Komplexe Zahlen 24 | 25 | 1. [(Youtube) 3Blue1Brown: Complex number fundamentals](https://www.youtube.com/watch?v=5PcpBw5Hbwo) 26 | 2. [(Youtube) 3Blue1Brown: What is Euler's formula actually saying?](https://www.youtube.com/watch?v=ZxYOEwM6Wbk) 27 | 3. [(Youtube) 3Blue1Brown: Imaginary interest rates](https://www.youtube.com/watch?v=IAEASE5GjdI) 28 | -------------------------------------------------------------------------------- /pages/appendix/fourier-series-examples.de.mdx: -------------------------------------------------------------------------------- 1 | import FourierSeries from '../../components/fourier-series/FourierSeries.tsx' 2 | 3 | ## Beispiele für Fourier-Reihen 4 | 5 | Im Folgenden sind einige Beispiele für Annäherungen durch **Fourier-Reihen** dargestellt. Die Koeffizientenbestimmung erfolgt wie im Abschnitt [_Fourier-Reihen_](../../fourier-analysis/2-fourier-series) hergeleitet, durch das Integrieren der gegeben Funktion $f(t)$. 6 | 7 | ### Sägezahnsignal 8 | 9 | $$ 10 | c_0 = \frac{1}{2} \qquad \text { und } \qquad c_m = \frac{1}{2 m \pi} 11 | $$ 12 | 13 | (x == 0 ? [1 / 2, 0] : [0, 1 / (2 * x * Math.PI)])} 15 | f={(x) => x / 2 - Math.floor(x / 2)} 16 | omega={Math.PI} 17 | yBExtent={[-1, 2]} 18 | show={false} 19 | /> 20 | 21 | ### Periodische Parabeln 22 | 23 | $$ 24 | c_0 = \frac{2}{3} \qquad \text { und } \qquad c_m = \frac{4}{m^2\pi^2 } 25 | $$ 26 | 27 | (x == 0 ? [2 / 3, 0] : [4 / Math.pow(Math.PI * x, 2), 0])} 29 | f={(x) => 2 * Math.pow(x - Math.floor(x / 2) * 2 - 1, 2)} 30 | omega={Math.PI} 31 | yBExtent={[-1, 3]} 32 | xAExtent={[-0.5, 2.5]} 33 | show={false} 34 | /> 35 | 36 | ### Abgeschnittene Sinusschwingung 37 | 38 | $$ 39 | c_0 = \frac{1}{\pi} \qquad \text { und } \qquad c_m = 40 | \begin{cases} 41 | \frac{1}{4}& \text{ wenn } m = 1 \text{ oder } m=-1 \\ 42 | -\frac{1}{\pi m^2 - \pi}& \text{ wenn $m$ gerade}\\ 43 | 0 & \text{ sonst } 44 | \end{cases} 45 | $$ 46 | 47 | 49 | x == 0 50 | ? [1 / Math.PI, 0] 51 | : [ 52 | x % 2 ? 0 : -1 / (Math.PI * Math.pow(x, 2) - Math.PI), 53 | x == 1 || x == -1 ? -x / 4 : 0, 54 | ] 55 | } 56 | f={(x) => (Math.floor(x) % 2 ? 0 : Math.sin(Math.PI * x))} 57 | omega={Math.PI} 58 | yBExtent={[-1, 2]} 59 | show={false} 60 | /> 61 | -------------------------------------------------------------------------------- /components/complex-numbers/ComplexPlaneRotation.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Point, 5 | Coordinates, 6 | Vector, 7 | Text, 8 | Theme, 9 | useMovablePoint, 10 | Circle, 11 | vec 12 | } from 'mafs' 13 | 14 | export default function ComplexPlaneRotation() { 15 | const tip = useMovablePoint([-2, 1], { 16 | color: Theme.indigo, 17 | constrain: (point) => { 18 | const angle = Math.PI / 2 - Math.atan2(...point) 19 | const snap = Math.PI / 2 20 | const roundedAngle = Math.round(angle / snap) * snap 21 | return vec.rotate([-2, 1], roundedAngle + Math.PI) 22 | }, 23 | }) 24 | const calcAttachment = (point: any) => { 25 | if (point[1] > 0) { 26 | return 'n' 27 | } else { 28 | return 's' 29 | } 30 | } 31 | return ( 32 | 33 | { 36 | return y.toString() + 'i' 37 | }, 38 | }} 39 | /> 40 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 60 | {tip.x.toFixed(0) + 61 | (tip.y > 0 ? '+' : '-') + 62 | Math.abs(tip.y).toFixed(0) + 63 | 'i'} 64 | 65 | {tip.element} 66 | 67 | ) 68 | } 69 | -------------------------------------------------------------------------------- /components/fourier-series/ScrollingFunction.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | 3 | import { 4 | Mafs, 5 | Coordinates, 6 | Plot, 7 | useStopwatch, 8 | Point, 9 | } from 'mafs' 10 | 11 | interface ScrollingFunctionProps { 12 | f: (x: number) => number 13 | ak: Array<[number, number, number]> // [Real part, Im part, index] of the coefficients 14 | omega?: number 15 | width?: number 16 | xExtent?: any 17 | yExtent?: any 18 | slow?: number 19 | height?: number 20 | } 21 | 22 | const ScrollingFunction: React.FC = ({ 23 | f, 24 | ak, 25 | omega = (2 * Math.PI) / 5, 26 | xExtent = [-5.5, 5.5], 27 | yExtent = [-3.5, 3.5], 28 | width, 29 | height, 30 | slow = 1, 31 | }: ScrollingFunctionProps) => { 32 | function getRealSum() { 33 | let real = (t: number) => { 34 | let re = 0 35 | let im = 0 36 | for (let index = 0; index < ak.length; index++) { 37 | re += 38 | ak[index][0] * Math.cos(ak[index][2] * t * omega) - 39 | ak[index][1] * Math.sin(ak[index][2] * t * omega) 40 | im += 41 | ak[index][0] * Math.sin(ak[index][2] * t * omega) + 42 | ak[index][1] * Math.cos(ak[index][2] * t * omega) 43 | } 44 | return re 45 | } 46 | return real 47 | } 48 | 49 | const { time, start } = useStopwatch() 50 | React.useEffect(() => start(), [start]) 51 | return ( 52 | 57 | f(x + time * slow)} 59 | opacity={0.5} 60 | minSamplingDepth={15} 61 | /> 62 | (x > 0 ? getRealSum()(x + time * slow) : 0)} 64 | minSamplingDepth={15} 65 | /> 66 | 67 | 68 | 69 | ) 70 | } 71 | 72 | export default ScrollingFunction 73 | -------------------------------------------------------------------------------- /utils/general.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | export function arraysEqual(a: Array, b: Array) { 4 | if (a === b) return true 5 | if (a == null || b == null) return false 6 | if (a.length !== b.length) return false 7 | 8 | // If you don't care about the order of the elements inside 9 | // the array, you should sort both arrays here. 10 | // Please note that calling sort on an array will modify that array. 11 | // you might want to clone your array first. 12 | 13 | for (var i = 0; i < a.length; ++i) { 14 | if (a[i] !== b[i]) return false 15 | } 16 | return true 17 | } 18 | 19 | export type Alignment = 'r' | 'l' | 't' | 'b' | 'tl' | 'tr' | 'br' | 'bl' | 'c' 20 | 21 | export function alignmentToRelativeDeviationFromCenter( 22 | alignment: Alignment 23 | ): Array { 24 | switch (alignment) { 25 | case 'c': 26 | return [0, 0] 27 | case 'r': 28 | return [-0.5, 0] 29 | case 'l': 30 | return [0.5, 0] 31 | case 't': 32 | return [0, -0.5] 33 | case 'b': 34 | return [0, 0.5] 35 | case 'tl': 36 | return [0.5, -0.5] 37 | case 'bl': 38 | return [0.5, 0.5] 39 | case 'tr': 40 | return [-0.5, -0.5] 41 | case 'br': 42 | return [-0.5, 0.5] 43 | default: 44 | return [0, 0] 45 | } 46 | } 47 | 48 | export interface HTMLStyleObject { 49 | transform?: string 50 | width?: string 51 | height?: string 52 | display?: string 53 | verticalAlign?: string 54 | } 55 | 56 | export default function useOnScreen(ref: any) { 57 | const [isIntersecting, setIntersecting] = React.useState(false) 58 | 59 | if (typeof window !== 'undefined') { 60 | const observer = new IntersectionObserver(([entry]) => 61 | setIntersecting(entry.isIntersecting) 62 | ) 63 | React.useEffect(() => { 64 | observer.observe(ref.current) 65 | // Remove the observer as soon as the component is unmounted 66 | return () => { 67 | observer.disconnect() 68 | } 69 | }, []) 70 | } 71 | 72 | return isIntersecting 73 | } 74 | -------------------------------------------------------------------------------- /components/fourier-transform/FixedProductIntegral.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Plot, 5 | Coordinates, 6 | Theme, 7 | Line, 8 | } from 'mafs' 9 | 10 | interface ProductIntegralProps { 11 | minX?: number 12 | maxX: number 13 | omegaA: number 14 | amplitudeA: number 15 | lowerBound: number 16 | upperBound: number 17 | linePos?: number 18 | reInteg: (x: number, omega: number) => number 19 | imInteg: (x: number, omega: number) => number 20 | } 21 | 22 | const ProductIntegral: React.FC = ({ 23 | minX = 0, 24 | maxX, 25 | omegaA, 26 | amplitudeA, 27 | lowerBound, 28 | upperBound, 29 | linePos = 0, 30 | reInteg, 31 | imInteg, 32 | }) => { 33 | function integralValue( 34 | omegaF: number, 35 | omegaExp: number, 36 | amplitudeF: number, 37 | lowerBound: number, 38 | upperBound: number 39 | ): number { 40 | let reInt = reInteg(upperBound, omegaExp) - reInteg(lowerBound, omegaExp) 41 | let imInt = imInteg(upperBound, omegaExp) - imInteg(lowerBound, omegaExp) 42 | 43 | return Math.sqrt(Math.pow(reInt, 2) + Math.pow(imInt, 2)) 44 | } 45 | return ( 46 | 50 | 51 | 53 | integralValue( 54 | omegaA, 55 | 2 * Math.PI * x, 56 | amplitudeA, 57 | lowerBound, 58 | upperBound 59 | ) 60 | } 61 | minSamplingDepth={15} 62 | /> 63 | 68 | {/* Math.abs(1 / (x - 4))} 72 | />*/} 73 | 74 | ) 75 | } 76 | 77 | export default ProductIntegral 78 | -------------------------------------------------------------------------------- /components/fourier-series/FourierSeries.tsx: -------------------------------------------------------------------------------- 1 | import ComplexExponentialsSum from '../complex-numbers/ComplexExponentialsSum' 2 | import ScrollingFunction from './ScrollingFunction' 3 | import { InlineMath } from 'react-katex' 4 | import * as React from 'react' 5 | 6 | interface FourierSeriesProps { 7 | ithC: (x: number) => [number, number] 8 | f: (x: number) => number 9 | omega: number 10 | yBExtent?: [number, number] 11 | xAExtent?: [number, number] 12 | show?: boolean 13 | } 14 | 15 | const FourierSeries = ({ 16 | ithC, 17 | f, 18 | omega, 19 | yBExtent = [-3, 3], 20 | xAExtent = [-2, 2],show=true 21 | }: FourierSeriesProps) => { 22 | let [n, setN] = React.useState(5) 23 | let [ak, setAk] = React.useState>( 24 | generateAk(n) 25 | ) 26 | function generateAk(n: number) { 27 | let a: Array<[number, number, number]> = [] 28 | for (let index = -n; index <= n; index++) { 29 | let c = ithC(index) 30 | if (c[0] != 0 || c[1] != 0) a.push([c[0], c[1], index]) 31 | } 32 | return a 33 | } 34 | return ( 35 | <> 36 |
37 | {'n = ' + n.toFixed(0)}:{' '} 38 | { 45 | setN(+event.target.value) 46 | setAk(generateAk(+event.target.value)) 47 | }} 48 | /> 49 |
50 |
51 | {show?:<>} 59 | 68 |
69 | 70 | ) 71 | } 72 | 73 | export default FourierSeries 74 | -------------------------------------------------------------------------------- /pages/index.en.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | import MCQComponent from '../components/general/MultipleChoiceQuestion.tsx' 3 | import Image from 'next/image' 4 | 5 | # Fourier...? An introduction 6 | 7 | --- 8 | 9 | 10 | ___ 11 | 12 | The english translation is currently under construction. Additionally, there might be some potential for optimization necessary at some points. 13 | 14 | 15 | After reading this article, you should have an overview of the **Fourier-Transform** and the algorithm of the **Fast-Fourier-Transform**. 16 | The main focus is that no assumptions are made, but that an understanding is built on the foundation of school physics/mathematics. 17 | 18 | It is important for you to think about the content yourself and learn _actively_ by using your intuition to understand the content. 19 | Because of this there will be small questions to think about, which look like this: 20 | 21 | 22 | 41 | 42 | 43 | 44 | It is ok, if you can't answer some questions, but you should always try to fully understand the correct answer. 45 | 46 | ## Notes 47 | 48 | Additionally at times there will be some notes: 49 | 50 | These notes are mathmatical additions which could be helpful. 51 | 52 | 53 | These notes reference more in-depth material for further reading, but they are 54 | not essential for understanding the article. 55 | 56 | 57 | ## Appendix 58 | 59 | The contents in the appendix are also recommended. 60 | They are essential for understanding some of the article. 61 | Especially the parts about [**complex numbers**](./appendix/complex-numbers/1-complex-plane) and [**complex exponentials**](./appendix/complex-numbers/2-complex-exponentials) are very recommended. 62 | -------------------------------------------------------------------------------- /components/periodic-functions/InteractiveSin.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Coordinates, 5 | Plot, 6 | labelPi, 7 | Theme, 8 | MovablePoint, 9 | } from 'mafs' 10 | import { InlineMath } from 'react-katex' 11 | 12 | function InteractiveSin() { 13 | let [phase, setPhase] = React.useState([0, 0]) 14 | let [amplitude, setAmplitude] = React.useState([Math.PI / 2, 1]) 15 | let [period, setPeriod] = React.useState([2 * Math.PI, 0]) 16 | 17 | let delPhi = (phase[0] * (2 * Math.PI)) / (period[0] - phase[0]) 18 | let omega = (2 * Math.PI) / (period[0] - phase[0]) 19 | let functionTex = `f(t) = ${parseFloat( 20 | amplitude[1].toFixed(2) 21 | )} \\cdot \\sin(${parseFloat(omega.toFixed(2))} \\cdot t ${ 22 | delPhi > 0 ? '- ' : '+ ' 23 | }${Math.abs(parseFloat(delPhi.toFixed(2)))})` 24 | return ( 25 | <> 26 |

27 | {functionTex} 28 |

29 | 30 | 33 | amplitude[1] * Math.sin(omega * x - delPhi)} 35 | /> 36 | { 39 | setPeriod([newPos[0], 0]) 40 | setAmplitude([ 41 | phase[0] + (newPos[0] - phase[0]) / 4, 42 | amplitude[1], 43 | ]) 44 | }} 45 | color={Theme.green} 46 | /> 47 | { 50 | setPeriod([period[0] + (newPos[0] - phase[0]), 0]) 51 | setPhase([newPos[0], 0]) 52 | setAmplitude([ 53 | newPos[0] + (period[0] - newPos[0]) / 4, 54 | amplitude[1], 55 | ]) 56 | }} 57 | color={Theme.orange} 58 | /> 59 | { 62 | setAmplitude([amplitude[0], newPos[1]]) 63 | }} 64 | color={Theme.blue} 65 | /> 66 | 67 | 68 | ) 69 | } 70 | export default InteractiveSin 71 | -------------------------------------------------------------------------------- /components/complex-numbers/ComplexPlaneAdder.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Coordinates, 5 | Vector, 6 | Text, 7 | Polygon, 8 | Theme, 9 | useMovablePoint, 10 | } from 'mafs' 11 | 12 | export default function ComplexPlaneAdder() { 13 | const tip1 = useMovablePoint([-2, 1], { color: Theme.indigo }) 14 | const tip2 = useMovablePoint([1, 2], { color: Theme.orange }) 15 | const calcAttachment = (point: any) => { 16 | if (point[1] > 0) { 17 | return 's' 18 | } else { 19 | return 'n' 20 | } 21 | } 22 | return ( 23 | 24 | { 27 | return y.toString() + 'i' 28 | }, 29 | }} 30 | /> 31 | 32 | 39 | {tip1.x.toFixed(2) + 40 | (tip1.y > 0 ? '+' : '-') + 41 | Math.abs(tip1.y).toFixed(2) + 42 | 'i'} 43 | 44 | 45 | 52 | {tip2.x.toFixed(2) + 53 | (tip2.y > 0 ? '+' : '-') + 54 | Math.abs(tip2.y).toFixed(2) + 55 | 'i'} 56 | 57 | 58 | 65 | {(tip1.x + tip2.x).toFixed(2) + 66 | (tip2.y + tip1.y > 0 ? '+' : '-') + 67 | Math.abs(tip2.y + tip1.y).toFixed(2) + 68 | 'i'} 69 | 70 | 79 | {tip1.element} 80 | {tip2.element} 81 | 82 | ) 83 | } 84 | -------------------------------------------------------------------------------- /components/general/MultipleChoiceQuestion.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import AutoMath from './AutoMath'; 3 | 4 | type Option = { 5 | text: string; 6 | isCorrect: boolean; 7 | }; 8 | 9 | type Question = { 10 | question: string; 11 | options: Option[]; 12 | }; 13 | 14 | type MCQProps = { 15 | questionData: Question; 16 | }; 17 | 18 | const MCQComponent: React.FC = ({ questionData }) => { 19 | const [selectedOption, setSelectedOption] = useState(null); 20 | const [showAnswer, setShowAnswer] = useState(false); 21 | const [isCorrectSelected, setIsCorrectSelected] = useState(false); 22 | 23 | const handleOptionSelect = (index: number, isCorrect: boolean) => { 24 | setSelectedOption(index); 25 | setIsCorrectSelected(isCorrect); 26 | }; 27 | 28 | const handleAnswerButtonClick = () => { 29 | setShowAnswer(true); 30 | }; 31 | 32 | 33 | return ( 34 |
35 |
36 | {questionData.options.map((option, index) => ( 37 |
38 |
39 | handleOptionSelect(index,option.isCorrect)} 46 | disabled={showAnswer} 47 | /> 48 | 49 | 52 | 53 |
{showAnswer && ( 54 |

55 | {isCorrectSelected ? (option.isCorrect ? '🎉' : ''): (option.isCorrect ? '💡' : (index === selectedOption ? '❌' : ''))} 56 |

57 | )}
58 | 59 |
60 |
61 | ))} 62 | 65 |
66 | ); 67 | }; 68 | 69 | export default MCQComponent; 70 | -------------------------------------------------------------------------------- /components/complex-numbers/ComplexExponentialsSum.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Coordinates, 5 | Vector, 6 | useStopwatch, 7 | Circle, 8 | } from 'mafs' 9 | 10 | interface ComplexExponentialsSumProps { 11 | ak: Array<[number, number, number]> // [Real part, Im part, index] of the coefficients 12 | omega?: number 13 | xExtent?: any 14 | yExtent?: any 15 | width?: number 16 | height?: number 17 | vectorSize?: number 18 | slow?: number 19 | } 20 | 21 | const ComplexExponentialsSum: React.FC = ({ 22 | ak, 23 | omega = (2 * Math.PI) / 5, 24 | xExtent = [-5.5, 5.5], 25 | yExtent = [-3.5, 3.5], 26 | width, 27 | height, 28 | slow = 1, 29 | vectorSize = 2, 30 | }: ComplexExponentialsSumProps) => { 31 | function getTailFunctions(curr: number) { 32 | let tail = (t: number) => { 33 | let re = 0 34 | let im = 0 35 | for (let index = 0; index < ak.length; index++) { 36 | if (ak[index][2] < curr) { 37 | re += 38 | ak[index][0] * Math.cos(ak[index][2] * t * omega) - 39 | ak[index][1] * Math.sin(ak[index][2] * t * omega) 40 | im += 41 | ak[index][0] * Math.sin(ak[index][2] * t * omega) + 42 | ak[index][1] * Math.cos(ak[index][2] * t * omega) 43 | } 44 | } 45 | let result: any = [re, im] 46 | return result 47 | } 48 | return tail 49 | } 50 | 51 | const { time, start } = useStopwatch() 52 | React.useEffect(() => start(), [start]) 53 | return ( 54 | 59 | { 62 | return y.toString() + 'i' 63 | }, 64 | }} 65 | /> 66 | {ak.map((val) => { 67 | let tail = getTailFunctions(val[2]) 68 | return ( 69 | <> 70 | 78 | 91 | 92 | ) 93 | })} 94 | 95 | ) 96 | } 97 | export default ComplexExponentialsSum -------------------------------------------------------------------------------- /components/complex-numbers/ComplexPowers.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Coordinates, 5 | MovablePoint, 6 | Theme, 7 | Line, 8 | Point, 9 | } from 'mafs' 10 | import { InlineMath } from 'react-katex' 11 | 12 | interface ComplexPowerProps { 13 | re: number 14 | im: number 15 | interactive: boolean 16 | } 17 | 18 | const ComplexPowers: React.FC = ({ 19 | re = Math.cos(0.5), 20 | im = 1.1 * Math.sin(0.5), 21 | interactive = true, 22 | }: ComplexPowerProps) => { 23 | let [iterations, setIterations] = React.useState(20) 24 | let generatePoints = (start: any, iterations: number) => { 25 | let p: Array = [] 26 | let curr: any = start 27 | 28 | p.push(curr) 29 | for (let index = 1; index < iterations; index++) { 30 | let copy: any = [ 31 | curr[0] * start[0] - curr[1] * start[1], 32 | curr[0] * start[1] + curr[1] * start[0], 33 | ] 34 | p.push(copy) 35 | curr = copy 36 | } 37 | return p 38 | } 39 | let [points, setPoints] = React.useState>( 40 | generatePoints([re, im], iterations) 41 | ) 42 | let [tip, setTip] = React.useState([re, im]) 43 | let imNumber = `z = ${tip[0].toFixed(2)}${tip[1] > 0 ? '+ ' : '- '}${Math.abs( 44 | parseFloat(tip[1].toFixed(2)) 45 | )}i` 46 | return ( 47 | <> 48 |

49 | {imNumber} 50 |

51 |
52 | {'z^k \\text{ mit } k = ' + iterations.toFixed(0)}: {' '} 53 | { 60 | setIterations(+event.target.value) 61 | setPoints(generatePoints(tip, +event.target.value)) 62 | }} 63 | /> 64 |
65 | 66 | { 69 | return y.toString() + 'i' 70 | }, 71 | }} 72 | /> 73 | {points.map((point: any, index: number) => ( 74 | 75 | ))} 76 | {points.map((point: any, index: number) => { 77 | if (index > 0) { 78 | return ( 79 | 85 | ) 86 | } 87 | })} 88 | {interactive ? ( 89 | { 93 | setTip(newPoint) 94 | setPoints(generatePoints(newPoint, iterations)) 95 | }} 96 | /> 97 | ) : null} 98 | 99 | 100 | ) 101 | } 102 | export default ComplexPowers 103 | -------------------------------------------------------------------------------- /theme.config.jsx: -------------------------------------------------------------------------------- 1 | import { useRouter } from 'next/router' 2 | export default { 3 | project: { 4 | link: 'https://github.com/Tobotis/fourier-guide', 5 | }, 6 | docsRepositoryBase: 'https://github.com/Tobotis/fourier-guide', 7 | logo: () => { 8 | const { locale } = useRouter() 9 | if (locale == 'de') 10 | return ( 11 | <> 12 | 13 | Fourier Guide 14 | 15 | 16 | Eine Einführung 17 | 18 | 19 | ) 20 | return ( 21 | <> 22 | 23 | Fourier Guide 24 | 25 | 26 | An introduction 27 | 28 | 29 | ) 30 | }, 31 | head: ( 32 | <> 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | ), 46 | //primaryHue: 299, 47 | search: { 48 | placeholder: () => { 49 | const { locale } = useRouter() 50 | if (locale == 'de') return 'Suchen...' 51 | return 'Search...' 52 | }, 53 | }, 54 | navigation: true, 55 | footer: true, 56 | editLink: { 57 | text: () => { 58 | const { locale } = useRouter() 59 | if (locale == 'de') return 'Bearbeite diese Seite auf Github →' 60 | return 'Edit this page on Github →' 61 | }, 62 | }, 63 | feedback: { 64 | content: () => { 65 | const { locale } = useRouter() 66 | if (locale == 'de') return 'Fragen? Gib uns Feedback →' 67 | return 'Question? Give us feedback →' 68 | }, 69 | }, 70 | footer: { 71 | text: () => { 72 | const { locale } = useRouter() 73 | if (locale == 'de') 74 | return ( 75 | 76 | {new Date().getFullYear()} © Florian Reinecke und Tobias 77 | Steinbrecher. 78 | 79 | ) 80 | return ( 81 | 82 | {new Date().getFullYear()} © Florian Reinecke and Tobias Steinbrecher. 83 | 84 | ) 85 | }, 86 | }, 87 | toc: { 88 | title: () => { 89 | const { locale } = useRouter() 90 | if (locale == 'de') return 'Auf dieser Seite' 91 | return 'On this page' 92 | }, 93 | }, 94 | faviconGlyph: '𝓕', 95 | sidebar: { defaultMenuCollapseLevel: 1 }, 96 | useNextSeoProps() { 97 | return { 98 | titleTemplate: '%s', 99 | description: 'interactive introduction to the Fourier-Transform', 100 | } 101 | }, 102 | primaryHue: {light: 239}, 103 | i18n: [ 104 | { locale: 'en', text: '🇬🇧 English' }, 105 | { locale: 'de', text: '🇩🇪 Deutsch' }, 106 | ], 107 | } 108 | -------------------------------------------------------------------------------- /components/complex-numbers/ComplexExponential.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Plot, 5 | Coordinates, 6 | Line, 7 | Circle, 8 | Point, 9 | } from 'mafs' 10 | import { InlineMath } from 'react-katex' 11 | 12 | const ComplexExponential = () => { 13 | let [n, setN] = React.useState(3) 14 | let [theta, setTheta] = React.useState(Math.PI / 8) 15 | let generatePoints = (n: number, theta: number) => { 16 | let p: Array = [] 17 | let curr: any = [1, theta / n] 18 | p.push(curr) 19 | for (let index = 1; index < n; index++) { 20 | let copy: any = [ 21 | curr[0] - (curr[1] * theta) / n, 22 | (curr[0] * theta) / n + curr[1], 23 | ] 24 | p.push(copy) 25 | curr = copy 26 | } 27 | return p 28 | } 29 | let [points, setPoints] = React.useState>( 30 | generatePoints(n, theta) 31 | ) 32 | let expTerm = `\\exp(\\theta i) \\approx \\left(1 ${ 33 | theta / n >= 0 ? '+ ' : '- ' 34 | } \\frac{${Math.abs( 35 | parseFloat((theta / Math.PI).toFixed(2)) 36 | )} \\pi}{${Math.abs(parseFloat(n.toFixed(2)))}} i \\right)^{${n.toFixed(0)}}` 37 | return ( 38 | <> 39 |

40 | {expTerm} 41 |

42 |
43 |
44 | {'n = ' + n.toFixed(0)}:{' '} 45 | { 52 | setN(+event.target.value) 53 | setPoints(generatePoints(+event.target.value, theta)) 54 | }} 55 | /> 56 |
57 | 58 |
59 | {'\\theta = ' + theta.toFixed(2)}:{' '} 60 | { 68 | setTheta(+event.target.value) 69 | setPoints(generatePoints(n, +event.target.value)) 70 | }} 71 | /> 72 |
73 |
74 | 78 | { 81 | return y.toString() + 'i' 82 | }, 83 | }} 84 | /> 85 | 92 | {points.map((point: any, index: number) => ( 93 | 94 | ))} 95 | {points.map((point: any, index: number) => { 96 | if (index > 0) { 97 | return ( 98 | 104 | ) 105 | } else { 106 | return ( 107 | 113 | ) 114 | } 115 | })} 116 | 117 | 118 | ) 119 | } 120 | export default ComplexExponential 121 | -------------------------------------------------------------------------------- /components/complex-numbers/ComplexConjugates.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { 3 | Mafs, 4 | Coordinates, 5 | Vector, 6 | useStopwatch, 7 | Circle, 8 | useMovablePoint, 9 | Polygon, 10 | Point, 11 | } from 'mafs' 12 | import { InlineMath } from 'react-katex' 13 | 14 | const ComplexConjugates = ({ omega = (2 * Math.PI) / 5 }) => { 15 | const { time, start, stop } = useStopwatch() 16 | const tip = useMovablePoint([1, 1]) 17 | React.useEffect(() => stop(), [stop]) 18 | let imNumber = `c_1 = ${tip.x.toFixed(2)}${ 19 | tip.y >= 0 ? '+ ' : '- ' 20 | }${Math.abs(parseFloat(tip.y.toFixed(2)))}i` 21 | let imNumberConj = `\\overline{c_1} = ${tip.x.toFixed(2)}${ 22 | -tip.y > 0 ? '+ ' : '- ' 23 | }${Math.abs(parseFloat((-tip.y).toFixed(2)))}i` 24 | return ( 25 | <> 26 |
27 |
28 | 34 | 40 |
41 |
42 | {imNumber} 43 | {imNumberConj} 44 |
45 |
46 | 47 | { 50 | return y.toString() + 'i' 51 | }, 52 | }} 53 | /> 54 | <> 55 | 62 | 68 | 76 | 85 | 110 | 111 | 112 | {tip.element} 113 | 114 | 115 | ) 116 | } 117 | export default ComplexConjugates 118 | -------------------------------------------------------------------------------- /pages/appendix/1-sine-angle-sum.de.mdx: -------------------------------------------------------------------------------- 1 | # Sinus-Winkelsummenidentität 2 | 3 | import { Callout } from 'nextra-theme-docs' 4 | import Image from 'next/image' 5 | 6 | Es gibt unglaublich viele Möglichkeiten Ausdrücke von **trigonometrische Funktionen** zu vereinfachen bzw. umzuwandeln. 7 | 8 | ## Definitionen 9 | 10 | Im Folgenden soll bewiesen werden, dass folgender Zusammenhang gilt: 11 | 12 | $$ 13 | \sin(\alpha + \beta) = \sin(\alpha)\cos(\beta)+\sin(\beta)\cos(\alpha) \tag{1} 14 | $$ 15 | 16 | Die Definition von $\sin$ und $\cos$ in einem **rechtwinkligen Dreieck** sollte bekannt sein: 17 | 18 | $$ 19 | \sin(\phi) = \frac{\text{Gegenkathete}}{\text{Hypotenuse}} \qquad \cos(\phi) = \frac{\text{Ankathete}}{\text{Hypotenuse}} \tag{2} 20 | $$ 21 | 22 | 23 | 24 | ## Beweisskizze 25 | 26 | Um nun $(1)$ zu beweisen, kann man ein **rechtwinkliges Dreieck** mit dem Winkel $\alpha$ und daneben ein **rechtwinkliges Dreieck** mit dem Winkel $\beta$ zeichnen. 27 | Die **Dreiecke** sind in der Abbildung $\color{red}{\text{rot}}$ gekennzeichnet. 28 | Außerdem lassen sich einige weitere Dreiecke konstruieren, welche die Gesamtstruktur zu einem Rechteck ergänzen. Mit dem **Innenwinkelsummensatz** von Dreiecken lassen sich die Größen weiterer Winkel mithilfe von $\alpha$ und $\beta$ ausdrücken. Außerdem lassen sich die verschiedenen Seitenlängen beschriften. 29 | 30 | 31 | **Innenwinkelsummensatz**: Die Summe der Innenwinkel in einem Dreieck beträgt 32 | $180°$. Wenn somit 2 Winkel bekannt sind, lässt sich immer auf den Dritten 33 | schließen.{' '} 34 | 35 | 36 | 37 | 38 | Man lege nun $G=1$ fest. 39 | Nun lassen sich die Seitenlängen mit der Definition gemäß $(2)$ in Abhängigkeit von $\alpha$ und $\beta$ ausdrücken. 40 | 41 | ## Beweis 42 | 43 | Aus dem _unteren_ Dreieck mit den Innenwinkeln $\alpha+\beta$ und $90°$ folgt: 44 | 45 | $$ 46 | \begin{equation*} 47 | \begin{split} 48 | \sin(\alpha + \beta) = \frac{B}{G} \Leftrightarrow B = G \cdot \sin(\alpha + \beta) = \sin(\alpha+\beta) 49 | \end{split} 50 | \end{equation*} 51 | $$ 52 | 53 | Da in einem Rechteck, jeweils zwei gegeüberliegende Seiten gleich lang sind ($B= F+E$ und $A = D+C$) und $B= \sin(\alpha + \beta)$, müsste man nun die Seitenlängen $F$ und $E$ herausfinden, um einen identischen Ausdruck für $\sin (\alpha + \beta)$ zu erhalten. 54 | 55 | --- 56 | 57 | Da in den beiden _oberen_ Dreiecken, in welchen die Seitenlängen $F$ und $E$ liegen, alle Seitenlängen unbekannt sind, lassen sich zunächst die Hypotenuse $H$ und $I$ über das _mittlere_ Dreieck mit der bekannten Seitenlänge $G=1$ ermitteln. 58 | 59 | 1. Für $I$ folgt mit der $\cos$-Definition: 60 | 61 | $$ 62 | \begin{equation*} 63 | \begin{split} 64 | \cos (\alpha) = \frac{I}{G} \Leftrightarrow I = G \cdot \cos (\alpha) = \cos (\alpha) 65 | \end{split} 66 | \end{equation*} 67 | $$ 68 | 69 | 2. Für $H$ folgt mit der $\sin$ Definition: 70 | 71 | $$ 72 | \begin{equation*} 73 | \begin{split} 74 | \sin (\alpha) = \frac{H}{G} \Leftrightarrow H = G \cdot \sin (\alpha) = \sin (\alpha) 75 | \end{split} 76 | \end{equation*} 77 | $$ 78 | 79 | Nun lassen sich $F$ und $E$ ermitteln. 80 | 81 | 1. Für $F$ folgt mit der $\sin$ Definition und mit dem zuvor ermittelten $I=\cos (\alpha)$: 82 | 83 | $$ 84 | \begin{equation*} 85 | \begin{split} 86 | \sin (\beta) = \frac{F}{I} \Leftrightarrow F = I \cdot \sin (\beta) =\cos (\alpha) \sin (\beta) 87 | \end{split} 88 | \end{equation*} 89 | $$ 90 | 91 | 2. Für $E$ folgt mit der $\cos$ Definition und mit dem zuvor ermittelten $H=\sin(\alpha)$: 92 | 93 | $$ 94 | \begin{equation*} 95 | \begin{split} 96 | \cos (\beta) = \frac{E}{H} \Leftrightarrow E = H \cdot \cos (\beta) =\sin (\alpha) \cos (\beta) 97 | \end{split} 98 | \end{equation*} 99 | $$ 100 | 101 | --- 102 | 103 | Die gegenüberliegenden Seiten $B$ und $F+E$ sind gleichlang, also folgt mit den ermittelten Längen: 104 | 105 | $$ 106 | \begin{equation*} 107 | \begin{split} 108 | B &= F+E \\ 109 | \sin (\alpha+\beta) &= \cos (\alpha) \sin (\beta) + \sin (\alpha) \cos (\beta) 110 | \end{split} 111 | \end{equation*} 112 | $$ 113 | 114 | Dieser Ausdruck ist äquivalent zu $(1)$. Die Aussage ist also bewiesen. 115 | 116 | 117 | Hier sind sind dieser und noch weitere Beweise aufgelistet: [Proofwiki: Sine 118 | of Sum](https://proofwiki.org/wiki/Sine_of_Sum) 119 | 120 | -------------------------------------------------------------------------------- /pages/appendix/2-cosine-angle-sum.de.mdx: -------------------------------------------------------------------------------- 1 | # Kosinus-Winkelsummenidentität 2 | 3 | import { Callout } from 'nextra-theme-docs' 4 | import Image from 'next/image' 5 | 6 | Dieser Beweis erfolgt **analog** zur [**Sinus-Winkelsummen-Identität**](./1-sine-angle-sum) und ist hierbei hauptsächlich der Vollständigkeit halber aufgeführt. 7 | Die Schrittabfolge ist jedoch identisch. 8 | 9 | --- 10 | 11 | ## Definitionen 12 | 13 | Im Folgenden soll bewiesen werden, dass folgender Zusammenhang gilt: 14 | 15 | $$ 16 | \cos(\alpha + \beta) = \cos(\alpha)\cos(\beta)-\sin(\alpha)\sin(\beta) \tag{1} 17 | $$ 18 | 19 | Die Definition von $\sin$ und $\cos$ in einem **rechtwinkligen Dreieck** sollte bekannt sein: 20 | 21 | $$ 22 | \sin(\phi) = \frac{\text{Gegenkathete}}{\text{Hypotenuse}} \qquad \cos(\phi) = \frac{\text{Ankathete}}{\text{Hypotenuse}} \tag{2} 23 | $$ 24 | 25 | 26 | 27 | ## Beweisskizze 28 | 29 | Um nun $(1)$ zu beweisen, kann man ein **rechtwinkliges Dreieck** mit dem Winkel $\alpha$ und daneben ein **rechtwinkliges Dreieck** mit dem Winkel $\beta$ zeichnen. 30 | Die **Dreiecke** sind in der Abbildung $\color{red}{\text{rot}}$ gekennzeichnet. 31 | Außerdem lassen sich einige weitere Dreiecke konstruieren, welche die Gesamtstruktur zu einem Rechteck ergänzen. Mit dem **Innenwinkelsummensatz** von Dreiecken lassen sich die Größen weiterer Winkel mithilfe von $\alpha$ und $\beta$ ausdrücken. Außerdem lassen sich die verschiedenen Seitenlängen beschriften. 32 | 33 | 34 | **Innenwinkelsummensatz**: Die Summe der Innenwinkel in einem Dreieck beträgt 35 | $180°$. Wenn somit 2 Winkel bekannt sind, lässt sich immer auf den Dritten 36 | schließen.{' '} 37 | 38 | 39 | 40 | 41 | Man lege nun $G=1$ fest. 42 | Nun lassen sich die Seitenlängen mit der Definition gemäß $(2)$ in Abhängigkeit von $\alpha$ und $\beta$ ausdrücken. 43 | 44 | ## Beweis 45 | 46 | Aus dem _unteren_ Dreieck mit den Innenwinkeln $\alpha + \beta$ und $90°$ folgt mit der Definition von $\cos$: 47 | 48 | $$ 49 | \begin{equation*} 50 | \begin{split} 51 | \cos(\alpha + \beta) = \frac{C}{G} \Leftrightarrow C = G \cdot \cos(\alpha + \beta) = \cos(\alpha+\beta) 52 | \end{split} 53 | \end{equation*} 54 | $$ 55 | 56 | Da in einem Rechteck, jeweils zwei gegenüberliegende Seiten gleich lang sind ($B= F+E$ und $A = D+C$) und $C= \cos(\alpha + \beta)$, müsste man nun die Seitenlängen $A$ und $D$ herausfinden, um einen identischen Ausdruck für $\cos (\alpha + \beta)$ (mit $\cos (\alpha + \beta) = A-D$) zu erhalten. 57 | 58 | --- 59 | 60 | Da in den beiden _oberen_ Dreiecken, in welchen die Seitenlängen $A$ und $D$ liegen, alle Seitenlängen unbekannt sind, lassen sich zunächst die Hypotenuse $H$ und $I$ über das _mittlere_ Dreieck mit der bekannten Seitenlänge $G=1$ ermitteln. 61 | 62 | 1. Für $I$ folgt mit der $\cos$-Definition: 63 | 64 | $$ 65 | \begin{equation*} 66 | \begin{split} 67 | \cos (\alpha) = \frac{I}{G} \Leftrightarrow I = G \cdot \cos (\alpha) = \cos (\alpha) 68 | \end{split} 69 | \end{equation*} 70 | $$ 71 | 72 | 2. Für $H$ folgt mit der $\sin$ Definition: 73 | 74 | $$ 75 | \begin{equation*} 76 | \begin{split} 77 | \sin (\alpha) = \frac{H}{G} \Leftrightarrow H = G \cdot \sin (\alpha) = \sin (\alpha) 78 | \end{split} 79 | \end{equation*} 80 | $$ 81 | 82 | Nun lassen sich $A$ und $D$ ermitteln. 83 | 84 | 1. Für $A$ folgt mit der $\cos$ Definition und mit dem zuvor ermittelten $I=\cos (\alpha)$: 85 | 86 | $$ 87 | \begin{equation*} 88 | \begin{split} 89 | \cos (\beta) = \frac{A}{I} \Leftrightarrow A = I \cdot \cos (\beta) =\cos (\alpha) \cos (\beta) 90 | \end{split} 91 | \end{equation*} 92 | $$ 93 | 94 | 2. Für $D$ folgt mit der $\sin$ Definition und mit dem zuvor ermittelten $H=\sin(\alpha)$: 95 | 96 | $$ 97 | \begin{equation*} 98 | \begin{split} 99 | \sin (\beta) = \frac{D}{H} \Leftrightarrow D = H \cdot \sin (\beta) =\sin (\alpha) \sin (\beta) 100 | \end{split} 101 | \end{equation*} 102 | $$ 103 | 104 | --- 105 | 106 | Die gegenüberliegenden Seiten $A$ und $C+D$ sind gleichlang, also folgt mit den ermittelten Längen: 107 | 108 | $$ 109 | \begin{equation*} 110 | \begin{split} 111 | A &= C+D \\ 112 | \cos (\alpha) \cos (\beta) &= \cos(\alpha+\beta) +\sin (\alpha) \sin (\beta)\\ 113 | \Leftrightarrow \cos(\alpha + \beta)&= \cos (\alpha) \cos (\beta) - \sin (\alpha) \sin (\beta) 114 | \end{split} 115 | \end{equation*} 116 | $$ 117 | 118 | Dieser Ausdruck ist äquivalent zu $(1)$. Die Aussage ist also bewiesen. 119 | -------------------------------------------------------------------------------- /components/general/QuestionAnswer.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { arraysEqual } from '../../utils/general' 3 | // Interface für Answer-Objekte (Blaupause) 4 | export class Answer { 5 | correct: boolean 6 | constructor(correct = false) { 7 | this.correct = correct 8 | } 9 | } 10 | 11 | // Interface für das übergebene Obeject an den QuestionAnswer-FC 12 | interface Props { 13 | // question: React.ReactNode 14 | //answers: Array 15 | children: Array 16 | } 17 | 18 | // QuestionAnswer Komponent 19 | const QuestionAnswer: React.FC = ({ children }: Props) => { 20 | let question = children[0] 21 | let answers: Array = children.filter((child: any) => { 22 | return child.type === Answer 23 | }) 24 | 25 | // Ermitteln der korrekten Antworten 26 | let correct_answers: Array = Array(answers.length).fill(false) 27 | answers.forEach((answer, index) => { 28 | if (answer.props['correct']) { 29 | correct_answers[index] = true 30 | } 31 | }) 32 | let correctAnswerCount: number = answers.filter((e) => { 33 | if (e.props['correct']) { 34 | return true 35 | } 36 | }).length 37 | // Ab mehr als einer korrekten Antwort, handelt es sich um eine MCQ 38 | let isMultipleChoice: boolean = correctAnswerCount > 1 39 | // STATE-Management 40 | let [result, setResult] = React.useState('') 41 | let [resultPositive, setResultPositive] = React.useState(true) 42 | let [selectedAnswers, setSelectedAnswers] = React.useState>( 43 | Array(answers.length).fill(false) 44 | ) 45 | // Wrapper für event der checkbox 46 | function onTickedWrapper(index: number) { 47 | return (event: React.BaseSyntheticEvent) => { 48 | onTicked(event, index) 49 | } 50 | } 51 | 52 | // Ausführen beim anklicken einer Antwort 53 | function onTicked(event: React.BaseSyntheticEvent, index: number) { 54 | let newTickedAnswers: Array = isMultipleChoice 55 | ? selectedAnswers 56 | : Array(answers.length).fill(false) 57 | if (isMultipleChoice) { 58 | let state: boolean = event.target.checked 59 | newTickedAnswers[index] = state 60 | } else { 61 | newTickedAnswers[index] = true 62 | } 63 | setSelectedAnswers(newTickedAnswers) 64 | } 65 | 66 | function onAnswer() { 67 | let selectedAnswerCount: number = selectedAnswers.filter((e) => e).length 68 | if (selectedAnswerCount != correctAnswerCount) { 69 | setResult( 70 | 'Du hast ' + 71 | selectedAnswerCount + 72 | ' statt ' + 73 | correctAnswerCount + 74 | ' Antworten ausgewählt.' 75 | ) 76 | setResultPositive(false) 77 | return 78 | } 79 | if (arraysEqual(selectedAnswers, correct_answers)) { 80 | setResult('Richtig!') 81 | setResultPositive(true) 82 | return 83 | } else { 84 | setResult('Dies ist leider nicht korrekt. Probiere es nochmal!') 85 | setResultPositive(false) 86 | return 87 | } 88 | } 89 | return ( 90 |
91 |
92 |

{question}

93 |

94 | Es gibt {correctAnswerCount} korrekte{' '} 95 | {correctAnswerCount == 1 ? 'Antwort' : 'Antworten'}. 96 |

97 |
98 |
99 |
100 | {answers.map((answer, i) => { 101 | return ( 102 |
103 | {' '} 108 | <>{answer.props.children} 109 |
110 | ) 111 | })} 112 |
113 |
114 | {result != '' ? ( 115 | resultPositive ? ( 116 |
{result}
117 | ) : ( 118 |
{result}
119 | ) 120 | ) : ( 121 | <> 122 | )} 123 | 124 | 129 |
130 | ) 131 | } 132 | 133 | export default QuestionAnswer 134 | -------------------------------------------------------------------------------- /pages/index.de.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | import MCQComponent from '../components/general/MultipleChoiceQuestion.tsx' 3 | import Image from 'next/image' 4 | 5 | # Fourier... ? Eine Einführung 6 | 7 | --- 8 | 9 | 10 | ___ 11 | 12 | Nach dem Lesen dieses Artikels wirst du einen umfassenden Überblick über die Fourier-Transformation haben.
13 | Dabei legen wir besonderen Wert darauf, dass keine voreiligen Annahmen getroffen werden und das Verständnis auf den Grundlagen der Schulmathematik aufbaut.
14 | Es ist von großer Bedeutung, dass du aktiv beim Lernen mitwirkst und dir selbst Gedanken über den Inhalt machst. Die Entwicklung einer intuitiven Verständnisweise spielt dabei eine entscheidende Rolle, um den Inhalt plausibel nachvollziehen zu können. Aus diesem Grund werden während des Artikels immer wieder Zwischenfragen gestellt, die zum Nachdenken anregen. Diese **Zwischenfragen** sind wie folgt strukturiert: 15 | 16 | 35 | 36 | Es ist nicht schlimm, wenn du manche Fragen nicht sofort beantworten kannst. 37 | Man sollte jedoch versuchen die richtige Antwort nachzuvollziehen und sich plausibel zu machen. 38 | 39 | Zudem befinden sich an manchen Stellen **Anmerkungen**, welche auf verschiedene Dinge hinweisen sollen: 40 | 41 | 42 | Diese Anmerkungen sind für Ergänzungen mathematischer Natur, welche teilweise 43 | von Nutzen sein könnten. 44 | 45 | 46 | 47 | Diese Anmerkungen sollen auf Material zum Vertiefen bzw. Nachlesen hinweisen. 48 | Dies ist jedoch nicht essentiell für das Verstehen des Artikels. 49 | 50 | 51 | ## Motivation 52 | 53 | > The Fast-Fourier-Transform is the most important numerical algorithm of our lifetime. 54 | > ~ [Gilbert Strang](https://en.wikipedia.org/wiki/Gilbert_Strang), amerikanischer Mathematiker 55 | 56 | Die **Schnelle-Fourier-Transformation** (bzw. **FFT**) ist ein Algorithmus zur sehr _schnellen_ Durchführung einer bestimmten Art der **Fourier-Transformation**. 57 | Zunächst soll jedoch geklärt werden, warum eine **Fourier-Transformation** so relevant ist. 58 | 59 | --- 60 | 61 | In diesem Artikel wird zunächst die **Fourier-Reihe** betrachtet. Diese bietet umfangreiche Möglichkeiten zur Untersuchung **periodischer Phänomen**. 62 | 63 | Mit der **Fourier-Transformation** lassen sich die Ideen der **Fourier-Reihe** auch auf nicht-periodische Phänomene verallgemeinern, indem man die **Periodendauer** gegen unendlich gehen lässt. Was das bedeutet, wird später deutlich. 64 | Die **Fourier-Transformation** kann auch unabhängig von der **Fourier-Reihe** betrachtet und verstanden werden, jedoch soll in diesem Artikel zunächst auf die **Fourier-Reihe** eingegangen werden und daraus die **Fourier-Transformation** hervorgehen. 65 | 66 | ## Anwendungszwecke 67 | 68 | Es lassen sich zahlreiche Anwendungszwecke der **Fourier-Transformation** bzw. sogar spezifischer, nur des Algorithmus der **FFT** auflisten. 69 | 70 |
71 | 72 | | Anwendungsbereich der Fourier-Transformation | Beschreibung | 73 | |---------------------------------------------|--------------| 74 | | Bildverarbeitung | Die Fourier-Transformation wird in der Bildverarbeitung verwendet, um das Frequenzspektrum eines Bildes zu analysieren. Dies ermöglicht zum Beispiel die Entfernung von periodischem Rauschen oder das Erkennen von Mustern und Strukturen in einem Bild. | 75 | | Signalverarbeitung | In der Signalverarbeitung wird die Fourier-Transformation genutzt, um Signale in den Frequenzbereich zu übertragen. Dadurch können verschiedene Eigenschaften des Signals, wie Amplituden und Phasen, analysiert und verändert werden. Dies ist besonders nützlich für die Rauschunterdrückung, Filterung und Kompression von Signalen. | 76 | | Spektralanalyse | Die Fourier-Transformation ermöglicht die Spektralanalyse von Signalen. Sie erlaubt es, die Frequenzanteile eines Signals zu bestimmen und so Informationen über die enthaltenen Frequenzen und ihre Stärke zu gewinnen. Dies wird in vielen Bereichen wie der Akustik, Elektrotechnik und Physik eingesetzt. | 77 | | Datenkompression | Fourier-Transformationen werden in verschiedenen Kompressionsalgorithmen verwendet, um redundante Informationen in Daten zu identifizieren und zu entfernen. Durch die Umwandlung der Daten in den Frequenzbereich kann eine effiziente Kompression erreicht werden, indem weniger wichtige Frequenzanteile reduziert oder eliminiert werden. | 78 | | Quantenmechanik | Die Fourier-Transformation spielt eine wichtige Rolle in der Quantenmechanik. Sie ermöglicht die Darstellung von Zuständen und Operatoren im Impulsraum und erleichtert die Berechnung quantenmechanischer Effekte wie Tunneling und Wechselwirkungen. | 79 | | und viele mehr | ... 80 | 81 | ## Ausgangsfrage 82 | 83 | Um den Nutzen von **Fourier-Reihe** und **Fourier-Transformation** zu illustrieren, addiert man **trigonometrische Funktionen** (z.B. $\sin$) mit verschiedenen Parametern. 84 | Es entsteht eine Funktion, welche sich aus der Überlagerung der verschiedenen $\sin$-Funktionen ergibt. 85 | Möchte man von dieser Funktion auf die ursprünglichen Anteilen zurückschließen, ist das manuell erstmal ziemlich schwierig. 86 | 87 | Man möchte sich also ein _mathematisches Werkzeug_ konstruieren, welches diese _Zerlegung_ in die **Frequenzbestandteile** durchführt. Ein solches Werkzeug soll in diesem Artikel erklärt werden. 88 | 89 | Kapitel [1](1-complex-plane) und [2](2-complex-exponentials) versuchen zunächst eine Einführung in **komplexe Zahlen** und **komplexe Exponentialfunktionen** bieten, dessen Verständnis und Interpretation essentiell für die nächsten Kapitel ist. 90 | -------------------------------------------------------------------------------- /components/fourier-transform/WaveCheck.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { InlineMath } from 'react-katex' 3 | import ProductIntegral from './FixedProductIntegral' 4 | import { 5 | Mafs, 6 | Plot, 7 | Coordinates, 8 | Theme, 9 | } from 'mafs' 10 | 11 | type props = { 12 | children: any 13 | fixed_periodendauer: any 14 | leftBound?: number 15 | rightBound?: number 16 | } 17 | 18 | const WaveCheck: React.FC = ({ 19 | children, 20 | fixed_periodendauer, 21 | leftBound = -Infinity, 22 | rightBound = Infinity, 23 | }) => { 24 | let [periodendauer, setPeriodendauer] = React.useState( 25 | 0.1 * fixed_periodendauer + fixed_periodendauer 26 | ) 27 | 28 | let [istFlächeAngezeigt, setIstFlächeAngezeigt] = React.useState(true) 29 | 30 | let [istGesuchterGraphAngezeigt, setIstGesuchterGraphAngezeigt] = 31 | React.useState(true) 32 | 33 | let [istProduktAngezeigt, setIstProduktAngezeigt] = React.useState(true) 34 | 35 | return ( 36 |
37 | <> 38 |
39 |
40 |
41 | 42 | {'\\Re(f(t) \\cdot e^{- 2 \\pi \\xi i t}) = \\color{purple}{\\cos(- 2 \\pi \\xi t) \\cdot f(t)}'} 43 | 44 |
45 |
46 | 50 | 51 | {/*istFlächeAngezeigt ? ( 52 | 54 | x < 6 55 | ? x > -6 56 | ? Math.sin( 57 | (x / fixed_periodendauer) * (2 * Math.PI) 58 | ) * Math.cos((x / periodendauer) * (2 * Math.PI)) 59 | : 0 60 | : 0 61 | } 62 | belowColor="red" 63 | aboveColor="green" 64 | quality="high" 65 | leftBound={-Infinity} 66 | rightBound={Infinity} 67 | > 68 | ) : ( 69 | <> 70 | )*/} 71 | <> 72 | Math.cos((x / periodendauer) * (2 * Math.PI))} 74 | color={Theme.blue} 75 | > 76 | 77 | {istGesuchterGraphAngezeigt ? ( 78 | 80 | x < 6 81 | ? x > -6 82 | ? Math.sin( 83 | (x / fixed_periodendauer) * (2 * Math.PI) 84 | ) 85 | : 0 86 | : 0 87 | } 88 | > 89 | ) : ( 90 | <> 91 | )} 92 | {istProduktAngezeigt ? ( 93 | 95 | x < 6 96 | ? x > -6 97 | ? Math.sin( 98 | (x / fixed_periodendauer) * (2 * Math.PI) 99 | ) * Math.cos((x / periodendauer) * (2 * Math.PI)) 100 | : 0 101 | : 0 102 | } 103 | color="purple" 104 | > 105 | ) : ( 106 | <> 107 | )} 108 | 109 | {/* 110 | 120 | */} 121 | 122 | 123 |
124 |
125 |
126 |
127 | 128 | { 129 | '\\Im(f(t) \\cdot e^{- 2 \\pi \\xi i t}) = \\color{purple}{\\sin(- 2 \\pi \\xi t) \\cdot f(t)}' 130 | } 131 | 132 |
133 |
134 | 138 | 139 | {/*istFlächeAngezeigt ? ( 140 | 142 | x < 6 143 | ? x > -6 144 | ? Math.sin( 145 | (x / fixed_periodendauer) * (2 * Math.PI) 146 | ) * Math.sin((x / periodendauer) * (2 * Math.PI)) 147 | : 0 148 | : 0 149 | } 150 | belowColor="red" 151 | aboveColor="green" 152 | quality="high" 153 | leftBound={-Infinity} 154 | rightBound={Infinity} 155 | > 156 | ) : ( 157 | <> 158 | )*/} 159 | <> 160 | Math.sin((x / periodendauer) * (2 * Math.PI))} 162 | color={Theme.blue} 163 | > 164 | 165 | {istGesuchterGraphAngezeigt ? ( 166 | 0} 168 | > 169 | ) : ( 170 | <> 171 | )} 172 | {istProduktAngezeigt ? ( 173 | 175 | x < 6 176 | ? x > -6 177 | ? Math.sin( 178 | (x / fixed_periodendauer) * (2 * Math.PI) 179 | ) * Math.sin((x / periodendauer) * (2 * Math.PI)) 180 | : 0 181 | : 0 182 | } 183 | color="purple" 184 | > 185 | ) : ( 186 | <> 187 | )} 188 | 189 | {/* 190 | 200 | */} 201 | 202 |
203 |
204 |
205 |
206 |
207 | 208 | {'\\text{Frequenz } \\xi \\approx' + 209 | (1 / periodendauer).toFixed(2)} 210 | 211 | setPeriodendauer(1 / +event.target.value)} 219 | /> 220 |
221 |
222 | {'f(t) \\text{ anzeigen}'} 223 | 227 | setIstGesuchterGraphAngezeigt(!istGesuchterGraphAngezeigt) 228 | } 229 | /> 230 |
231 | {/*
232 | 233 | {'\\color{purple}{e^{- 2 \\pi i \\xi t} f(t)} \\text{ anzeigen}'} 234 | 235 | setIstProduktAngezeigt(!istProduktAngezeigt)} 239 | /> 240 |
*/} 241 | {/*
242 |

Fläche anzeigen

243 | setIstFlächeAngezeigt(!istFlächeAngezeigt)} 247 | /> 248 |
*/} 249 |
250 |
251 | {'\\text{Darstellung von } \\hat{f}(\\xi):'} 252 |
253 | 254 | { 263 | return ( 264 | (-1 * 265 | (omega * 266 | Math.sin(((Math.PI * 2) / fixed_periodendauer) * x) * 267 | Math.sin(omega * x) + 268 | ((Math.PI * 2) / fixed_periodendauer) * 269 | Math.cos(((Math.PI * 2) / fixed_periodendauer) * x) * 270 | Math.cos(omega * x))) / 271 | (Math.pow(omega, 2) - 272 | Math.pow((Math.PI * 2) / fixed_periodendauer, 2)) 273 | ) 274 | }} 275 | imInteg={(x: number, omega: number) => { 276 | return ( 277 | (1 * 278 | (omega * 279 | Math.cos(((Math.PI * 2) / fixed_periodendauer) * x) * 280 | Math.sin(omega * x) - 281 | omega * 282 | Math.sin(((Math.PI * 2) / fixed_periodendauer) * x) * 283 | Math.cos(omega * x))) / 284 | (Math.pow(omega, 2) - 285 | Math.pow((Math.PI * 2) / fixed_periodendauer, 2)) 286 | ) 287 | }} 288 | /> 289 | 290 |
291 | ) 292 | } 293 | export default WaveCheck 294 | -------------------------------------------------------------------------------- /pages/2-complex-exponentials.de.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | 4 | import LazyWrapper from '../components/LazyWrapper'; 5 | 6 | 7 | 8 | import MCQComponent from '../components/general/MultipleChoiceQuestion.tsx' 9 | 10 | # Komplexe Exponentialfunktion 11 | 12 | Im Rahmen der **Fourier-Transformation** wird unter anderem folgender Zusammenhang nützlich. 13 | 14 | **Euler's Identität** wird häufig als schönste Gleichung der gesamten Mathematik bezeichnet: 15 | 16 | $$ 17 | e^{\pi i} + 1 = 0 18 | $$ 19 | 20 | Sie resultiert aus der **Eulerschen Formel** mit $\theta = \pi$: 21 | 22 | $$ 23 | e^{\theta i} = \cos (\theta) + i \sin (\theta) 24 | $$ 25 | 26 | Intuitiv macht es jedoch wenig Sinn, eine Zahl (hier die Eulersche Zahl $e$) hoch eine komplexe Zahl (hier $\theta i$) zu rechnen: 27 | 28 | $$ 29 | e^{\theta i} \overset{?}{=} \overbrace{ 30 | e \cdot e \cdot ... \cdot e 31 | }^{\sqrt{-1} \text{ mal?} } 32 | $$ 33 | 34 | Zudem ist fraglich, was das ganze mit der zuvor herausgestellten Polardarstellung [komplexer Zahlen](./1-complex-plane) zutun hat: 35 | 36 | Es gibt zahlreiche Beweise dieser Gleichung, welche aufzeigen, dass Gleichheit gilt, jedoch weiterhin das Mysterium des **"Warum?"** offen lassen. 37 | Im Folgenden soll geklärt werden, was diese Gleichung wirklich aussagt und nicht nur gezeigt werden, dass sie stimmt. 38 | 39 | ## Beweis mithilfe von Differentialrechnung 40 | 41 | Zunächst lässt sich ein sehr _einfacher_ Beweis der Gleichheit begutachten. Dieser erfolgt über das Ableiten einer geschickt gewählten Funktion $f(\phi)$. 42 | 43 | $$ 44 | f(\phi) = e^{- i \phi} (\cos(\phi) + i \sin(\phi)) 45 | $$ 46 | 47 | Wenn man nun $f(\phi)$ nach $\phi$ ableitet (mit der _Produktregel_), folgt: 48 | 49 | $$ 50 | \begin{equation*} 51 | \begin{split} 52 | f'(\phi) &= e^{-i \phi} (i \cos(\phi)-\sin(\phi)) - i e^{-i \phi} (\cos (\phi) + i \sin (\phi))\\ 53 | &= e^{-i \phi} i \cos(\phi) - e^{-i \phi} \sin(\phi) - i e^{-i \phi} \cos (\phi) + e^{-i \phi} \sin (\phi)\\ 54 | &= 0 55 | \end{split} 56 | \end{equation*} 57 | $$ 58 | 59 | 60 | *Produktregel*: $f(x) = u(x) \cdot v(x) \Rightarrow f'(x) = u(x) \cdot v'(x) + 61 | u'(x) \cdot v(x)$ ([Wikipedia: 62 | Produktregel](https://de.wikipedia.org/wiki/Produktregel)) 63 | 64 | 65 | Wenn die Ableitung $f'(\phi)$ immer $0$ ist, dann muss $f(\phi)$ konstant sein (keine Steigung haben). 66 | 67 | Da $f(0) = 1$ muss $f(\phi) = 1$ für alle $\phi$ (konstant). Es gilt also: 68 | 69 | $$ 70 | e^{-i \theta}(\cos (\theta) + i \sin (\theta)) = 1 \Leftrightarrow e^{i\theta} = \cos (\theta) + i \sin (\theta) 71 | $$ 72 | 73 | Die Gleichheit ist somit bewiesen. Ein Verständnis für die Gleichung wurde jedoch nicht entwickelt. 74 | 75 | ## Definition der Exponentialfunktion 76 | 77 | Die Betrachtung als eine Multiplikation von $e$, $\theta i$-mal mit sich selbst ist problematisch. 78 | 79 | Um ein Verständnis für diesen komplexen Exponenten zu entwickeln, muss man sich die Definition der Exponentialfunktion zur Basis $e$ vor Augen führen, bzw. die Entstehung der _Konstanten_ $e$ nachvollziehen. 80 | 81 | --- 82 | 83 | Im Folgenden gebe es eine Bank, welche zwei Möglichkeiten anbietet: 84 | 85 | 1. $6 \%$ Zinsen pro Jahr 86 | 2. $0.5 \%$ Zinsen pro Monat 87 | 88 | 107 | 108 | --- 109 | 110 | Diese Frage stellte sich auch _Jacob Bernoulli_ im Jahr 1669. 111 | 112 | Wenn man z.B. mit dem Geldbetrag $1$€ startet und ein Jahr wartet, dann würde Folgendes passieren: 113 | 114 | 1. Option: $1\text{€} \cdot (1+0.06) = \textbf{1.06}$ 115 | 2. Option: $1\text{€} \cdot \overbrace{(1+0.005) \cdot (1+0.005) \cdot ... \cdot (1+0.005)}^{12 \text{ mal }} = 1\text{€} \cdot (1+0.005)^{12} \approx \textbf{1.0617}$ 116 | 117 | Berechtigterweise lässt sich nun fragen, was passiert, wenn man das Jahr in $n$ kleinere Intervalle einteilt und in jedem Zeitintervall $\frac{6}{n} \%$ Zinsen bekommt. 118 | Wenn man mit einem Betrag von $1$€ startet, dann folgt für die den Geldbetrag nach einem Jahr: 119 | 120 | $$ 121 | B_{0.06}(n)=1\text{€} \cdot \left(1+\frac{0.06}{n}\right)^n 122 | $$ 123 | 124 | Wenn man das Zeitintervall also in immer kleinere Intervalle einteilt und somit _noch mehr Gebrauch_ vom Zinseszins macht, kann man dann durch $n \to \infty$ immer mehr Geld bekommen? 125 | 126 |
127 |
128 | 129 | | $n$ | $1$ | $10$ | $100$ | $1000$ | $10^4$ | $10^5$ | 130 | | ------------- | ------ | ---------------- | ----------------- | ----------------- | ----------------- | ----------------- | 131 | | $B_{0.06}(n)$ | $1.06$ | $\approx 1.0616$ | $\approx 1.06182$ | $\approx 1.06183$ | $\approx 1.06184$ | $\approx 1.06184$ | 132 | 133 |
134 | 135 | Es lässt sich erkennen, dass sich der Geldbetrag $B_{0.06}(n)$ immer geringfüger ändert. Dies ist natürlich kein Beweis, jedoch ein starkes Indiz dafür, dass sich der Wert einer Konstanten annähert. 136 | 137 | Um das betrachtete Phänomen etwas zu verallgemeinern, betrachtet man nun einen **beliebigen** Zinssatz $x$ und lässt das Zeitintervall beliebig klein werden: $\lim_{n\rightarrow\infty}$. 138 | 139 | 140 | Eine formale Definition eines Grenzwertes: [Wikipedia: 141 | Grenzwert](https://de.wikipedia.org/wiki/Grenzwert_(Folge)){' '} 142 | 143 | 144 | Es gilt also für den Betrag in Abhängigkeit des Zinssatzes $B(x)$: 145 | 146 | $$ 147 | \begin{equation*} 148 | \begin{split} 149 | B(x) &= \lim_{n\to \infty} \left(1+\frac{x}{n}\right)^{n} \qquad | \qquad \text{ sei } m = \frac{n}{x}\\ 150 | &= \lim_{n\to \infty} \left(1+\frac{1}{m}\right)^{mx} \qquad | \qquad \text{ wenn } n \to \infty \text{ dann auch } m \to \infty\\ 151 | &= \lim_{m\to \infty} \left(1+\frac{1}{m}\right)^{mx} \qquad | \qquad \text{ mit } a^{bc} = (a^b)^c \\ 152 | &= \lim_{m\to \infty} \left(\left(1+\frac{1}{m}\right)^{m}\right)^{x} 153 | \end{split} 154 | \end{equation*} 155 | $$ 156 | 157 | Es scheint logisch sich den Wert des Terms $\lim_{m\to \infty} \left(1+\frac{1}{m}\right)^{m}$ separat anzuschauen, da dieser unabhängig von $x$ und somit konstant ist. 158 | 159 |
160 |
161 | 162 | | $m$ | $1$ | $2$ | $8$ | $100$ | $10^4$ | $10^5$ | 163 | | --------------------------------------------------- | --- | -------------- | --------------- | --------------- | --------------- | --------------- | 164 | | $\lim_{m\to \infty} \left(1+\frac{1}{m}\right)^{m}$ | $2$ | $\approx 2.25$ | $\approx 2.566$ | $\approx 2.705$ | $\approx 2.718$ | $\approx 2.718$ | 165 | 166 |
167 | 168 | Es handelt sich wiederum um keinen Beweis, jedoch scheint es so zu sein, dass sich der Term einem ganz bestimmten Wert annähert. Es könnte natürlich so sein, dass der Term plötzlich bei einem noch größeren $m$ wieder von diesem Wert abweicht. 169 | 170 | Ein rigoroser Beweis soll jedoch erspart bleiben. Genau dieser Wert wurde letztendlich als die **eulersche Zahl** $e \approx 2.718$ definiert. Somit lässt sich obiger Term umschreiben und von $B(x)$ zu dem üblichen $\exp (x)$ umbenennen: 171 | 172 | $$ 173 | \exp (x) = e^x 174 | $$ 175 | 176 | Die Exponentialfunktion resultiert somit nicht aus der Idee von der wiederholten Multiplikation einer ominösen Konstante $e$, welche letztendlich Probleme mit bestimmten Werten für $x$ (z.B. komplexen Zahlen) bereitet. 177 | Natürlich sind komplexe Zahlen als Zinsen auch unrealistisch. Es ist jedoch bekannt, wie man komplexe Zahlen dividiert, addiert und multipliziert und somit den Term $\lim_{n\to \infty} \left(1+\frac{x}{n}\right)^{n}$ mit $x\in \mathbb{C}$ berechnen kann. 178 | 179 | ## Imaginäre Zinssätze 180 | 181 | Um wieder auf die **Eulersche Formel** zurückzukommen, müsste man nun betrachten, was passiert wenn $x = \theta i$. 182 | Gemäß der obigen Definition der Exponentialfunktion folgt: 183 | 184 | $$ 185 | \exp (\theta i) = e^{\theta i} = \lim_{m\to \infty} \left(\left(1+\frac{1}{m}\right)^{m}\right)^{\theta i} = \lim_{n\to \infty} \left(1+\frac{\theta i}{n}\right)^{n} 186 | $$ 187 | 188 | Beim Term $z = 1+\frac{\theta i }{n}$ handelt es sich um eine komplexe Zahl mit $\Re(z) = 1$ und $\Im(z) = \frac{\theta}{n}$. Diese Zahl wird 189 | somit $n$ mal mit sich selbst multipliziert. Ein imaginärer Zinssatz macht selbstverständlich wenig Sinn. Jedoch lässt sich damit die Verbindung zwischen der Exponentialfunktion und den komplexen Zahlen illustrieren. 190 | Im Folgenden lässt sich ausprobieren, wie sich $\exp (\theta i)$ für verschiedene Approximationen und Winkel $\theta$ verhält. 191 | 192 | import('../components/complex-numbers/ComplexExponential.tsx')} 194 | fallback={
Loading Complex Exponential...
} 195 | /> 196 | 197 | Es lässt sich eindeutig erkennen, dass sich der Term $(1+\frac{\theta i }{n})^n$ für immer größere $n$, der komplexen Zahl mit dem Winkel $\theta$ auf dem **Einheitskreis** annähert. 198 | 199 | In Anwendung auf die **reellen Zahlen**, wurde ebenfalls deutlich, dass sich der Term $(1+\frac{x}{n})^n$ für immer größere $n$ einem bestimmten Wert annähert. Dabei liegen die Werte jedoch ausschließlich auf der Achse des $\Re$-Teils, da es keinen Imaginärteil gibt. 200 | Dieser Wert der Annäherung ergibt sich, wie zuvor herausgestellt, durch das kontinuierliche Hinzufügen von einem unendlich kleinen Anteil eines bestimmten Zinssatzes. _Kontinuierlich_ bedeutet hierbei, dass die Zeitintervalle ebenfalls unendlich klein werden und es somit unendlich viele Zeitintervalle gibt. 201 | 202 | ### Wiederholte Multiplikation einer komplexen Zahl 203 | 204 | In Bezug auf komplexe Zahlen lässt sich der Term somit wie folgt verstehen. Eine komplexe Zahl $z$ wird unendlich oft mit sich selbst multipliziert. Dabei gilt für den Realteil und für den Imaginärteil 205 | 206 | $$ 207 | \Re (z) = 1 \qquad \Im (z) = \lim_{n\to \infty} \left(\frac{\theta}{n} \right) 208 | $$ 209 | 210 | Um zu verstehen, was sich beim Potenzieren der komplexen Zahl $z = \lim_{n\to\infty} (1+\frac{\theta i}{n})$ ergibt, ist es sinnvoll die Polardarstellung zu ermitteln. 211 | Der Betrag wird durch das Potenzieren mit $n$, ebenfalls $n$ potenziert, der Polarwinkel jedoch mit $n$ multipliziert (dies wurde in [_Komplexe Ebene_](./1-complex-plane#folgerungen) herausgestellt). 212 | 213 | #### Betrag 214 | 215 | Der Betrag der resultierenden komplexen Zahl ($\lim_{n\to\infty}z^n$) entspricht dem Abstand vom _Ursprung_ von $z$, hoch $n$: 216 | 217 | $$ 218 | \begin{equation*} 219 | \begin{split} 220 | \lim_{n \to \infty} r_z^n &= \lim_{n \to \infty} \sqrt{\Re(z)^2 + \Im(z)^2}^n \qquad | \text{ Satz des Pythagoras }\\ 221 | &= \lim_{n \to \infty} \sqrt{1 + \frac{\theta^2}{n^2}}^n \qquad | \text{ mit } \sqrt{a}^b = a^{\frac{b}{2}}\\ 222 | &= \lim_{n \to \infty} \left(1 + \frac{\theta^2}{n^2}\right)^{\frac{n}{2}} \qquad | \text{ mit } (a^b)^c = a^{bc}\\ 223 | &= \lim_{n \to \infty} \left(\left(1 + \frac{\theta^2}{n^2}\right)^{n^2}\right)^{\frac{1}{2n}} \qquad | \text{ wenn } n \to \infty \text{ dann auch } n^2 \to \infty \\ 224 | &= \lim_{n \to \infty} \left(\exp (\theta^2)\right)^{\frac{1}{2n}} \qquad | \text{ mit } \exp (a) = e^a\\ 225 | &= \lim_{n \to \infty} e^{\frac{\theta^2}{2n}}\qquad | \text{ mit } \lim_{n \to \infty} \frac{\theta^2}{2n} = 0 \\ 226 | &= e^0 = 1 227 | \end{split} 228 | \end{equation*} 229 | $$ 230 | 231 | Die komplexe Zahl $\exp(\theta i)$ muss also auf einen Betrag von $1$ haben und somit auf dem Einheitskreis liegen. 232 | 233 | #### Polarwinkel 234 | 235 | Der Polarwinkel der komplexen Zahl $z = 1+\frac{\theta i}{n}$ liegt für große $n$ extrem nah an $\frac{\theta}{n}$. Wenn man nun $z$ mit $n$ potenziert, dann folgt eine Addition der Winkel. 236 | 237 | Somit liegt der Polarwinkel von $z^n$ für große $n$ extrem nah bei $n \cdot \frac{\theta}{n} = \theta$. Dies soll kein mathematischer Beweis sein. 238 | 239 | Die komplexe Zahl $\exp(\theta i)$ muss also auf dem Einheitskreis liegen und den Polarwinkel von $\theta$ einschließen. 240 | 241 | ### Komplexe Zahlen auf dem Einheitskreis 242 | 243 | Nun lassen sich Überlegungen anstellen, wie sich dieser Punkt auf dem Einheitskreis noch ausdrücken lässt. Hierbei kommen die **trigonometrischen Funktionen** ins Spiel. 244 | 245 | Die **trigonometrischen Funktionen** sind buchstäblich durch den Einheitskreis definiert. Im kartesischen Koordinatensystem lässt sich ein Punkt auf dem Einheitskreis, welcher den Winkel $\theta$ mit der $x$-Achse einschließt mit 246 | $(\cos (\theta), \sin (\theta))$ beschreiben. 247 | 248 | Daraus folgt unmittelbar für die **komplexe Ebene**: 249 | 250 | $$ 251 | \exp (\theta i) = e^{\theta i} = \cos (\theta) + i \sin (\theta) 252 | $$ 253 | 254 | Dies entspricht der **Eulerschen Formel**, welche sehr nützlich ist um **trigonometrische** Zusammenhänge anders auszudrücken. 255 | 256 | --- 257 | 258 | Im Gegensatz zum [ersten Abschnitt](#beweis-mithilfe-von-differentialrechnung) auf dieser Seite, ist diese Argumentation kein _richtiger_ Beweis. Jedoch sollte damit die **Eulersche Formel** plausibel erscheinen. 259 | 260 | 261 | {' '} 262 | weitere interessante Beweise: [StackExchange: Math](https://math.stackexchange.com/questions/3510/how-to-prove-eulers-formula-ei-varphi-cos-varphi-i-sin-varphi) 263 | 264 | 265 | ## Folgerungen 266 | 267 | In Bezug auf das Thema dieses Artikels wird die **komplexe Exponentialfunktion** häufig mit einem veränderlichen Parameter (wie z.B. Zeit $t$) vorkommen. 268 | 269 | $$ 270 | e^{2 \pi t i} = \cos(2 \pi t)+i \sin(2 \pi t) 271 | $$ 272 | 273 | Dies lässt sich dann als eine Rotation verstehen, welche häufig mit einem Vektor bzw. **Zeiger** visualisiert wird: 274 | 275 | import('../components/complex-numbers/ComplexExponentialsSum.tsx')} 277 | props={{ 278 | ak: [[1, 0, 1]], 279 | omega: (2 * Math.PI) / 5 280 | }} 281 | fallback={
Loading Complex Exponentials Sum...
} 282 | /> 283 | 284 | Wenn der Zeiger bei $1$ startet lässt sich erkennen, dass es sich beim **Realteil** um $\cos (2 \pi t)$ und beim **Imaginärteil** um $\sin (2 \pi t)$ handelt. 285 | 286 | 305 | 306 | ### Addition von verschiedenen komplexen Exponentialfunktionen 307 | 308 | Gemäß der [Addition von komplexen Zahlen](./1-complex-plane#addition-von-komplexen-zahlen) lassen sich auf mehrere von $t$ abhängige Exponentialfunktionen addieren. 309 | Dabei lässt sich mit einem zusätzlichen Faktor die Frequenz anpassen: 310 | 311 | $$ 312 | e^{2 \pi f t i} = \cos(2 \pi ft)+i \sin(2 \pi f t) 313 | $$ 314 | 315 | z.B. mit $f_1 = \frac{1}{4}$, $f_2 = \frac{1}{2}$ und $f_3 = 1$ 316 | 317 | import('../components/complex-numbers/ComplexExponentialsSum.tsx')} 319 | props={{ 320 | ak:[ 321 | [1, 0, 1], 322 | [1, 0, 2], 323 | [1, 0, 4], 324 | ], 325 | omega:(2 * Math.PI) / 4 326 | }} 327 | fallback={
Loading Complex Exponentials Sum...
} 328 | /> 329 | 330 | 331 | ### Multiplikation mit Koeffizienten 332 | 333 | Interessant wird es, wenn man den Zeiger mit einer konstanten komplexen Zahl $c$ multipliziert. 334 | Dieser bestimmt die **Länge** des Zeigers, sowie die **Phasenverschiebung** bei $t=0$, da $e^{2 \pi \cdot 0 \cdot i} = 1$. 335 | 336 | 359 | -------------------------------------------------------------------------------- /pages/3-periodic-functions.de.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from "nextra-theme-docs"; 2 | 3 | import MCQComponent from '../components/general/MultipleChoiceQuestion.tsx' 4 | 5 | 6 | import LazyWrapper from '../components/LazyWrapper'; 7 | 8 | 9 | # Periodische Funktionen 10 | 11 | Auf dem Weg zur [**Fourier-Transformation**](./3-fourier-transform) lassen sich zunächst einige Stationen wie z.B. die [**Fourier-Reihe**](./2-fourier-series) betrachten. Grundlegend lässt sich mit den mathematischen Funktionen Sinus und Kosinus beginnen. 12 | 13 | ## Periodizität von Sinus und Kosinus 14 | 15 | Eine grundlegende Verbindung zwischen der Mathematik und **periodischen Phänomenen**, sind die periodischen Funktionen $\sin$ und $\cos$. 16 | Nun kann man sich fragen warum die Funktionen $\sin$ und $\cos$ überhaupt periodisch sind? 17 | Die Periodizität von $\sin$ und $\cos$ basiert grundlegend auf der Rotationssymmetrie eines Kreises. 18 | Bewegt man sich auf dem Rand eines Kreises, so kommt man nach einer Weile wieder am Punkt an, an welchem man gestartet ist. 19 | Wenn man nun einen solchen Kreis mit dem Radius $r = 1$ betrachtet, so folgt für den Umfang dieses Kreises $U=2 \pi$. Daraus folgt, dass $\sin$ und $\cos$ periodisch mit der Periodenlänge $2\pi$ sind. Es folgt also: 20 | 21 | $$ 22 | \sin(t) = \sin(t+2\pi) \qquad \text{und}\qquad \cos(t) = \cos(t+2\pi) 23 | $$ 24 | 25 | import('../components/periodic-functions/UnitCircle')} 27 | fallback={
Loading Unit Circle...
} 28 | /> 29 | 30 | 31 | Es kann somit eine **harmonische Schwingung** erzeugt werden. Die ausführliche, trigonometrische Definition der Funktionen $\sin$ und $\cos$ soll hierbei erspart bleiben. 32 | 33 | 34 | [Wikipedia: Sinus und 35 | Kosinus](https://de.wikipedia.org/wiki/Sinus_und_Kosinus) 36 | 37 | 38 | ## Parametervariation 39 | 40 | Es gibt verschiedene Möglichkeiten die Sinus- und Kosinusterme zu verändern, welche wahrscheinlich aus der Schulmathematik bekannt sein sollten: 41 | 42 | $$ 43 | f(t) = A \sin(\omega t + \Delta \varphi) \qquad \text{und} \qquad f(t) = A \cos(\omega t + \Delta \varphi) 44 | $$ 45 | 46 | Dabei gilt: 47 | 48 |
49 |
50 | 51 | | Parameter | Bedeutung | 52 | | ---------------- | -------------------------------------------------------- | 53 | | $\Delta \varphi$ | Phasenverschiebung | 54 | | $\omega$ | Kreisfrequenz (Bogenmaß pro Zeit) mit $\omega = 2 \pi f$ | 55 | | $A$ | Amplitude | 56 | 57 |
58 | ____ 59 | Im Folgenden lassen sich die obigen Parameter variieren: 60 | 61 | 62 | import("../components/periodic-functions/InteractiveSin.tsx")} 64 | fallback={
Loading Interactive Sin...
} 65 | /> 66 | 67 | 94 | 95 | Die $\sin$ und $\cos$ Funktionen lassen sich also umfangreich modifizieren. 96 | 97 | Im Folgenden wird die Form 98 | 99 | $$ 100 | \sin (2 \pi f t + \Delta \varphi) \qquad \text{ und } \qquad \cos (2 \pi f t + \Delta \varphi) 101 | $$ 102 | 103 | verwendet. Der Vorteil daran ist, dass man die Frequenz $f$ direkt ablesen und somit auf die Anzahl an Perioden pro Zeiteinheit schließen kann. 104 | Zudem ist relevant, dass $f=\frac{1}{T}$ gilt, wobei $T$ der Zeit für eine Periode entspricht (Periodendauer). 105 | 106 | ## Kombination von trigonometrischen Funktionen 107 | 108 | Um nun kompliziertere periodische Vorgänge mithilfe von diesen periodischen Funktionen zu modellieren, erscheint es intuitiv, mehrere periodische Funktionen zu kombinieren. 109 | Der erste Gedanke bei einer Kombination von mehreren Funktionswerten, könnte z.B. eine einfache **Addition** sein. Es lassen sich also beispielsweise mehrere $\sin$-Funktionen addieren. 110 | Zum Beispiel: 111 | 112 | $$ 113 | g(t) = \sin(2 \pi \cdot t) + 2 \sin (2 \pi \cdot 2t)+ \sin(2 \pi \cdot 9t) 114 | $$ 115 | 116 | import('../components/periodic-functions/SampleAddition')} 118 | fallback={
Loading Addition Sample
} 119 | /> 120 | 121 | 122 | 141 | 142 | --- 143 | 144 | Es macht Sinn, dass die Frequenz der resultierende Periodische Funktion genau dem **größten gemeinsamen Teiler** der Ausgangsfrequenzen entspricht, da sich der periodische _Gesamtvorgang_ erst wiederholen kann, wenn alle periodischen _Einzelbestandteile_ sich gleichzeitig wiederholen. 145 | 146 | 147 | Der größte gemeinsame Teiler, ist die größte Zahl, durch welche zwei oder 148 | mehrere Zahlen teilbar sind. Man schreibt auch: $\text{ggT}(a,b)$ 149 | 150 | 151 | 170 | 171 | Zusätzlich kann auch noch die Phasenverschiebung der einzelnen Terme modifiziert 172 | werden, welche jedoch in obigem Beispiel erspart bleibt. 173 | 174 | --- 175 | 176 | Die verschiedenen Schwingungsbeiträge haben somit Frequenzen, welche Vielfache einer bestimmten **Grundfrequenz** $f_0$ sind. 177 | Diese **Grundfrequenz** ist die Frequenz des resultierenden periodischen Phänomens, welches aus der additiven Verknüpfung der verschiedenen 178 | Schwingungsbeiträge resultiert. 179 | 180 | ### Einführung der Summenschreibweise 181 | 182 | Es lässt sich eine kompaktere Schreibweise für die Addition der verschiedenen Sinus-Terme formulieren: 183 | 184 | $$ 185 | \begin{equation} 186 | f(t) = \frac{A_0}{2} + \sum_{k=1}^n A_k \cdot \sin(2 \pi k f_0 \cdot t+ \Delta \varphi_k) 187 | \end{equation} 188 | $$ 189 | 190 | wobei $A_k$ die Amplitude und $\Delta \varphi_k$ die Phasenverschiebung für den $k$-ten Sinus-Term beschreibt. 191 | 192 | {/* 193 | Das Summenzeichen $\sum_{(k = 1)}^n g(k)$ bedeutet, dass der folgende Term 194 | $g(k)$, mit allen Werten für $k$ von $1$ bis $n$ aufsummiert wird. Somit gilt 195 | beispielsweise (mit $g(k) = k$): $$ \sum_{(k = 1)}^n k = 1 + 2 + ... + n $$ 196 | 197 | */} 198 | Wichtig dabei ist, dass die verschiedenen Frequenzen $k \cdot f_0$ ganzzahlige Vielfache einer **Grundfrequenz** $f_0$ sind. Die Namesgebung der Funktion ist möglicherweise etwas ungünstig, wenn es um Frequenzen geht, welche ebenfalls mit $f$ ausgedrückt werden. 199 | 200 | Zusätzlich wird häufig der Term $\frac{A_0}{2}$ dazu addiert. Durch diesen kann eine Verschiebung entlang der $y$-Achse hervorgerufen werden. 201 | Dies ist relevant, wenn beispielsweise ein periodisches Phänomen modelliert werden soll, dessen durchschnittliche Werte oberhalb der $x$-Achse liegen. 202 | 203 | 222 | 223 | Überzeuge dich davon, dass jede beliebige Summe von $\sin$-Termen durch $(1)$ ausgedrückt werden kann. 224 | 225 | ## Winkelsummenidentität 226 | 227 | Es gibt nun verschiedene praktischere und üblichere Wege den **Summenausdruck** $(1)$ zu schreiben. 228 | Um die Summe $2 \pi k f_0 \cdot t+ \Delta \varphi_k$ innerhalb des $\sin$ aufzulösen, lässt sich ein Zusammenhang für **Winkelsummen** anwenden: 229 | 230 | $$ 231 | \sin(\alpha+ \beta) = \sin(\alpha)\cos(\beta) + \cos(\alpha)\sin(\beta) 232 | $$ 233 | 234 | Eine ausführliche Herleitung für diesen Zusammenhang ist bei [**Sinus-Winkelsummenidentität**](../appendix/1-sine-angle-sum) 235 | aufgeführt. Wenn man also diesen Zusammenhang auf einen der obigen **Sinus-Terme** 236 | anwendet und ausmultipliziert folgt: 237 | 238 | $$ 239 | \begin{equation} 240 | \begin{split} 241 | A_k \sin(2 \pi k f_0 t + \Delta \varphi_k) &= A_k (\sin(2 \pi k f_0 t) \cos(\Delta \varphi_k) + \sin(\Delta \varphi_k)\cos(2 \pi k f_0 t)) \\ 242 | &= A_k \sin(2 \pi k f_0 t) \cos(\Delta \varphi_k) + A_k \sin(\Delta \varphi_k)\cos(2 \pi k f_0 t) 243 | \end{split} 244 | \end{equation} 245 | $$ 246 | 247 | Um das Ganze etwas zu vereinfachen, soll die Summe in die Form 248 | 249 | $$ 250 | \begin{equation} 251 | f(t) = \frac{a_0}{2}+ \sum_{k=1}^n a_k \cdot \cos(2 \pi k f_0 t ) + b_k \cdot \sin(2 \pi k f_0 t) 252 | \end{equation} 253 | $$ 254 | 255 | umgeschrieben werden. Es gilt $a_0 = A_0$. 256 | 257 | 276 | 277 | Die Darstellungen $(1)$ und $(3)$ lassen sich also problemlos ineinander überführen, ohne Information über die Phasenverschiebung zu verlieren oder Information hinzuzufügen. Es wird ausgenutzt, dass $\sin (\Delta \varphi_k)$ und $\cos (\Delta \varphi_k)$ **konstant** sind. 278 | Die Frage, warum Darstellung $(3)$ nützlich ist, wird jedoch erst im folgenden Abschnitt klar. Die Darstellung $(3)$ ist ein Zwischenschritt für das Umformen in eine noch praktikablere Darstellung: Die Darstellung mit [**komplexen Exponentialfunktionen**](../2-complex-exponentials). 279 | 280 | ## Darstellung mit komplexen Exponentialfunktionen 281 | 282 | Man sollte sich [**komplexe Zahlen**](../1-complex-plane) und den [**Zusammenhang**](../2-complex-exponentials) 283 | 284 | $$ 285 | \begin{equation} 286 | e^{x i} = \cos (x) + i \sin (x) 287 | \end{equation} 288 | $$ 289 | 290 | durch die vorherigen Kapitel plausibel machen. 291 | 292 | --- 293 | 294 | Der bequemste und ein sehr häufiger Weg um die Summe $(1)$ bzw. $(3)$ auszudrücken ist durch eine Formulierung mithilfe **komplexer Exponentialfunktionen**. 295 | Das Ziel ist also, $\sin$ und $\cos$ mithilfe von $(4)$ in **komplexen Exponentialfunktionen** auszudrücken. 296 | 297 | ### Sinus mit komplexen Exponentialfunktionen 298 | 299 | Für die folgende Frage ist es nützlich die Antwortmöglichkeiten auf einem Blatt Papier auszuprobieren. 300 | 301 | 324 | 325 | --- 326 | 327 | Um $\sin (x)$ mit komplexen Exponentialfunktionen auszudrücken, macht man sich die **Symmetrien** der **trigonometrischen Funktionen** zu Nutze. 328 | 329 | $$ 330 | \sin (x) = - \sin (-x)\qquad \text{ und } \qquad \cos (x) = \cos(-x) 331 | $$ 332 | 333 | 334 | Nachlesen zur Symmetrie von $\sin$ und $\cos$: [Wikipedia: Sinus und Kosinus 335 | (Definition am 336 | Einheitskreis)](https://de.wikipedia.org/wiki/Sinus_und_Kosinus#Definition_am_Einheitskreis) 337 | 338 | 339 | Wenn man also nur $\sin$ alleine mithilfe von $e^{xi}$ ausdrücken will, müsste man den $\cos$-Term loswerden. Wenn man den $\cos$-Term rauskürzen will, könnte man den Term $\cos (x) - \cos(-x) = 0$ konstruieren. 340 | 341 | Dies erfolgt über: 342 | 343 | $$ 344 | e^{xi}-e^{-xi} = \cos(x)+i \sin(x) - \cos (-x) - i \sin (-x) = 2i \sin (x) 345 | $$ 346 | 347 | Nun fehlt nur noch das Rauskürzen des Faktors $2i$. 348 | 349 | $$ 350 | \begin{equation} 351 | \frac{e^{xi}-e^{-xi}}{2i} = \sin (x) 352 | \end{equation} 353 | $$ 354 | 355 | ### Kosinus mit komplexen Exponentialfunktionen 356 | 357 | Es lässt sich analog für $\cos$ verfahren. 358 | 359 | 382 | 383 | --- 384 | 385 | Um $\cos (x)$ mit komplexen Exponentialfunktionen auszudrücken, versucht man analog zum vorherigen Abschnitt, $\sin$ rauszukürzen. 386 | Wenn man also $\sin$ rauskürzen will, könnte man den Term $\sin (x) + \sin(-x) = 0$ konstruieren: 387 | 388 | $$ 389 | e^{xi}+e^{-xi} = \cos(x)+i \sin(x) + \cos (-x) + i \sin (-x) = 2 \cos (x) 390 | $$ 391 | 392 | Nun fehlt nur noch das Rauskürzen des Faktors $2$. 393 | 394 | $$ 395 | \begin{equation} 396 | \frac{e^{xi}+e^{-xi}}{2} = \cos (x) 397 | \end{equation} 398 | $$ 399 | 400 | ### Ausdrücken der Summe mit komplexen Exponentialfunktionen 401 | 402 | Mithilfe der obigen Übersetzung, kann nun die vorliegende Summe $(3)$: 403 | 404 | $$ 405 | f(t) = \frac{a_0}{2} + \sum_{k=1}^n a_k \cdot \cos(2 \pi k f_0 t ) + b_k \cdot \sin(2 \pi k f_0 t) 406 | $$ 407 | 408 | in komplexen Exponentialfunktionen ausgedrückt werden. Man sollte sich nicht vom Aussehen dieses Zusammenhangs abschrecken lassen. Mit einigen algebraischen Umformungsschritten folgt: 409 | 410 | $$ 411 | \begin{equation} 412 | \begin{split} 413 | f(t) &= \frac{a_0}{2}+\sum_{k=1}^n a_k \cdot \cos(2 \pi k f_0 t ) + b_k \cdot \sin(2 \pi k f_0 t) \qquad | \text{ mit $(5)$ und $(6)$} \\ 414 | &= \frac{a_0}{2}+ \sum_{k=1}^n a_k \cdot \frac{e^{2 \pi i k f_0 t }+e^{-2 \pi i k f_0 t }}{2}+ b_k \cdot \frac{e^{2 \pi i k f_0 t}-e^{-2 \pi i k f_0 t}}{2i}\\ 415 | &=\frac{a_0}{2}+ \sum_{k=1}^n \frac{a_k}{2} e^{2 \pi i k f_0 t }+\frac{b_k}{2i} e^{2 \pi i k f_0 t}+\frac{a_k}{2} e^{-2 \pi i k f_0 t }- \frac{b_k}{2i} e^{-2 \pi i k f_0 t}\\ 416 | &=\frac{a_0}{2}+ \sum_{k=1}^n \frac{a_k}{2} e^{2 \pi i k f_0 t }+\frac{b_k \cdot i}{2i \cdot i} e^{2 \pi i k f_0 t}+\frac{a_k}{2} e^{-2 \pi i k f_0 t }- \frac{b_k \cdot i}{2i \cdot i} e^{-2 \pi i k f_0 t}\\ 417 | &=\frac{a_0}{2}+ \sum_{k=1}^n \left(\frac{a_k-b_ki}{2}\right) e^{2 \pi i k f_0 t }+\left(\frac{a_k+b_k i}{2}\right) e^{-2 \pi i k f_0 t }\\ 418 | &=\frac{a_0}{2}+ \sum_{k=1}^n \left(\frac{a_k-b_ki}{2}\right) e^{2 \pi i k f_0 t }+ \sum_{k=1}^n \left(\frac{a_k+b_k i}{2}\right) e^{-2 \pi i k f_0 t }\\ 419 | \end{split} 420 | \end{equation} 421 | $$ 422 | 423 | 424 | Eine Summe $\sum_{(k = 1)}^n a+b$ lässt sich aufgrund der Kommutativität und 425 | Assoziativität der Addition in $\sum_{(k = 1)}^n a + \sum_{(k = 1)}^n b$ 426 | aufspalten 427 | 428 | 429 | Bei den Koeffizienten $\frac{1}{2}(a_k-bi)$ und $\frac{1}{2}(a_k+b_ki)$ handelt es sich also um komplexe Zahlen. Diese haben jedoch eine interessante Eigenschaft. Die Zahlen sind gleich, bis auf das Vorzeichen des **Imaginärteils**. 430 | 431 | Sei $z = a+bi$. Dann wird eine komplexe Zahl $\overline{z} = a-bi$ als **konjugiert komplexe Zahl** von $z$ bezeichnet. Die **konjugiert komplexe Zahl** zu einer komplexen Zahl $z$ wird im Folgenden als $\overline{z}$ geschrieben. 432 | 433 | Interessant ist, dass für die Addition von **konjugiert komplexen Zahlen** folgt: 434 | 435 | $$ 436 | z+\overline{z} = a+bi+a-bi = 2a 437 | $$ 438 | 439 | Das Ergebnis ist also eine **reelle Zahl**. Dies macht auch in Bezug auf den Summenausdruck Sinn $(7)$, da es zunächst keine komplexen Anteile im Ergebnis geben soll. 440 | 441 | Man definiere also $c_k = \frac{1}{2}(a_k-bi)$, woraus $\overline{c}_k = \frac{1}{2}(a_k+b_ki)$ folgt. 442 | 443 | $$ 444 | \begin{equation} 445 | \begin{split} 446 | f(t) &=\frac{a_0}{2}+ \sum_{k=1}^n c_k e^{2 \pi i k f_0 t }+ \sum_{k=1}^n \overline{c}_k e^{-2 \pi i k f_0 t }\\ 447 | &\overset{*}{=} \frac{a_0}{2}+ \sum_{k=1}^n c_k e^{2 \pi i k f_0 t }+ \sum_{k=-n}^{-1} \overline{c}_{-k} e^{2 \pi i k f_0 t }\\ 448 | &\overset{**}{=} \sum_{k=-n}^n c_k e^{2 \pi i k f_0 t } 449 | \end{split} 450 | \end{equation} 451 | $$ 452 | 453 | $*$ Das negative Vorzeichen im Exponenten des Terms $e^{- 2 \pi i k f_0 t }$ lässt sich ausnutzen, um die Summe _umzukehren_. Das bedeutet, dass das Vorzeichen der Zählvariable (hier $k$) negiert wird. Dadurch lässt sich das negative Vorzeichen im Exponenten entfernen. Die Summe zählt nun von $-n$ bis $-1$. Die Reihenfolge der Terme in der Summe ist aufgrund der Kommutativität der Addition irrelevant. 454 | 455 | $**$ Für diesen Schritt müssen die Koeffizienten $c_k$ neu definiert werden. Zunächst galt $c_k = \frac{1}{2} (a_k - b_k i)$. Für $k <0$ muss $c_k = \overline{c}_{-k}$ (**konjugiert komplexe Zahl**). Außerdem wurde $k=0$ mit in die Summe eingebunden. 456 | Dafür gab es zunächst noch keine Definition. Da der zugehörige Term der komplexen Exponentialfunktion $e^{2 \pi i \cdot 0 \cdot f_0 t} = 1$ folgt, dass $c_0$ die gleichen Eigenschaften hat wie der Term $\frac{a_0}{2}$. Man setze also $c_0 = \frac{a_0}{2}$. 457 | 458 | Zusammenfassend: 459 | 460 | $$ 461 | c_k = 462 | \begin{cases} 463 | \frac{1}{2}(a_k - b_k i) & \text{ wenn } k > 0 \\ 464 | \frac{a_0}{2} & \text{ wenn } k = 0 \\ 465 | \overline{c}_{-k} & \text{ wenn } k < 0\\ 466 | \end{cases} 467 | $$ 468 | 469 | Die ursprüngliche Summe von $\sin$-Termen, mit den ganzzahligen Vielfachen einer **Grundfrequenz** $f_0$, lässt sich also mit **komplexen Exponentialfunktionen** als: 470 | 471 | $$ 472 | f(t) = \sum_{k=-n}^n c_k e^{2 \pi i k f_0 t } 473 | $$ 474 | 475 | schreiben. Warum diese Schreibweise praktischer ist, wird beispielsweise durch die Anzahl der Parameter deutlich. Es gibt lediglich die verschiedenen Koeffizienten $c_k$, welche die gesamte Information über die verschiedenen Schwingungsbeiträge beinhalten. 476 | Das liegt daran, dass es sich um komplexe Zahlen handelt, und somit die Information über die **Phasenverschiebung** und über die **Amplitude** der Schwingung mit im Koeffizienten $c_k$ enthalten ist. 477 | 478 | ## Ausblick: Fourier-Reihen 479 | 480 | Die Schreibweise $f(t) = ...$, welche in den obigen Abschnitten benutzt wurde ist fraglich. 481 | Kann denn jedes periodische Signal einer **Grundfrequenz** $f_0$ überhaupt mit den grundlegenden _Baublöcken_ (trigonometrischen Funktionen) ausgedrückt werden? 482 | Gilt für alle Funktionen $f(t)$, welche periodisches Verhalten aufweisen, also $f(t) = f(t + \frac{1}{f_0})$, dass man: 483 | 484 | $$ 485 | f(t) = \sum_{k=-n}^n c_k e^{2 \pi i k f_0 t } 486 | $$ 487 | 488 | schreiben kann? Und wie könnte man dann auf die Koeffizienten $c_k$ schließen, wenn $f(t)$ und die Periodendauer bekannt sind? 489 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution-NonCommercial-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More_considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International 58 | Public License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-NonCommercial-ShareAlike 4.0 International Public License 63 | ("Public License"). To the extent this Public License may be 64 | interpreted as a contract, You are granted the Licensed Rights in 65 | consideration of Your acceptance of these terms and conditions, and the 66 | Licensor grants You such rights in consideration of benefits the 67 | Licensor receives from making the Licensed Material available under 68 | these terms and conditions. 69 | 70 | Section 1 -- Definitions. 71 | 72 | a. Adapted Material means material subject to Copyright and Similar 73 | Rights that is derived from or based upon the Licensed Material 74 | and in which the Licensed Material is translated, altered, 75 | arranged, transformed, or otherwise modified in a manner requiring 76 | permission under the Copyright and Similar Rights held by the 77 | Licensor. For purposes of this Public License, where the Licensed 78 | Material is a musical work, performance, or sound recording, 79 | Adapted Material is always produced where the Licensed Material is 80 | synched in timed relation with a moving image. 81 | 82 | b. Adapter's License means the license You apply to Your Copyright 83 | and Similar Rights in Your contributions to Adapted Material in 84 | accordance with the terms and conditions of this Public License. 85 | 86 | c. BY-NC-SA Compatible License means a license listed at 87 | creativecommons.org/compatiblelicenses, approved by Creative 88 | Commons as essentially the equivalent of this Public License. 89 | 90 | d. Copyright and Similar Rights means copyright and/or similar rights 91 | closely related to copyright including, without limitation, 92 | performance, broadcast, sound recording, and Sui Generis Database 93 | Rights, without regard to how the rights are labeled or 94 | categorized. For purposes of this Public License, the rights 95 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 96 | Rights. 97 | 98 | e. Effective Technological Measures means those measures that, in the 99 | absence of proper authority, may not be circumvented under laws 100 | fulfilling obligations under Article 11 of the WIPO Copyright 101 | Treaty adopted on December 20, 1996, and/or similar international 102 | agreements. 103 | 104 | f. Exceptions and Limitations means fair use, fair dealing, and/or 105 | any other exception or limitation to Copyright and Similar Rights 106 | that applies to Your use of the Licensed Material. 107 | 108 | g. License Elements means the license attributes listed in the name 109 | of a Creative Commons Public License. The License Elements of this 110 | Public License are Attribution, NonCommercial, and ShareAlike. 111 | 112 | h. Licensed Material means the artistic or literary work, database, 113 | or other material to which the Licensor applied this Public 114 | License. 115 | 116 | i. Licensed Rights means the rights granted to You subject to the 117 | terms and conditions of this Public License, which are limited to 118 | all Copyright and Similar Rights that apply to Your use of the 119 | Licensed Material and that the Licensor has authority to license. 120 | 121 | j. Licensor means the individual(s) or entity(ies) granting rights 122 | under this Public License. 123 | 124 | k. NonCommercial means not primarily intended for or directed towards 125 | commercial advantage or monetary compensation. For purposes of 126 | this Public License, the exchange of the Licensed Material for 127 | other material subject to Copyright and Similar Rights by digital 128 | file-sharing or similar means is NonCommercial provided there is 129 | no payment of monetary compensation in connection with the 130 | exchange. 131 | 132 | l. Share means to provide material to the public by any means or 133 | process that requires permission under the Licensed Rights, such 134 | as reproduction, public display, public performance, distribution, 135 | dissemination, communication, or importation, and to make material 136 | available to the public including in ways that members of the 137 | public may access the material from a place and at a time 138 | individually chosen by them. 139 | 140 | m. Sui Generis Database Rights means rights other than copyright 141 | resulting from Directive 96/9/EC of the European Parliament and of 142 | the Council of 11 March 1996 on the legal protection of databases, 143 | as amended and/or succeeded, as well as other essentially 144 | equivalent rights anywhere in the world. 145 | 146 | n. You means the individual or entity exercising the Licensed Rights 147 | under this Public License. Your has a corresponding meaning. 148 | 149 | Section 2 -- Scope. 150 | 151 | a. License grant. 152 | 153 | 1. Subject to the terms and conditions of this Public License, 154 | the Licensor hereby grants You a worldwide, royalty-free, 155 | non-sublicensable, non-exclusive, irrevocable license to 156 | exercise the Licensed Rights in the Licensed Material to: 157 | 158 | a. reproduce and Share the Licensed Material, in whole or 159 | in part, for NonCommercial purposes only; and 160 | 161 | b. produce, reproduce, and Share Adapted Material for 162 | NonCommercial purposes only. 163 | 164 | 2. Exceptions and Limitations. For the avoidance of doubt, where 165 | Exceptions and Limitations apply to Your use, this Public 166 | License does not apply, and You do not need to comply with 167 | its terms and conditions. 168 | 169 | 3. Term. The term of this Public License is specified in Section 170 | 6(a). 171 | 172 | 4. Media and formats; technical modifications allowed. The 173 | Licensor authorizes You to exercise the Licensed Rights in 174 | all media and formats whether now known or hereafter created, 175 | and to make technical modifications necessary to do so. The 176 | Licensor waives and/or agrees not to assert any right or 177 | authority to forbid You from making technical modifications 178 | necessary to exercise the Licensed Rights, including 179 | technical modifications necessary to circumvent Effective 180 | Technological Measures. For purposes of this Public License, 181 | simply making modifications authorized by this Section 2(a) 182 | (4) never produces Adapted Material. 183 | 184 | 5. Downstream recipients. 185 | 186 | a. Offer from the Licensor -- Licensed Material. Every 187 | recipient of the Licensed Material automatically 188 | receives an offer from the Licensor to exercise the 189 | Licensed Rights under the terms and conditions of this 190 | Public License. 191 | 192 | b. Additional offer from the Licensor -- Adapted Material. 193 | Every recipient of Adapted Material from You 194 | automatically receives an offer from the Licensor to 195 | exercise the Licensed Rights in the Adapted Material 196 | under the conditions of the Adapter's License You apply. 197 | 198 | c. No downstream restrictions. You may not offer or impose 199 | any additional or different terms or conditions on, or 200 | apply any Effective Technological Measures to, the 201 | Licensed Material if doing so restricts exercise of the 202 | Licensed Rights by any recipient of the Licensed 203 | Material. 204 | 205 | 6. No endorsement. Nothing in this Public License constitutes or 206 | may be construed as permission to assert or imply that You 207 | are, or that Your use of the Licensed Material is, connected 208 | with, or sponsored, endorsed, or granted official status by, 209 | the Licensor or others designated to receive attribution as 210 | provided in Section 3(a)(1)(A)(i). 211 | 212 | b. Other rights. 213 | 214 | 1. Moral rights, such as the right of integrity, are not 215 | licensed under this Public License, nor are publicity, 216 | privacy, and/or other similar personality rights; however, to 217 | the extent possible, the Licensor waives and/or agrees not to 218 | assert any such rights held by the Licensor to the limited 219 | extent necessary to allow You to exercise the Licensed 220 | Rights, but not otherwise. 221 | 222 | 2. Patent and trademark rights are not licensed under this 223 | Public License. 224 | 225 | 3. To the extent possible, the Licensor waives any right to 226 | collect royalties from You for the exercise of the Licensed 227 | Rights, whether directly or through a collecting society 228 | under any voluntary or waivable statutory or compulsory 229 | licensing scheme. In all other cases the Licensor expressly 230 | reserves any right to collect such royalties, including when 231 | the Licensed Material is used other than for NonCommercial 232 | purposes. 233 | 234 | Section 3 -- License Conditions. 235 | 236 | Your exercise of the Licensed Rights is expressly made subject to the 237 | following conditions. 238 | 239 | a. Attribution. 240 | 241 | 1. If You Share the Licensed Material (including in modified 242 | form), You must: 243 | 244 | a. retain the following if it is supplied by the Licensor 245 | with the Licensed Material: 246 | 247 | i. identification of the creator(s) of the Licensed 248 | Material and any others designated to receive 249 | attribution, in any reasonable manner requested by 250 | the Licensor (including by pseudonym if 251 | designated); 252 | 253 | ii. a copyright notice; 254 | 255 | iii. a notice that refers to this Public License; 256 | 257 | iv. a notice that refers to the disclaimer of 258 | warranties; 259 | 260 | v. a URI or hyperlink to the Licensed Material to the 261 | extent reasonably practicable; 262 | 263 | b. indicate if You modified the Licensed Material and 264 | retain an indication of any previous modifications; and 265 | 266 | c. indicate the Licensed Material is licensed under this 267 | Public License, and include the text of, or the URI or 268 | hyperlink to, this Public License. 269 | 270 | 2. You may satisfy the conditions in Section 3(a)(1) in any 271 | reasonable manner based on the medium, means, and context in 272 | which You Share the Licensed Material. For example, it may be 273 | reasonable to satisfy the conditions by providing a URI or 274 | hyperlink to a resource that includes the required 275 | information. 276 | 3. If requested by the Licensor, You must remove any of the 277 | information required by Section 3(a)(1)(A) to the extent 278 | reasonably practicable. 279 | 280 | b. ShareAlike. 281 | 282 | In addition to the conditions in Section 3(a), if You Share 283 | Adapted Material You produce, the following conditions also apply. 284 | 285 | 1. The Adapter's License You apply must be a Creative Commons 286 | license with the same License Elements, this version or 287 | later, or a BY-NC-SA Compatible License. 288 | 289 | 2. You must include the text of, or the URI or hyperlink to, the 290 | Adapter's License You apply. You may satisfy this condition 291 | in any reasonable manner based on the medium, means, and 292 | context in which You Share Adapted Material. 293 | 294 | 3. You may not offer or impose any additional or different terms 295 | or conditions on, or apply any Effective Technological 296 | Measures to, Adapted Material that restrict exercise of the 297 | rights granted under the Adapter's License You apply. 298 | 299 | Section 4 -- Sui Generis Database Rights. 300 | 301 | Where the Licensed Rights include Sui Generis Database Rights that 302 | apply to Your use of the Licensed Material: 303 | 304 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 305 | to extract, reuse, reproduce, and Share all or a substantial 306 | portion of the contents of the database for NonCommercial purposes 307 | only; 308 | 309 | b. if You include all or a substantial portion of the database 310 | contents in a database in which You have Sui Generis Database 311 | Rights, then the database in which You have Sui Generis Database 312 | Rights (but not its individual contents) is Adapted Material, 313 | including for purposes of Section 3(b); and 314 | 315 | c. You must comply with the conditions in Section 3(a) if You Share 316 | all or a substantial portion of the contents of the database. 317 | 318 | For the avoidance of doubt, this Section 4 supplements and does not 319 | replace Your obligations under this Public License where the Licensed 320 | Rights include other Copyright and Similar Rights. 321 | 322 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 323 | 324 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 325 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 326 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 327 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 328 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 329 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 330 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 331 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 332 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 333 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 334 | 335 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 336 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 337 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 338 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 339 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 340 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 341 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 342 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 343 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 344 | 345 | c. The disclaimer of warranties and limitation of liability provided 346 | above shall be interpreted in a manner that, to the extent 347 | possible, most closely approximates an absolute disclaimer and 348 | waiver of all liability. 349 | 350 | Section 6 -- Term and Termination. 351 | 352 | a. This Public License applies for the term of the Copyright and 353 | Similar Rights licensed here. However, if You fail to comply with 354 | this Public License, then Your rights under this Public License 355 | terminate automatically. 356 | 357 | b. Where Your right to use the Licensed Material has terminated under 358 | Section 6(a), it reinstates: 359 | 360 | 1. automatically as of the date the violation is cured, provided 361 | it is cured within 30 days of Your discovery of the 362 | violation; or 363 | 364 | 2. upon express reinstatement by the Licensor. 365 | 366 | For the avoidance of doubt, this Section 6(b) does not affect any 367 | right the Licensor may have to seek remedies for Your violations 368 | of this Public License. 369 | 370 | c. For the avoidance of doubt, the Licensor may also offer the 371 | Licensed Material under separate terms or conditions or stop 372 | distributing the Licensed Material at any time; however, doing so 373 | will not terminate this Public License. 374 | 375 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 376 | License. 377 | 378 | Section 7 -- Other Terms and Conditions. 379 | 380 | a. The Licensor shall not be bound by any additional or different 381 | terms or conditions communicated by You unless expressly agreed. 382 | 383 | b. Any arrangements, understandings, or agreements regarding the 384 | Licensed Material not stated herein are separate from and 385 | independent of the terms and conditions of this Public License. 386 | 387 | Section 8 -- Interpretation. 388 | 389 | a. For the avoidance of doubt, this Public License does not, and 390 | shall not be interpreted to, reduce, limit, restrict, or impose 391 | conditions on any use of the Licensed Material that could lawfully 392 | be made without permission under this Public License. 393 | 394 | b. To the extent possible, if any provision of this Public License is 395 | deemed unenforceable, it shall be automatically reformed to the 396 | minimum extent necessary to make it enforceable. If the provision 397 | cannot be reformed, it shall be severed from this Public License 398 | without affecting the enforceability of the remaining terms and 399 | conditions. 400 | 401 | c. No term or condition of this Public License will be waived and no 402 | failure to comply consented to unless expressly agreed to by the 403 | Licensor. 404 | 405 | d. Nothing in this Public License constitutes or may be interpreted 406 | as a limitation upon, or waiver of, any privileges and immunities 407 | that apply to the Licensor or You, including from the legal 408 | processes of any jurisdiction or authority. 409 | 410 | ======================================================================= 411 | 412 | Creative Commons is not a party to its public 413 | licenses. Notwithstanding, Creative Commons may elect to apply one of 414 | its public licenses to material it publishes and in those instances 415 | will be considered the “Licensor.” The text of the Creative Commons 416 | public licenses is dedicated to the public domain under the CC0 Public 417 | Domain Dedication. Except for the limited purpose of indicating that 418 | material is shared under a Creative Commons public license or as 419 | otherwise permitted by the Creative Commons policies published at 420 | creativecommons.org/policies, Creative Commons does not authorize the 421 | use of the trademark "Creative Commons" or any other trademark or logo 422 | of Creative Commons without its prior written consent including, 423 | without limitation, in connection with any unauthorized modifications 424 | to any of its public licenses or any other arrangements, 425 | understandings, or agreements concerning use of licensed material. For 426 | the avoidance of doubt, this paragraph does not form part of the 427 | public licenses. 428 | 429 | Creative Commons may be contacted at creativecommons.org. 430 | -------------------------------------------------------------------------------- /pages/1-complex-plane.de.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from 'nextra-theme-docs' 2 | 3 | # Komplexe Ebene 4 | 5 | import LazyWrapper from '../components/LazyWrapper'; 6 | 7 | 8 | import QuestionAnswer, { Answer } from '../components/general/QuestionAnswer.tsx' 9 | import MCQComponent from '../components/general/MultipleChoiceQuestion.tsx' 10 | import {Coordinates,Mafs,Plot,Text,Vector} from "mafs" 11 | import { BlockMath, InlineMath } from 'react-katex'; 12 | 13 | 14 | 15 | 16 | ## Neue Zahlensysteme 17 | 18 | Es ergibt sich eine Problematik, wenn man Gleichungen wie 19 | 20 | $$ 21 | x^2 = -1 22 | $$ 23 | 24 | mit den reellen Zahlen $\mathbb{R}$ lösen will. 25 | In der Schule lernt man, dass diese Gleichung keine Lösung hat. Sie ist äquivalent zum Problem, Nullstellen der Funktion $f(x)= x^2+1$ zu finden. 26 | 27 | Warum besitzt die Gleichung $x + 5 = 4$ aber ein Lösung? 28 | 29 | Wenn man nur die positiven Zahlen betrachtet, dann gibt es keine Lösung. Es scheint uns dennoch logisch, dass es eine Lösung bei -1 gibt. Man geht benutzt hierbei also intuitiv negative Zahlen. 30 | Die Bedeutung dieser Lösung ist in der Realität jedoch auch fraglich: *Wie viele Äpfel bleiben übrig, wenn man 4 Äpfel hat und 5 weggenommen werden?* 31 | 32 | Es ist eine Frage des Abstraktionsniveaus. 33 | Wenn man auf Probleme stößt, lässt sich einfach die Menge der betrachteten Zahlen erweitern. Auch wenn die *neuen* Zahlen nicht immer einen direkt nachvollziehbaren Realitätsbezug bieten (z.B. negative Anzahlen oder Längen). 34 | 35 | $$ 36 | \mathbb{N} \rightarrow \mathbb{Z} \rightarrow \mathbb{Q} \rightarrow \mathbb{R} \rightarrow \text{ ? } 37 | $$ 38 | 39 | Um eine Lösung für die obige Gleichung zu finden, lässt sich somit ein weiteres Zahlensystem einführen: $\mathbb{C}$ (die **komplexen Zahlen**). 40 | Diese werden auch als _imaginäre Zahlen_ bezeichnet, was jedoch ein problematischer Name ist. Die komplexen Zahlen haben tatsächlich unglaublich viele Anwendungen bei der Beschreibung von Phänomenen der **Realität**, was hoffentlich im Folgenden deutlich wird. 41 | 42 | ## Die _imaginäre_ Einheit 43 | 44 | Um das Problem von $x^2 = -1$ zu lösen, gebe es also eine Zahl mit der Eigenschaft 45 | 46 | $$ 47 | i = \sqrt{-1} 48 | $$ 49 | 50 | Das scheint absurd, da es unserer Intuition widerspricht: Egal welche Zahl man quadriert, das Vorzeichen vom Ergebnis ist immer positiv. 51 | 52 | Man muss jedoch annehmen, dass $i$ nun mal genau so definiert ist, dass $i^2 = -1$. Die Zahl $i$ erscheint also zunächst irgendwie nicht wie eine *gewöhnliche* Zahl, welche ein Vorzeichen besitzt und auf dem Zahlenstrahl eingeordnet werden kann. Sie ist nun mal keine reelle Zahl ($i \notin \mathbb{R}$). 53 | 54 | Für das Erste ist es schwer, die Annahme $i^2 = -1$ zu akzeptieren. Im Verlauf erscheint dieser Schritt, des Definierens von $i$ als $\sqrt{-1}$ jedoch immer logischer. 55 | Mithilfe von $i$ lässt sich selbstverständlich auch jede andere negative Wurzel darstellen: 56 | 57 | $$ 58 | \sqrt{-a} = \sqrt{a \cdot -1} = \sqrt{a} \cdot \sqrt{-1} = \sqrt{a} \cdot i 59 | $$ 60 | 61 | Komplexe Zahlen können auch mit reellen Zahlen addiert werden. Was das bedeutet, bleibt weiterhin fraglich. Der Term $5+i$ beispielsweise, lässt sich jedoch nicht weiter vereinfachen. Er wird als komplexe Zahl betrachtet. Die allgemeine Form einer komplexen Zahl $z\in \mathbb{C}$ stellt sich dabei als $z=a+bi$ heraus. 62 | 63 | ## Darstellung komplexer Zahlen 64 | 65 | Es folgt eine weitere absurde Annahme, welche zunächst beziehungslos zu $i=\sqrt{-1}$ scheint. Da wie bereits beschrieben, die _imaginäre_ Einheit $i$ irgendwie nicht auf dem Zahlenstrahl lokalisiert werden kann, 66 | betrachtet man die Zahlen nicht mehr als eindimensional, sondern erweitert die Zahlen um eine Dimension. Es existiert also nicht mehr ein **Strahl** an Zahlen, sondern eine **Ebene** (zweidimensional) an Zahlen. 67 | Jede Zahl kann durch einen Punkt bzw. Vektor auf dieser Ebene dargestellt werden: 68 | 69 | 70 | 71 | { 74 | return y.toString() + 'i' 75 | }, 76 | }} 77 | /> 78 | 79 | 80 | {"i-3"} 81 | 82 | 83 | 84 | {"2-i"} 85 | 86 | 87 | 88 | {"4"} 89 | 90 | 91 | 92 | Es ist weiterhin fraglich, was diese Zahlenebene mit der Definition der imaginären Einheit zutun hat. Wichtig ist, dass man auf dieser Zahlenebene jede komplexe Zahl darstellen kann. Selbstverständlich existieren weiterhin die reellen Zahlen ohne Einschränkungen. Drei Zahlen sind links durch Vektoren mit ihren Koordinaten gekennzeichnet. 93 | 94 | Ähnlich zum kartesischen Koordinatensystem, gibt es eine vertikale Achse und eine horizontale Achse, welche orthogonal zueinander sind. 95 | 96 | ## Real- und Imaginärteil 97 | 98 | Man kann eine komplexe Zahl immer in einen **Realteil** 99 | und in einen **Imaginärteil** zerlegen. Die Namensgebung, ist auch hierbei, wie bereits herausgestellt, problematisch. 100 | Der **Realteil** von einer komplexen Zahl $z \in \mathbb{C}$ ($z=a+bi$) wird im Folgenden mit $\Re (a+bi)$ und der Imaginärteil $\Im (a+bi)$ in Frakturschreibweise abgekürzt. Häufig werden sie auch mit $\text{Re}(a+bi)$ und $\text{Im}(a+bi)$ abgekürzt. 101 | 102 | 125 | 126 | 127 | Der **Realteil** ist nach obiger geometrischer Interpretation, die horizontale Komponente der komplexen Zahl: 128 | 129 | $$ 130 | 131 | \Re (a+bi) = a 132 | 133 | 134 | $$ 135 | 136 | Der **Imaginärteil** ist nach obiger geometrischer Interpretation, die vertikale Komponente der komplexen Zahl: 137 | 138 | $$ 139 | 140 | \Im (a+bi) = b 141 | 142 | 143 | $$ 144 | 145 | Man kann sich die komplexe Zahlenebene also wie ein **kartesisches Koordinatensystem** vorstellen, in welchem jede komplexe Zahl $z \in \mathbb{C}$ die Koordinaten $(\Re (z ), \Im (z))$ besitzt. 146 | 147 | ## Addition von komplexen Zahlen 148 | 149 | Im Folgenden lässt sich die Addition von komplexen Zahlen betrachten. Sie funktioniert genauso so wie man es wahrscheinlich erwartet. 150 | 151 | import('../components/complex-numbers/ComplexPlaneAdder.tsx')} 153 | fallback={
Loading Complex Plane Adder...
} 154 | /> 155 | 175 | 176 | Die Addition von komplexen Zahlen ist also analog zur Addition von reellen Zahlen, bloß im zweidimensionalen Raum. Zum Einen addiert man die horizontalen Komponenten (den **Realteil**) und zum Anderen addiert man die vertikalen Komponenten (den **Imaginärteil**). 177 | 178 | Der Zusammenhang zwischen der aufgezeigten _geometrische_ Interpretation der komplexen Zahlen und der Definition der **imaginären Einheit** $i = \sqrt{-1}$ bleibt weiterhin fraglich. 179 | Dieser wird jedoch bei der Multiplikation von komplexen Zahlen sehr deutlich. Danach erscheint es logisch, warum man **imaginäre Einheit** auf einer neuen orthogonalen Achse platziert und eine neue Dimension hinzufügt. 180 | 181 | ## Multiplikation von komplexen Zahlen 182 | 183 | ### Rotation von Vektoren um den Ursprung 184 | 185 | Zunächst soll ein scheinbar bezugloses Phänomen betrachtet werden: die **Rotation** um $90°$ um den Ursprung: 186 | 187 | import('../components/complex-numbers/ComplexPlaneRotation.tsx')} 189 | fallback={
Loading Complex Plane Rotation...
} 190 | /> 191 | 192 | Jeder Vektor bzw. Punkt auf der **komplexen Ebene** bzw. auch im **kartesischen Koordinatensystem** lässt sich um den Ursprung rotieren. 193 | 194 | 214 | 215 | Im Folgenden soll ein Punkt $(a,b) \in \mathbb{R}^2$ im **kartesischen Koordinatensystem** betrachtet werden. 216 | 217 | 218 | $\mathbb{R}^2$ enthält alle zweidimensionalen Punkte (bzw. *Tupel*) der reellen Zahlen. Man 219 | schreibt auch $\mathbb{R} \times \mathbb{R} = \mathbb{R}^2$. Die Menge $\mathbb{R}^3$ 220 | ist die Menge aller $3$-dimensionalen Punkte mit reellen Zahlen; $\mathbb{R} 221 | ^n$ die Menge der $n$-dimensionalen Punkte (bzw. *Tupel*) mit reellen Zahlen. 222 | 223 | 224 | 247 | 248 | Wenn man einen Punkt $(a,b) \in \mathbb{R}^2$ somit vier mal um $90°$ um den Ursprung gegen den Uhrzeigersinn rotiert, müsste man wieder $(a,b)$ erhalten: 249 | 250 | $$ 251 | (a,b) \xrightarrow{90°} (-b,a)\xrightarrow{90°} (-a,-b) \xrightarrow{90°} (b,-a) \xrightarrow{90°} (a,b) 252 | $$ 253 | 254 | Wie bereits herausgestellt, ist die **komplexe Ebene** sehr ähnlich zum **kartesischen Koordinatensystem**. Die vertikale Achse beschreibt den Imaginärteil $\Im$ und die horizontale beschreibt den Realteil $\Re$. 255 | 256 | Wenn man eine **komplexe Zahl** $a+bi = z \in \mathbb{C}$ also um $90°$ gegen den Uhrzeigersinn um den Ursprung rotiert, müsste analog zum **kartesischen Koordinatensystem** Folgendes passieren: 257 | 258 | $$ 259 | a+bi\xrightarrow{90°}-b+ai \xrightarrow{90°} -a-bi \xrightarrow{90°} b-ai \xrightarrow{90°}a+bi 260 | $$ 261 | 262 | 263 | ### Multiplikation mit der _imaginären_ Einheit 264 | 265 | Nun soll betrachtet werden, was unabhängig von der **geometrischen** Interpretation einer komplexen Zahl, passiert, wenn man komplexe Zahlen multipliziert. 266 | 267 | 290 | 291 | 314 | 315 | 316 | --- 317 | 318 | Es fällt möglicherweise auf, dass durch die Multiplikation mit $i$ das gleiche passiert (wie bei der Rotation einer **komplexen Zahl** um $90°$ gegen den Uhrzeigersinn um den Ursprung). 319 | 320 | $$ 321 | a+bi\xrightarrow{\cdot i}-b+ai \xrightarrow{\cdot i} -a-bi \xrightarrow{\cdot i} b-ai \xrightarrow{\cdot i}a+bi 322 | $$ 323 | 324 | Die *Transformationen* sind also *äquivalent*. 325 | 326 | ### Einklang zwischen Rotation und Multiplikation 327 | 328 | Die Multiplikation mit $i$ ist also äquivalent zu einer Rotation um $90°$ gegen den Uhrzeigersinn. Es macht also Sinn, dass man $i$ genau da platziert, wo die komplexe Zahl $z = 1 +0i$ landen würde, wenn man sie um $90°$ gegen den Uhrzeigersinn rotiert. Dieser Einklang von der **geometrischen Intuition** und der **algebraischen Lösung**, lässt sich noch weiter verallgemeinern. 329 | 330 | Wie bereits gezeigt wurde, wird jede komplexe Zahl bei Multiplikation mit $i$ um $90°$ gegen den Uhrzeigersinn rotiert. 331 | 332 | 333 | 352 | 353 | 376 | 377 | 378 | 379 | ## Polarkoordinaten 380 | 381 | Um im Folgenden diese Verknüpfung zwischen Multiplikation und Rotation zu verallgemeinern, lässt sich eine neue Form für die **Repräsentation** der komplexen Zahlen einführen. 382 | 383 | Jede komplexe Zahl ist eindeutig durch ihren Realteil $\Re$ und ihren Imaginärteil $\Im$ bestimmt. Man kann sich nun überlegen, durch welche Informationen man eine komplexe Zahl ebenfalls eindeutig bestimmen kann. 384 | 385 | Im Folgenden wird eine Zahl $a+bi$ auf der **komplexen Ebene** und der zugehörige **Winkel** zwischen dem Vektor der komplexen Zahl und der _Realteil-Achse_ betrachtet: 386 | 387 | import('../components/complex-numbers/PolarCoordinates.tsx')} 389 | fallback={
Loading Polar Coordinates...
} 390 | /> 391 | 392 | 407 | 408 | --- 409 | 410 | Die Darstellung einer komplexen Zahl in Abhängigkeit des obigen Winkels, eignet sich zum Verständnis des bereits betrachteten Phänomens der **Rotation und Multiplikation**. 411 | 412 | Wenn nun die zusätzlich zu einem Winkel $\phi$ die Information über die Länge $r$ des Vektors bekannt ist, lässt sich jede komplexe Zahl mit dem Paar $(r,\phi)$ eindeutig beschreiben. 413 | 414 | Wenn $r$ und $\phi$ eine komplexe Zahl eindeutig beschreiben, muss die komplexe Zahl $a+bi$ selbstverständlich in Abhängigkeit dieser beiden Größen ausgedrückt werden können. 415 | Dies lässt sich mithilfe von **trigonometrische Zusammenhängen** umsetzen. 416 | 417 | 440 | 463 | 464 | 465 | --- 466 | 467 | Eine **komplexe Zahl** $z\in \mathbb{C}$ kann somit auch mit $\phi$ und $r$ als 468 | 469 | $$ 470 | z = r \cos (\phi) + i r \cos (\phi) = r (\cos (\phi) + i \sin (\phi)) 471 | $$ 472 | 473 | ausgedrückt werden. Dies folgt nachdem die entsprechenden Repräsentationen für $a$ und $b$ eingesetzt wurden. 474 | Diese Darstellung wird auch als **Polardarstellung** bezeichnet. 475 | Die **Polardarstellung** wird im Folgenden nützlich sein, um die Rotation von komplexen Zahlen wirklich zu verstehen. Bis jetzt wurde lediglich phänomenologisch erkannt, dass die Rotation um $90^\circ$ äquivalent zu einer 476 | Multiplikation mit $i$ ist. 477 | 478 | Der Term $\cos (\phi) + i \sin (\phi)$ wird im folgenden auch mit $\text{cis} (\phi)$ abgekürzt. 479 | Somit $z= r \text{cis} (\phi)$. 480 | 481 | Im Folgenden wird $r$ als **Betrag** und $\phi$ als **Polarwinkel** der komplexen Zahl $z$ bezeichnet. 482 | 483 | ## Multiplikation von beliebigen komplexen Zahlen 484 | 485 | Zuvor wurde lediglich die Multiplikation von $i$ und einer beliebigen komplexen Zahl $z \in \mathbb{C}$ betrachtet und herausgestellt, dass die Multiplikation mit $i$, eine Rotation um $90°$ gegen den Uhrzeigersinn bewirkt. 486 | 487 | Eine gerechtfertigte Frage lautet nun, inwiefern dieses Verhalten beim multiplizieren von beliebigen komplexen Zahlen $z \in \mathbb{C}$ und $w \in \mathbb{C}$ auch auftritt. 488 | 489 | ### Multiplikation in algebraischer Darstellung 490 | 491 | Wenn man die beiden Zahlen in der **algebraischen Darstellung** multipliziert folgt: 492 | 493 | $$ 494 | z \cdot w = (a+bi) \cdot (c+di) = ac + bic + adi - bd 495 | $$ 496 | 497 | Hieraus lässt sich noch kein eindeutiger Schluss über die Rotation ziehen. 498 | 499 | ### Multiplikation mit Polardarstellung 500 | 501 | Seien $(r,\phi)$ die **Polarkoordinaten** von $z$ und $(s,\theta)$ die **Polarkoordinaten** von $w$. 502 | Bei Multiplikation in der **Polardarstellung** folgt (Mit **Distributiveigenschaft**): 503 | 504 | $$ 505 | \begin{equation*} 506 | \begin{split} 507 | z \cdot w &= (r \cos(\phi) + ri \sin (\phi)) \cdot (s \cos (\theta) + si \sin (\theta))\\ 508 | &= r \cos (\phi) \cdot s \cos (\theta) + ri \sin (\phi) \cdot s \cos (\theta)+ r\cos(\phi) \cdot si\sin(\theta) + r i^2 \sin (\phi) \cdot s \sin (\theta)\\ 509 | &= rs (\cos (\phi) \cos (\theta) - \sin (\phi) \sin (\theta)) + rsi(\sin(\phi) \cos(\theta) + \cos ( \phi) \sin(\theta)) \\ 510 | &\overset{*}{=} rs \cos(\phi + \theta) +rsi(\sin(\phi) \cos(\theta) + \cos ( \phi) \sin(\theta)) \\ 511 | &\overset{**}{=} rs \cos(\phi + \theta) +rsi \sin(\phi + \theta) \\ 512 | &= rs (\cos(\phi+\theta) + i \sin(\phi + \theta))\\ 513 | &= rs \text{cis}(\phi + \theta) 514 | \end{split} 515 | \end{equation*} 516 | $$ 517 | 518 | Bei $*$ wird die [Winkelsummenidentität für Kosinus (Herleitung)](./appendix/2-cosine-angle-sum) verwendet: 519 | 520 | $$ 521 | \cos (\phi + \theta) = \cos(\phi) \cos(\theta) - \sin (\phi) \sin(\theta) 522 | $$ 523 | 524 | Bei $**$ wird die [Winkelsummenidentität für Sinus (Herleitung)](./appendix/1-sine-angle-sum) verwendet: 525 | 526 | $$ 527 | \sin (\phi + \theta) = \sin(\phi) \cos(\theta) + \sin (\theta) \cos (\phi) 528 | $$ 529 | 530 | --- 531 | 532 | Am Ergebnis der Multiplikation ist die Polardarstellung einer _neuen_ komplexen Zahl zu erkennen. 533 | Die komplexe Zahl $z\cdot w$ hat einen **Polarwinkel** von $\phi + \theta$ und der **Betrag** ist das Produkt der beiden Beträge von $z$ und $w$. 534 | 535 | ## Folgerungen 536 | 537 | Aus der obigen Herleitung ist also zu erkennen, dass für die Multiplikation zweier komplexer Zahlen der Zusammenhang 538 | 539 | $$ 540 | A \text{cis} (\phi) \cdot B \text{cis} (\theta) = AB \text{cis} (\phi + \theta) 541 | $$ 542 | 543 | gilt. 544 | 545 | Damit lässt sich auch die zuvor betrachtete Multiplikation mit $i$ erklären. Die komplexe Zahl $z=i$ schließt einen Winkel von $\phi = 90°$ ein. Der zugehörige Vektor hat eine Länge von $1$. 546 | 547 | Bei Multiplikation mit einer beliebigen komplexen Zahl muss somit: 548 | 549 | $$ 550 | 1 \cdot \text{cis} (90°) \cdot B \text{cis} (\theta) = B \text{cis} (\theta + 90°) 551 | $$ 552 | 553 | --- 554 | 555 | Interessant ist zudem die Betrachtung von **Potenzen** komplexer Zahlen. Es handelt sich dabei um eine wiederholte Multiplikation von komplexen Zahlen. 556 | 557 | Im Folgenden lässt sich ausprobieren, wie sich die **Potenzen** einer komplexen Zahl $z$ verhalten. 558 | 559 | import('../components/complex-numbers/ComplexPowers.tsx')} 561 | fallback={
Loading Complex Powers...
} 562 | /> 563 | 564 | 587 | 588 | 589 | Wichtig ist, dass die **Beträge** bei einer Multiplikation multipliziert, und die **Polarwinkel** addiert werden. 590 | -------------------------------------------------------------------------------- /pages/5-fourier-transform.de.mdx: -------------------------------------------------------------------------------- 1 | 2 | import MCQComponent from '../components/general/MultipleChoiceQuestion.tsx' 3 | import { Callout } from 'nextra-theme-docs' 4 | import { 5 | Coordinates, 6 | Mafs, 7 | Plot, 8 | Text, 9 | Point, 10 | Line, 11 | LaTeX, 12 | } from 'mafs' 13 | 14 | import LazyWrapper from '../components/LazyWrapper'; 15 | 16 | 17 | 18 | # Fourier-Transformation 19 | 20 | ## Verallgemeinerung der Fourier-Reihe 21 | 22 | Im Abschnitt über die [Fourier-Reihe](./2-fourier-series), wurde die **Fourier-Reihe** sowie ein Zusammenhang für die Ermittlung der **Fourier-Koeffizienten** hergeleitet. 23 | Dabei lässt sich zwischen der **Fourier-Reihe** zur **Synthese** einer Funktion $f(t)$ mit bekannten **Koeffizienten** $c_k$, 24 | 25 | $$ 26 | f(t) = \sum_{k=-\infty}^{\infty} c_k e^{\frac{2 \pi i}{T} k t } 27 | $$ 28 | 29 | und der **Analyse** einer Funktion $f(t)$, bzw. das _Herausfinden_ der **Fourier-Koeffizienten** unterscheiden: 30 | 31 | $$ 32 | c_k = \frac{1}{T}\int_0^{T} f(t) e^{\frac{-2 \pi i k}{T} t} dt 33 | $$ 34 | 35 | --- 36 | 37 | Es gibt also zwei Vorgehensweisen, welche bis jetzt bekannt sind: 38 | 39 | - **Fourier-Analyse** einer Funktion $f(t)$ (das _Zerlegen_ in die Koeffizienten) 40 | - **Fourier-Synthese** einer Funktion $f(t)$ (das _Wiederherstellen_ über bekannte Koeffizienten) 41 | 42 | Beide Vorgehensweisen lassen sich auch für nicht-periodische Funktionen verallgemeinern. 43 | Die Verallgemeinerung der **Fourier-Analyse** ist dabei die **Fourier-Transformation** und die Verallgemeinerung der **Fourier-Synthese** die **Inverse-Fourier-Transformation**. 44 | 45 | ### Frequenzbereich vs. Zeitbereich 46 | 47 | Eine der wichtigsten Erkenntnisse ist die Unterscheidung zwischen **Frequenzbereich** und **Zeitbereich**. 48 | Die **Fourier-Koeffizienten** beschreiben letztendlich die Ausprägung des Beitrags der jeweilige zugrhörigen Frequenz. 49 | 50 | Im sogenannte **Frequenzbereich** werden die **Beträge** der Koeffizienten in Abhängigkeit der zugehörigen Frequenzen dargestellt. 51 | Es ist relevant, den Betrag zu nehmen, da es sich bei den Koeffizienten um [komplexe Zahlen](../appendix/complex-numbers/1-complex-plane) handelt. 52 | 53 | Der **Frequenzbereich** könnte beispielsweise so aussehen: 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | Diese Darstellung wird auch **Frequenzspektrum** genannt. Interessant ist hierbei die Symmetrie, welche aus der Bedingung der **komplexen konjugierten Zahlen** resultiert ($c_{-k} = \overline{c}_k$ für $k\leq 0$) 101 | Im **Frequenzbereich** lassen sich also die Beiträge der verschiedenen Frequenzen betrachten. Wichtig ist, dass der Abstand auf der horizontalen Achse jeweils $\frac{1}{T}$ entspricht. 102 | 103 | Im **Zeitbereich**, was der Darstellung des Signals in Abhängigkeit der Zeit bedeutet, folgt: 104 | 105 | 106 | 108 | 0.2 + 109 | 0.6 * Math.sin(Math.PI * x) + 110 | Math.sin(Math.PI * 2 * x) + 111 | 1.5 * Math.sin(Math.PI * 4 * x) + 112 | 0.5 * Math.sin(Math.PI * 5 * x) 113 | } 114 | quality="high" 115 | /> 116 | 0.5 * x + 'T' }} /> 117 | 118 | 119 | Dabei ist relevant, dass die Funktion nur **reelle** Funktionswerte, aufgrund der Eigenschaft der **kojugierten Komplexen Zahlen** $c_k$ und $c_{-k}$, annimmt. 120 | Es muss sich zudem nicht unbedingt um einen **Zeitraum** handelt. Es kann sich beispielsweise auch um eine Periodizität im Raum handeln. 121 | 122 | Die obige Funktion im **Zeitbereich** entspricht: 123 | 124 | $$ 125 | f(t) = 0.2+0.6\sin \left(2 \pi \frac{1}{T} t\right) + \sin \left(2 \pi \frac{2}{T} t\right) + 1.5 \sin \left(2 \pi \frac{4}{T} t\right) + 0.5 \sin \left(2 \pi \frac{5}{T} t\right) 126 | $$ 127 | 128 | Wenn man die **Fourier-Koeffizienten** von $f(t)$ bestimmt, erhält man die obige Darstellung im **Frequenzbereich**. 129 | 130 | Wichtig ist, dass sich eine Funktion $f(t)$ mithilfe der **Fourier-Analyse** vom **Zeitbereich** in den **Frequenbereich** _transformieren_ lässt. 131 | Mit der **Fourier-Synthese** lässt sich eine Funktion $g(\frac{k}{T})$ (Abhängig von einer Frequenz) vom **Frequenbereich** in den **Zeitbereich** _transformieren_. 132 | 133 | 152 | 153 | --- 154 | 155 | Dadurch, dass die Frequenz invers zur Periodendauer $T$ ist, folgt, dass wenn $T$ größer wird, die Frequenzen kleiner werden. Wenn man von der Idee einer _unendlichen_ Periodendauer ausgeht, rücken die Frequenzen also _unendlich_ nah zusammen, da der Unterschied zwischen zwei Frequenzen im Frequenzspektrum wie beschrieben $\frac{1}{T}$ beträgt. 156 | 157 | Das Verständis dieses **inversen** Zusammenhangs zwischen den beiden **Bereiche** wird in Bezug auf eine _unendliche_ Periodendauer relevant: Je länger die länger die Periodendauer und somit _breiter_ der Zeitbereich, desto _enger_ wird das Frequenzspektrum. 158 | 159 | ## Unendliche Periodendauer 160 | 161 | Das Ziel ist es also, den Zusammenhang 162 | 163 | $$ 164 | c_k = \frac{1}{T}\int_0^{T} f(t) e^{\frac{-2 \pi i k}{T} t} dt 165 | $$ 166 | 167 | für $T\to \infty$ zu verallgemeinern um die bekannten Techniken auch auf nicht-periodische Phänomene anzuwenden. 168 | 169 | Für spätere Zwecke wird das Integral mit den Grenzen $0$ und $T$ zu einem Integral mit den Grenzen $-\frac{T}{2}$ und $\frac{T}{2}$ geändert. 170 | Da man lediglich den durchschnittlichen Wert innerhalb einer ganzen Periode berechnet, macht es keinen Unterschied, _wann_ diese Periode _stattfindet_: 171 | 172 | $$ 173 | c_k = \frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}} f(t) e^{\frac{-2 \pi i k}{T} t} dt 174 | $$ 175 | 176 | Für das Verständis ist es womöglich nützlich, nochmal auf die vorherige Interpretation dieser Berechnung zurückzublicken: 177 | 178 | 1. Die Funktion $f(t)$ wird als eine Addition von Zeigern (auf der **komplexe Ebene**) zu betrachtet. 179 | 2. Durch die Multiplikation mit $e^{\frac{-2 \pi i k}{T} t}$ wird die Rotation mit einer Frequenz von $\frac{k}{T}$ von allen Zeigern _subtrahiert_. 180 | 3. Dadurch ist es sicher, dass alle Zeiger rotieren, außer jener, welcher zuvor mit einer Frequenz von $\frac{k}{T}$ rotierte. 181 | 4. Der nicht rotierende Zeiger trägt als einziger zur _Verschiebung_ der Funktionswerte von Urpsrung bei. 182 | 5. Der durchschnittliche Wert von $f(t) \cdot e^{\frac{-2 \pi i k}{T} t}$ in einer Periode, entspricht dieser Verschiebung vom Urpsrung und somit der Position des stehenden Zeigers ($c_k$) 183 | 184 | ### Problem mit den Koeffizienten 185 | 186 | Bei der Berechnung des Durchschnitt des Terms in einer Periode $f(t) \cdot e^{\frac{-2 \pi i k}{T} t}$ ergibt sich jedoch ein Problem. Da man mit dem Vorfaktor $\frac{1}{T}$ multipliziert und $T \to \infty$ gelten soll, folgt, dass $c_k \to 0$. 187 | 188 | 189 | Dadurch, dass $f(t)$ auf einem endlichen Intervall $[a,b]$ definiert ist, folgt mit der [**Dirichlet-Bedingung**](https://en.wikipedia.org/wiki/Dirichlet%E2%80%93Jordan_test): 190 | $$ 191 | \left|\int_{a}^{b} f(t) e^{\frac{-2 \pi i k}{T}t} dt \right| < \int_{a}^{b} |f(t)| dt < \infty \Rightarrow \int_{a}^{b} |f(t)| dt = X 192 | $$ 193 | Der Koeffizient $c_k$ würde aufgrund von $\frac{1}{T}$ somit gegen $0$ gehen, wenn $T \to \infty$. 194 | Auf diese Bedingung wurde bereits in [*Fourier-Reihen*](./2-fourier-series#unendliche-anzahl-von-termen) hingewiesen. 195 | 196 | $$ 197 | \lim_{T \to \infty} \frac{1}{T} \cdot X = 0 198 | $$ 199 | 200 | 201 | 202 | Es funktioniert also nicht, wenn man einfach $T \to \infty$ auf den Zusammenhang für die **Fourier-Koeffizienten** anwendet. 203 | 204 | ### Lösungsidee 205 | 206 | Um die obige [Problematik](#problem-mit-den-koeffizienten) zu umgehen, lässt sich der Faktor $\frac{1}{T}$ aus dem Term 207 | 208 | $$ 209 | c_k = \frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}} f(t) e^{\frac{-2 \pi i k}{T} t} dt 210 | $$ 211 | 212 | irgendwie entfernt werden. Man könnte $\frac{1}{T}$ zum Beispiel erst wieder bei der **Fourier-Synthese** hinzuzufügen. 213 | Es scheint zunächst so, als würde man das Problem damit nur verlagern, jedoch ergibt sich dadurch ein neuer interessanter Zusammenhang. 214 | 215 | ### Neue Notation 216 | 217 | Da man nun den Faktor $\frac{1}{T}$ aus dem **Fourier-Analyse** Zusammenhang weglässt, wird eine neue Notation eingeführt. Was dieses Weglassen des Faktors $\frac{1}{T}$ bedeutet, wird später deutlich. 218 | Man bezeichne eine Funktion $\hat{f}$ mit dem bekannten Zusammenhang: 219 | 220 | $$ 221 | \hat{f}\left(\frac{k}{T}\right) = \int_{-\frac{T}{2}}^{\frac{T}{2}} f(t) e^{\frac{-2 \pi i k}{T} t} dt 222 | $$ 223 | 224 | Diese Funktion ist abhängig von der Frequenz $\frac{k}{T}$ und beschreibt wie zuvor, den komplexen Wert des Koeffizienten, jedoch ohne den Vorfaktor $\frac{1}{T}$. 225 | 226 | Für die **Fourier-Synthese** durch _Auslagerung_ des Faktors $\frac{1}{T}$: 227 | 228 | $$ 229 | f(t) = \sum_{k=-\infty}^{\infty} \hat{f}\left(\frac{k}{T}\right) e^{\frac{2 \pi i k}{T} t } \frac{1}{T} 230 | $$ 231 | 232 | ### $T$ geht gegen unendlich 233 | 234 | **Was passiert nun, wenn man $T$ gegen $\infty$ gehen lässt?** 235 | 236 | Relevant ist der Quotient $\frac{k}{T}$, welcher aus zwei Variablen besteht, welche gegen unendlich laufen ($k$ ist eine beliebige ganze Zahl). 237 | Dadurch, dass $k$ nur ganze Zahlen annimmt, was von der Idee ausgeht, dass man ganzzahlige Vielfache einer bestimmten Grundfrequenz hat, handelt es sich bei den verschiedenen $\frac{k}{T}$ für ein endliches $T$ um eine diskrete Größe (abzählbar). 238 | Wie oben beschrieben wird jedoch der Abstand zwischen zwei verschiedenen ganzzahligen Vielfachen $\frac{k}{T}$ und $\frac{k+1}{T}$ immer kleiner, wenn $T$ größer wird (inverser Zusammenhang zwischen **Frequenzbereich** und **Zeitbereich**). 239 | Dies ist kein mathematischer Beweis, jedoch lässt sich sagen, dass wenn nun $T\to \infty$, ein **kontinuierliches** Frequenzspektrum entsteht. Sei diese Frequenz $\xi$ (_xi_) (um Verwechslungen mit $f$ und $\hat{f}$ zu vermeiden): 240 | 241 | $$ 242 | \lim_{T \to \infty} \frac{k}{T} = \xi 243 | $$ 244 | 245 | Es folgt somit für die **Fourier-Analyse** bzw. nun die **Fourier-Transformation**: 246 | 247 | $$ 248 | \hat{f}(\xi) = \int_{-\infty}^{\infty} e^{- 2 \pi i \xi t} f(t) dt 249 | $$ 250 | 251 | Diesen Zusammenhang findet man genau so im [englischen Wikipedia-Artikel](https://en.wikipedia.org/wiki/Fourier_transform) über die **Fourier-Transformation**. 252 | Das Integral wird zu einem _uneigentlichen_ Integral. Die Eigenschaft $\int_{-\infty}^{\infty} |f(t)| dt < \infty$ wird also relevant, da sonst das _uneigentliche Integral_ nicht existieren würde. Dies wird jedoch in diesem Artikel nicht weiter diskutiert. 253 | 254 | Interessant ist auch die Veränderung der **Fourier-Reihe**: 255 | 256 | $$ 257 | \begin{equation*} 258 | \begin{split} 259 | f(t) &= \lim_{T \to \infty} \sum_{k=-\infty}^{\infty} \hat{f}\left(\frac{k}{T}\right) e^{\frac{2 \pi i k}{T} t } \frac{1}{T}\\ 260 | f(t) &= \int_{-\infty}^{\infty} \hat{f}(\xi) e^{2 \pi i \xi t } d\xi\\ 261 | \end{split} 262 | \end{equation*} 263 | $$ 264 | 265 | Die Unterschiede zwischen zwei Frequenzen $\frac{1}{T}$ werden unendlich klein. Aus diesem Grund wird die _diskrete_ Summe, zu einem _kontinuierlichen_ Integral. Die Unterschiede in $\xi$ sind unendlich klein ($d \xi$). 266 | Dieser Zusammenhang wird auch als **inverse Fourier-Transformation** bezeichnet (Es lässt sich aus $\hat{f}(\xi)$, $f(t)$ synthetisieren). 267 | 268 | Im Folgenden soll jedoch vor allem die **Fourier-Transformation** betrachtet werden: 269 | 270 | $$ 271 | \hat{f}(\xi) = \int_{-\infty}^{\infty} e^{- 2 \pi i \xi t} f(t) dt 272 | $$ 273 | 274 | Es ist womöglich noch nicht ganz klar, wie sich $\hat{f}(\xi)$ verhält. Der Zusammenhang für die sogenannte **Fourier-Transfomation** von $f(t)$, welche hier als $\hat{f}(\xi)$ bezeichnet wird, wurde zwar algebraisch aus dem Zusammenhang der **Fourier-Koeffizienten** hergeleitet, durch das Entfernen 275 | des Vorfaktors $\frac{1}{T}$ und die _unendliche_ Periodendauer, geht womöglich die ursprüngliche Intuition über die **Fourier-Koeffizienten** etwas verloren. 276 | 277 | Man sollte etwas skeptisch gegenüber der obigen Herleitung sein, da das studierte Konzept der **Fourier-Reihe** erweitert wurde, ohne die Interpretation der Zeigerdarstellung o.Ä. fortzusetzen. 278 | Zudem erfolgte die Herleitung womöglich etwas zu schnell. 279 | 280 | ## Beispielanwendung 281 | 282 | Häufig hilft ein Beispiel um ein neues Konzept nachzuvollziehen. 283 | 284 | Die **Fourier-Transfomation** ermöglicht es ähnlich wie die **Fourier-Koeffizienten**, eine gegebene Funktion aus dem **Zeitbereich** in den **Frequenbereich** zu überführen. 285 | Dabei ist das **Frequenzspektrum** welches aus der **Fourier-Transfomation** resultiert, jedoch kontinuierlich. 286 | 287 | Für die **Fourier-Transfomation** wurde hergeleitet: 288 | 289 | $$ 290 | \hat{f}(\xi) = \int_{-\infty}^{\infty} e^{- 2 \pi i \xi t} f(t) dt 291 | $$ 292 | 293 | Nun wird folgende Beispielfunktion betrachtet: 294 | 295 | $$ 296 | f(t) = 297 | \begin{cases} 298 | \sin(2 \pi \cdot \frac{t}{4}) & \text{wenn } -6 337 | 338 | 339 | 340 | Da $f(t)$ außerhalb des Intervalls $]-6,6[$ $0$ ist, folgt, dass auch das Integral in diesem Bereich $0$ ist. 341 | 342 | ### Visualisierung des Integrals 343 | 344 | Um $\hat{f}(\xi)$ besser nachzuvollziehen, kann man das Integral über $e^{- 2 \pi i \xi t} f(t)$ genauer betrachten. 345 | Dies lässt sich als eine Berechnung der zwischen $x$-Achse und $e^{- 2 \pi i \xi t} f(t)$ eingeschlossenen Fläche betrachten. 346 | 347 | 348 | Ein Integral ($\int_{a}^{b} g(x) dx$) gibt die **Fläche** zwischen x-Achse und 349 | dem Graphen von $g(x)$ im Bereich von $a$ bis $b$ an. Dabei werden Flächen 350 | oberhalb der x-Achse als positiv angesehen und Flächen unterhalb als negativ. 351 | 352 | 353 | Wenn angenommen wird, dass $f(t) \in \mathbb{R}$ und somit ausschließlich **reelle** Funktionswerte annimmt, was bei obiger Funktion der Fall ist, dann ist $\Im(f(t)) = 0$ für alle $t$. 354 | 355 | Im Folgenden wird $\Re(e^{- 2 \pi i \xi t} f(t))$ und $\Im(e^{- 2 \pi i \xi t} f(t))$ in Abhängigkeit der Zeit $t$ dargestellt. 356 | Es gilt: 357 | 358 | $$ 359 | e^{- 2 \pi i \xi t} f(t) = \cos(- 2 \pi \xi t) \cdot f(t) + i \sin(- 2 \pi \xi t) \cdot f(t) 360 | $$ 361 | 362 | 363 | import('../components/fourier-transform/WaveCheck.tsx')} 365 | props={{ 366 | fixed_periodendauer:4, leftBound:-8, rightBound:8 367 | }} 368 | fallback={
Loading Complex Exponentials Sum...
} 369 | /> 370 | 371 | Es lässt sich erkennen, dass ein Maximum im Frequenzspektrum genau da entsteht, wo $\xi$ der Frequenz des $\sin$-Terms der Funktion $f(t)$ entspricht. 372 | Es konnten also mithilfe der **Fourier-Transfomation** die Frequenzbestandteile eines nicht-periodischen Signals herausgefunden werden. Die **Fourier-Reihe** bzw. der Zusammenhang für den **Fourier-Koeffizienten** konnte hierbei nicht angewendet werden, da es sich nicht um einen periodische Funktion handelt ($f(t) = f(t+T)$ gilt nicht für alle $t$). 373 | 374 | Dieser Abschnitt wird womöglich noch etwas erweitert. 375 | 376 | ## Ausblick: FFT 377 | 378 | Berechtigterweise kann man sich die Frage stellen, wie man den hergeleiteten Zusammenhang in der Realität anwendet. Wenn es sich um *kompliziertere* Funktionen $f(t)$ handelt, wobei die Funktionsgleichung unbekannt ist und z.B. lediglich Messwerte vorhanden sind, lässt sich die **Diskrete Fourier-Transfomation** anwenden, welche im nächsten Kapitel erklärt wird. 379 | Wenn man die **Diskrete Fourier-Transfomation** mit dem Computer durchführen will, was selbstverständlich von hoher Bedeutung ist, wurden ursprünglich ziemlich viele Berechnungen benötigt. 1965 wurde eine deutlich effizietere Implementierung entdeckt: der Algorithmus der **Schnellen-Fourier-Transfomation (FFT)**. Dieser Algorithmus gewann an viel Bedeutung und wird heute, aufgrund seiner vielfältigen Einsatzmöglichkeiten, als einer der wichtigsten Algorithmen angesehen. 380 | 381 | 382 | {/** 383 | 384 | 385 | Genaugenommen notiert man hier nicht direkt die $\infty$-Symbole, sondern notiert diese wiefolgt als Grenzwert: 386 | $$ 387 | A = \lim_{n\to \infty}\int_{-n}^{n} p(t) dt 388 | $$ 389 | $$\lim_{n\to \infty}$$ bedeutet hierbei einfach, dass sich $n$ immer näher an $\infty$ nähert. 390 | 391 | 392 | 393 | 394 | 395 | Der obige Hinweis reicht für das Verständis dieses Artikels aus. Falls du 396 | jedoch mehr über Integralrechnung erfahren möchtest, schau dir doch mal diesen 397 | [Wikipedia-Artikel zu 398 | Integralen](https://de.wikipedia.org/wiki/Integralrechnung) an. 399 | 400 | 401 | Ist das Integral $A$ gleich $0$, stimmen die Periodendauern nicht überein. Anderenfalls stimmen die beiden überein. 402 | 403 | 404 | 405 | Stimmen die Periodendauern der einzelnen Schwingungen nicht über ein, gibt es Zeitpunkte, bei denen sie phasengleich sind und Zeitpunkte bei denen sie nicht phasengleich sind. Über einen sehr großen Zeitraum treten alle Phasenkombinationen gleich häufig auf und annulieren sich. 406 | 407 | Stimmen die Periodendauern jedoch überein, ist $p(t)$ immer positiv: 408 | 409 | Es soll gezeigt werden: 410 | 411 | $$ 412 | p(t) \geq 0 413 | $$ 414 | 415 | $$ 416 | f(t) \cdot g(t) \geq 0 417 | $$ 418 | 419 | $$ 420 | A \cdot sin(\omega_1 \cdot t) \cdot B \cdot sin(\omega_2 \cdot t) \geq 0 421 | $$ 422 | 423 | Aufgrund der Kommutativität der Multiplikation, gilt: 424 | 425 | $$ 426 | AB \cdot sin(\omega_1 \cdot t) \cdot sin(\omega_2 \cdot t) \geq 0 427 | $$ 428 | 429 | Die Sinus-Funktion kann mithilfe von [komplexen Zahlen](../appendix/complex-numbers/1-complex-plane) als $sin(x) = \frac{e^{ix}-e^{-ix}}{2i}$ geschrieben werden: 430 | 431 | $$ 432 | AB \cdot \frac{e^{i \cdot \omega_1 \cdot t}-e^{-i \cdot \omega_1 \cdot t}}{2i} \cdot \frac{e^{i \cdot \omega_2 \cdot t}-e^{-i \cdot \omega_2 \cdot t}}{2i}\geq 0 433 | $$ 434 | 435 | Aufgrund der Kommutativität der Multiplikation, gilt: 436 | 437 | $$ 438 | \frac{AB}{(2i)^2} \cdot (e^{i \cdot \omega_1 \cdot t}-e^{-i \cdot \omega_1 \cdot t}) \cdot (e^{i \cdot \omega_2 \cdot t}-e^{-i \cdot \omega_2 \cdot t} )\geq 0 439 | $$ 440 | 441 | Für das Quadrat der [komplexen Zahl](../appendix/complex-numbers/1-complex-plane) $i$ gilt: $i^2=-1$: 442 | 443 | $$ 444 | -\frac{AB}{4} \cdot (e^{i \cdot \omega_1 \cdot t}-e^{-i \cdot \omega_1 \cdot t}) \cdot (e^{i \cdot \omega_2 \cdot t}-e^{-i \cdot \omega_2 \cdot t} )\geq 0 445 | $$ 446 | 447 | Den Faktor $\frac{AB}{4}$ ignorieren wir ab hier erstmal. 448 | 449 | Aufgrund des Distributivgesetzes gilt: 450 | 451 | $$ 452 | - (e^{i \cdot \omega_1 \cdot t} \cdot (e^{i \cdot \omega_2 \cdot t}-e^{-i \cdot \omega_2 \cdot t} )-e^{-i \cdot \omega_1 \cdot t} \cdot (e^{i \cdot \omega_2 \cdot t}-e^{-i \cdot \omega_2 \cdot t} ))\geq 0 453 | $$ 454 | 455 | $$ 456 | - (e^{i \cdot \omega_1 \cdot t} \cdot e^{i \cdot \omega_2 \cdot t}- e^{i \cdot \omega_1 \cdot t} \cdot e^{-i \cdot \omega_2 \cdot t} -e^{-i \cdot \omega_1 \cdot t} \cdot e^{i \cdot \omega_2 \cdot t}+e^{-i \cdot \omega_1 \cdot t} \cdot e^{-i \cdot \omega_2 \cdot t} )\geq 0 457 | $$ 458 | 459 | Eines der Exponetengesetze besagt, $a^b \cdot a^c = a^{(b+c)}$: 460 | 461 | $$ 462 | - (e^{i \cdot (\omega_1+\omega_2) \cdot t}- e^{i \cdot (\omega_1 - \omega_2) \cdot t} -e^{i \cdot (\omega_2 -\omega_1) \cdot t}+e^{-i \cdot (\omega_1 + \omega_2) \cdot t})\geq 0 463 | $$ 464 | 465 | Da hier die Periodendauern gleich sind, gilt: $\omega_1 = \omega_2 \Rightarrow \omega_1 - \omega_2 = 0$ 466 | 467 | $$ 468 | - (e^{i \cdot (\omega_1+\omega_2) \cdot t}- e^{0} -e^{0}+e^{-i \cdot (\omega_1 + \omega_2) \cdot t})\geq 0 469 | $$ 470 | 471 | Für $\forall a \in \mathbb{C}$ gilt: $a^0 = 1$ 472 | 473 | $$ 474 | - (e^{i \cdot (\omega_1+\omega_2) \cdot t}- 1 -1+e^{-i \cdot (\omega_1 + \omega_2) \cdot t})\geq 0 475 | $$ 476 | 477 | Aufgrund des Distributivgesetzes, kann man das Minus auf alle Terme innerhalb der Klammer anwenden: 478 | 479 | $$ 480 | (-e^{i \cdot (\omega_1+\omega_2) \cdot t} + 1 +1-e^{-i \cdot (\omega_1 + \omega_2) \cdot t})\geq 0 481 | $$ 482 | 483 | Aufgrund der Kommutativität der Addition, gilt: 484 | 485 | $$ 486 | (1 -e^{i \cdot (\omega_1+\omega_2) \cdot t} +1-e^{-i \cdot (\omega_1 + \omega_2) \cdot t})\geq 0 487 | $$ 488 | 489 | $\omega_1$ und $\omega_2$ sind beide Element der reellen Zahlen $\mathbb{R}$, somit ist auch die Summe $\omega_1 + \omega_2$ Element der reelen Zahlen $\mathbb{R}$.\ 490 | Der reelle Teil von $e^{-a}$ liegt im Intervall $[-1;1]$, wenn $a$ eine reelle Zahl $\mathbb{R}$ ist ($a \in \mathbb{R}$). 491 | 492 | Also definiert man $k$ als eine beliebige reelle Zahle im Intervall $[-1;1]$: 493 | 494 | $$ 495 | (1 -k +1-k)\geq 0 496 | $$ 497 | 498 | $(1-k)$ ist größer-gleich $0$, da $k$ maximal $1$ sein kann. 499 | Also ist der Term $(1 -k +1-k) \geq 0$. 500 | 501 | Somit haben wir herausgefunden, das das Vorzeichen von $p(t)$ dem Vorzeichen von $\frac{AB}{4}$ entspricht (es existieren auch Zeitpunkte, wo $p(t) = 0$ ist). 502 | 503 | Da $A$ und $B$ ungleich $0$ sein müssen, kann man folgende Tabelle aufstellen: 504 | 505 | $$ 506 | \begin{array}{c|c|c} 507 | \text{Vorzeichen } A & \text{Vorzeichen } B & \text{Vorzeichen } p(t) \\ \hline 508 | + & + & +\\ 509 | + & - & -\\ 510 | - & + & - \\ 511 | - & - & +\\ 512 | 513 | \end{array} 514 | $$ 515 | 516 | **Was sagt uns das jetzt über das Integral?**\ 517 | Da unzählbar unendlich viele Stellen $(\aleph_1)$existieren, bei denen $p(t)$ ungleich $0$ ist (Auf einen Beweis wird hier verzichte.) und alle jene Stellen das selbe Vorzeichen haben, muss der Betrag des Integrals $\infty$ sein. Das Vorzeichen entspricht dabei dem Vorzeichen von $A\cdot B$. 518 | 519 | 520 | 521 | ### Integral ohne Unendlich 522 | 523 | Da es häufig schwierig ist ein Integral von $-\infty$ bis $\infty$ zu berechnen, kann man zur Vereinfachung sehr große Grenzen nehmen, 524 | da dies zur Annäherung ausreicht. 525 | 526 | 527 | Der numerische Wert ist hierbei nicht der einzige ausschlaggebende Wert. Die _"Größe"_ der Grenzen hängt auch von der Periodendauer der Schwingungen ab. 528 | 529 | Beispiel:\ 530 | Hat man eine Schwingung mit der Periodendauer $T_1=1$ umfassen die Grenzen von $-10$ bis $10$ 20 Perioden, was meist für die Auswertung ausreicht. 531 | Sollte es sich im Gegensatz dazu, um eine Schwingung mit der Periodendauer $T_2=100$ handeln, würden die Grenzen zu klein sein, da nur ein sehr geringer Ausschnitt einer einzigen Periode betrachtet werden würde. 532 | 533 | 534 | 535 | In diesem Beispiel nehmen wir als Grenzen mal $-1000$ und $1000$ an. 536 | 537 | $$ 538 | A = \int_{-1000}^{1000} p(t) dt 539 | $$ 540 | 541 | 542 | 543 | Führt man diese Auswertung nun für alle Periodendauern durch und stellt diese in einem Diagramm dar, erhält man einen Graphen, der einem die "Richtigkeit" der Periodendauer angibt. 544 | 545 | 546 | 547 | Dieser Graph ist allerdings nur sehr schwer zu bestimmen, da man das Integral für jeden Wert neu bestimmen muss und der Ausdruck sehr rechenaufwändig ist. Dies ist dir vielleicht bereits beim Laden der Seite aufgefallen, da das Erstellen des Graphens bei langsameren Geräten sehr viel Zeit in Anspruch nimmt. 548 | 549 | Die Lücke bei $T=4$ entsteht dadurch, dass dort eine Division durch $0$ stattfindet, wodurch der Wert Unendlich groß wird und eine Definitionslücke entsteht. Zur Verdeutlichung ist hier eine Näherung der Einhüllenden in lila angezeigt. 550 | 551 | 552 | Falls du wissen möchtest, wie dieser Graph entstanden ist, kannst du dies im 553 | Anhang nachlesen: [Herleitung Integral für 554 | Fourier-Transformation](../appendix/other/integral-derivation) an. 555 | 556 | 557 | ### Anwendung 558 | 559 | Mit einer einzigen Welle, ist die Periodendauer noch sehr einfach mit dem Auge abzulesen, weshalb sich der Aufwand nicht lohnt. Das wahre Potenzial der Fourier-Transformation entfaltet sich erst, wenn man komplexe Funktionen mit vielen Anteilen zerlegen möchte. 560 | 561 | Zum Beispiel die Funktion ganz zu Anfang dieses Eintrages. 562 | 563 | Nochmal zu Erinnerung: 564 | 565 | 575 | 576 | 593 | 594 | Mithilfe dieser Kurve kann man nun die Einzelnen Periodendauern bestimmen. Diese sind in lila eingezeichnet. 595 | **/} 596 | --------------------------------------------------------------------------------