refactor: digitale filter

This commit is contained in:
Matthias Jung
2026-08-13 18:25:03 +02:00
parent b475db2e0d
commit b1dc8d433b
3 changed files with 221 additions and 2 deletions
+175
View File
@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="259.864pt" height="98.452pt" viewBox="0 0 259.864 98.452">
<defs>
<g>
<g id="glyph-0-0">
<path d="M 1.78125 -2.75 L 2.109375 -1.875 L 1.265625 -0.65625 C 1.171875 -0.515625 1.078125 -0.484375 1.015625 -0.484375 C 0.953125 -0.484375 0.84375 -0.5 0.78125 -0.53125 C 0.703125 -0.578125 0.609375 -0.59375 0.515625 -0.59375 C 0.328125 -0.59375 0.171875 -0.453125 0.171875 -0.25 C 0.171875 -0.015625 0.484375 0.09375 0.703125 0.09375 C 1 0.09375 1.21875 -0.046875 1.609375 -0.609375 L 2.234375 -1.5 L 2.5625 -0.40625 C 2.6875 -0.046875 2.78125 0.09375 3.078125 0.09375 C 3.390625 0.09375 3.78125 -0.078125 4.0625 -0.546875 C 4.03125 -0.625 3.9375 -0.703125 3.84375 -0.71875 C 3.609375 -0.421875 3.5 -0.34375 3.40625 -0.34375 C 3.3125 -0.34375 3.25 -0.46875 3.1875 -0.671875 L 2.703125 -2.109375 L 3.375 -3.109375 C 3.53125 -3.3125 3.734375 -3.359375 3.796875 -3.359375 C 3.875 -3.359375 3.984375 -3.328125 4.0625 -3.265625 C 4.125 -3.21875 4.28125 -3.171875 4.359375 -3.171875 C 4.484375 -3.171875 4.640625 -3.359375 4.640625 -3.5625 C 4.640625 -3.78125 4.40625 -3.921875 4.203125 -3.921875 C 3.75 -3.921875 3.46875 -3.765625 3.03125 -3.125 L 2.578125 -2.484375 L 2.328125 -3.28125 C 2.171875 -3.734375 2.078125 -3.921875 1.859375 -3.921875 C 1.65625 -3.921875 0.984375 -3.546875 0.671875 -3.3125 C 0.6875 -3.21875 0.71875 -3.109375 0.796875 -3.046875 C 0.90625 -3.09375 1.203125 -3.234375 1.390625 -3.234375 C 1.5 -3.234375 1.59375 -3.21875 1.625 -3.125 C 1.671875 -3.0625 1.734375 -2.921875 1.78125 -2.75 Z M 1.78125 -2.75 "/>
</g>
<g id="glyph-0-1">
<path d="M 0.296875 -0.640625 C 0.25 -0.46875 0.171875 -0.234375 0.171875 -0.15625 C 0.171875 -0.015625 0.265625 0.09375 0.546875 0.09375 C 0.890625 0.09375 0.890625 -0.3125 0.953125 -0.640625 L 1.28125 -2.09375 C 1.34375 -2.109375 1.40625 -2.109375 1.46875 -2.109375 C 1.546875 -2.109375 1.609375 -2.046875 1.65625 -1.96875 C 1.8125 -1.6875 1.90625 -1.234375 2.09375 -0.828125 C 2.375 -0.1875 2.609375 0.09375 2.96875 0.09375 C 3.28125 0.09375 3.59375 -0.1875 3.875 -0.6875 C 3.8125 -0.765625 3.78125 -0.796875 3.671875 -0.796875 C 3.5 -0.546875 3.3125 -0.375 3.21875 -0.375 C 3.046875 -0.375 2.984375 -0.53125 2.890625 -0.71875 C 2.640625 -1.203125 2.53125 -1.546875 2.40625 -1.796875 C 2.25 -2.078125 2.203125 -2.203125 1.90625 -2.28125 L 1.90625 -2.3125 L 2.375 -2.734375 C 2.8125 -3.125 3.046875 -3.28125 3.234375 -3.28125 C 3.46875 -3.28125 3.421875 -3.15625 3.734375 -3.15625 C 3.859375 -3.15625 4.140625 -3.328125 4.140625 -3.609375 C 4.140625 -3.859375 3.9375 -3.921875 3.703125 -3.921875 C 3.421875 -3.921875 2.875 -3.578125 2.234375 -3 L 1.875 -2.703125 C 1.71875 -2.5625 1.53125 -2.421875 1.34375 -2.421875 L 1.984375 -5.203125 C 2.125 -5.78125 2.21875 -6.140625 2.21875 -6.140625 C 2.21875 -6.203125 2.1875 -6.234375 2.109375 -6.234375 C 1.859375 -6.140625 1.21875 -6.015625 0.859375 -6 L 0.828125 -5.78125 C 0.828125 -5.75 0.84375 -5.734375 0.875 -5.734375 L 1.15625 -5.71875 C 1.265625 -5.71875 1.34375 -5.671875 1.34375 -5.46875 C 1.34375 -5.375 1.328125 -5.21875 1.28125 -5.015625 Z M 0.296875 -0.640625 "/>
</g>
<g id="glyph-0-2">
<path d="M 2.875 0 C 3.0625 -0.28125 4.15625 -1.953125 4.40625 -2.546875 C 4.53125 -2.859375 4.640625 -3.171875 4.640625 -3.5 C 4.640625 -3.75 4.515625 -3.921875 4.171875 -3.921875 C 3.921875 -3.921875 3.75 -3.796875 3.75 -3.59375 C 3.75 -3.53125 3.78125 -3.4375 3.8125 -3.40625 C 3.9375 -3.203125 4 -3.015625 4 -2.875 C 4 -2.484375 3.625 -1.8125 3.3125 -1.328125 C 3.3125 -1.328125 2.859375 -0.578125 2.625 -0.25 L 2.578125 -0.28125 C 2.53125 -1.3125 2.46875 -2.15625 2.1875 -3.25 C 2.0625 -3.734375 1.953125 -3.921875 1.734375 -3.921875 C 1.515625 -3.921875 0.859375 -3.546875 0.546875 -3.3125 C 0.5625 -3.21875 0.59375 -3.109375 0.671875 -3.046875 C 0.78125 -3.09375 1.078125 -3.234375 1.25 -3.234375 C 1.359375 -3.234375 1.453125 -3.21875 1.5 -3.125 C 1.546875 -3.0625 1.59375 -2.921875 1.640625 -2.75 C 1.90625 -1.84375 2.1875 0.328125 2.078125 0.546875 C 1.71875 1.15625 1.34375 1.546875 1.21875 1.546875 C 1.125 1.546875 0.953125 1.421875 0.90625 1.390625 C 0.84375 1.328125 0.65625 1.265625 0.59375 1.265625 C 0.40625 1.265625 0.171875 1.4375 0.171875 1.71875 C 0.171875 2 0.578125 2.09375 0.71875 2.09375 C 1.203125 2.09375 1.90625 1.5 2.484375 0.625 Z M 2.875 0 "/>
</g>
<g id="glyph-1-0">
<path d="M 2.59375 -0.890625 L 2.875 -2.015625 C 2.921875 -2.265625 2.96875 -2.4375 2.96875 -2.5625 C 2.96875 -2.984375 2.765625 -3.140625 2.484375 -3.140625 C 2.125 -3.140625 1.8125 -2.984375 1.15625 -2.21875 L 1.171875 -2.28125 C 1.265625 -2.546875 1.328125 -2.859375 1.328125 -2.96875 C 1.328125 -3.0625 1.265625 -3.109375 1.171875 -3.109375 C 0.953125 -3.109375 0.609375 -3.078125 0.28125 -3.015625 C 0.234375 -2.96875 0.25 -2.890625 0.28125 -2.828125 L 0.578125 -2.796875 C 0.65625 -2.796875 0.703125 -2.734375 0.703125 -2.65625 C 0.703125 -2.59375 0.671875 -2.484375 0.640625 -2.296875 L 0.234375 -0.515625 C 0.203125 -0.375 0.140625 -0.1875 0.140625 -0.125 C 0.140625 0 0.21875 0.078125 0.453125 0.078125 C 0.71875 0.078125 0.71875 -0.25 0.78125 -0.515625 L 1.046875 -1.703125 C 1.5 -2.28125 1.890625 -2.703125 2.15625 -2.703125 C 2.296875 -2.703125 2.40625 -2.671875 2.40625 -2.453125 C 2.40625 -2.359375 2.359375 -2.15625 2.3125 -1.96875 L 2.03125 -0.828125 C 1.984375 -0.59375 1.90625 -0.296875 1.90625 -0.171875 C 1.90625 -0.03125 2 0.078125 2.203125 0.078125 C 2.546875 0.078125 2.890625 -0.171875 3.21875 -0.59375 C 3.203125 -0.65625 3.15625 -0.71875 3.0625 -0.71875 C 2.875 -0.5 2.65625 -0.359375 2.59375 -0.359375 C 2.546875 -0.359375 2.515625 -0.390625 2.515625 -0.484375 C 2.515625 -0.546875 2.5625 -0.703125 2.59375 -0.890625 Z M 2.59375 -0.890625 "/>
</g>
<g id="glyph-1-1">
<path d="M 0.421875 -2.03125 C 0.328125 -1.953125 0.328125 -1.765625 0.421875 -1.671875 L 4.203125 -1.671875 C 4.296875 -1.765625 4.296875 -1.953125 4.203125 -2.03125 Z M 0.421875 -2.03125 "/>
</g>
<g id="glyph-1-2">
<path d="M 2.0625 -0.875 L 2.0625 -3.34375 C 2.0625 -3.78125 2.0625 -4.21875 2.078125 -4.3125 C 2.078125 -4.34375 2.0625 -4.34375 2.03125 -4.34375 C 1.640625 -4.09375 1.265625 -3.921875 0.640625 -3.625 C 0.65625 -3.546875 0.671875 -3.484375 0.75 -3.4375 C 1.078125 -3.578125 1.234375 -3.609375 1.359375 -3.609375 C 1.484375 -3.609375 1.5 -3.4375 1.5 -3.203125 L 1.5 -0.875 C 1.5 -0.28125 1.3125 -0.25 0.8125 -0.21875 C 0.765625 -0.171875 0.765625 -0.03125 0.8125 0.015625 C 1.15625 0 1.421875 0 1.8125 0 C 2.15625 0 2.328125 0 2.671875 0.015625 C 2.71875 -0.03125 2.71875 -0.171875 2.671875 -0.21875 C 2.171875 -0.25 2.0625 -0.28125 2.0625 -0.875 Z M 2.0625 -0.875 "/>
</g>
<g id="glyph-1-3">
<path d="M 0.4375 -3.34375 C 0.4375 -3.1875 0.578125 -3.0625 0.71875 -3.0625 C 0.84375 -3.0625 1.0625 -3.1875 1.0625 -3.34375 C 1.0625 -3.40625 1.046875 -3.453125 1.03125 -3.5 C 1.015625 -3.546875 0.96875 -3.609375 0.96875 -3.671875 C 0.96875 -3.84375 1.15625 -4.109375 1.671875 -4.109375 C 1.9375 -4.109375 2.296875 -3.921875 2.296875 -3.234375 C 2.296875 -2.78125 2.140625 -2.40625 1.71875 -1.984375 L 1.1875 -1.46875 C 0.484375 -0.75 0.375 -0.40625 0.375 0.015625 C 0.375 0.015625 0.734375 0 0.96875 0 L 2.21875 0 C 2.4375 0 2.765625 0.015625 2.765625 0.015625 C 2.859375 -0.359375 2.9375 -0.90625 2.9375 -1.109375 C 2.90625 -1.15625 2.8125 -1.15625 2.734375 -1.15625 C 2.609375 -0.640625 2.484375 -0.46875 2.234375 -0.46875 L 0.96875 -0.46875 C 0.96875 -0.8125 1.453125 -1.296875 1.5 -1.328125 L 2.21875 -2.015625 C 2.625 -2.40625 2.921875 -2.734375 2.921875 -3.265625 C 2.921875 -4.046875 2.296875 -4.359375 1.71875 -4.359375 C 0.921875 -4.359375 0.4375 -3.765625 0.4375 -3.34375 Z M 0.4375 -3.34375 "/>
</g>
<g id="glyph-1-4">
<path d="M 1.53125 -4.109375 C 1.84375 -4.109375 2.125 -3.921875 2.125 -3.46875 C 2.125 -3.109375 1.71875 -2.5625 1 -2.453125 L 1.046875 -2.234375 C 1.15625 -2.234375 1.296875 -2.234375 1.390625 -2.234375 C 1.796875 -2.234375 2.328125 -2.125 2.328125 -1.328125 C 2.328125 -0.375 1.6875 -0.171875 1.4375 -0.171875 C 1.078125 -0.171875 1 -0.34375 0.921875 -0.46875 C 0.84375 -0.578125 0.75 -0.65625 0.609375 -0.65625 C 0.46875 -0.65625 0.3125 -0.515625 0.3125 -0.40625 C 0.3125 -0.125 0.90625 0.078125 1.34375 0.078125 C 2.1875 0.078125 2.953125 -0.484375 2.953125 -1.421875 C 2.953125 -2.203125 2.359375 -2.484375 1.9375 -2.546875 L 1.9375 -2.5625 C 2.515625 -2.84375 2.6875 -3.140625 2.6875 -3.515625 C 2.6875 -3.734375 2.640625 -3.90625 2.46875 -4.078125 C 2.3125 -4.234375 2.0625 -4.359375 1.6875 -4.359375 C 0.640625 -4.359375 0.328125 -3.671875 0.328125 -3.4375 C 0.328125 -3.328125 0.40625 -3.1875 0.578125 -3.1875 C 0.828125 -3.1875 0.859375 -3.421875 0.859375 -3.5625 C 0.859375 -4.015625 1.34375 -4.109375 1.53125 -4.109375 Z M 1.53125 -4.109375 "/>
</g>
<g id="glyph-1-5">
<path d="M 3.078125 -1.5625 L 2.484375 -1.5625 L 2.484375 -3.65625 C 2.484375 -4 2.484375 -4.28125 2.484375 -4.34375 L 2.484375 -4.359375 L 2.25 -4.359375 C 2.203125 -4.359375 2.15625 -4.3125 2.140625 -4.28125 C 1.6875 -3.734375 0.859375 -2.546875 0.203125 -1.53125 C 0.21875 -1.421875 0.265625 -1.234375 0.484375 -1.234375 L 1.9375 -1.234375 L 1.9375 -0.578125 C 1.9375 -0.25 1.65625 -0.25 1.359375 -0.21875 C 1.3125 -0.171875 1.3125 -0.03125 1.359375 0.015625 C 1.578125 0 1.875 0 2.203125 0 C 2.484375 0 2.75 0 2.984375 0.015625 C 3.015625 -0.03125 3.015625 -0.171875 2.984375 -0.21875 C 2.625 -0.25 2.484375 -0.234375 2.484375 -0.578125 L 2.484375 -1.234375 L 2.96875 -1.234375 C 3.078125 -1.234375 3.171875 -1.359375 3.171875 -1.453125 C 3.171875 -1.515625 3.15625 -1.5625 3.078125 -1.5625 Z M 1.9375 -3.625 L 1.9375 -1.5625 L 0.578125 -1.5625 C 0.9375 -2.15625 1.4375 -2.953125 1.9375 -3.625 Z M 1.9375 -3.625 "/>
</g>
<g id="glyph-1-6">
<path d="M 1.625 0.078125 C 2.171875 0.078125 3.015625 -0.484375 3.015625 -2.15625 C 3.015625 -2.875 2.84375 -3.484375 2.53125 -3.890625 C 2.34375 -4.140625 2.046875 -4.359375 1.65625 -4.359375 C 0.953125 -4.359375 0.28125 -3.515625 0.28125 -2.09375 C 0.28125 -1.328125 0.515625 -0.625 0.90625 -0.234375 C 1.109375 -0.03125 1.34375 0.078125 1.625 0.078125 Z M 1.65625 -4.109375 C 1.78125 -4.109375 1.890625 -4.0625 1.984375 -3.984375 C 2.203125 -3.796875 2.390625 -3.25 2.390625 -2.296875 C 2.390625 -1.640625 2.375 -1.1875 2.265625 -0.828125 C 2.109375 -0.25 1.765625 -0.171875 1.640625 -0.171875 C 0.96875 -0.171875 0.90625 -1.40625 0.90625 -2.015625 C 0.90625 -3.78125 1.328125 -4.109375 1.65625 -4.109375 Z M 1.65625 -4.109375 "/>
</g>
</g>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 100 65 L 144 65 L 144 97.90625 L 100 97.90625 Z M 100 65 "/>
</clipPath>
<clipPath id="clip-1">
<path clip-rule="nonzero" d="M 148 65 L 192 65 L 192 97.90625 L 148 97.90625 Z M 148 65 "/>
</clipPath>
<clipPath id="clip-2">
<path clip-rule="nonzero" d="M 196 65 L 240 65 L 240 97.90625 L 196 97.90625 Z M 196 65 "/>
</clipPath>
<clipPath id="clip-3">
<path clip-rule="nonzero" d="M 245 79 L 259.078125 79 L 259.078125 95 L 245 95 Z M 245 79 "/>
</clipPath>
</defs>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 0.00189427 -0.00103791 L 6.015651 -0.00103791 M 6.015651 -0.00103791 L 22.191126 -0.00103791 M 49.973819 -0.00103791 L 70.30511 -0.00103791 M 98.083875 -0.00103791 L 118.415166 -0.00103791 M 146.193931 -0.00103791 L 166.525222 -0.00103791 M 194.303988 -0.00103791 L 204.469633 -0.00103791 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="3.623056" y="15.194425"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="7.725223" y="17.067002"/>
</g>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1.588803 -0.00103791 C 1.588803 0.874904 0.877837 1.585871 0.00189427 1.585871 C -0.877976 1.585871 -1.588943 0.874904 -1.588943 -0.00103791 C -1.588943 -0.87698 -0.877976 -1.587947 0.00189427 -1.587947 C 0.877837 -1.587947 1.588803 -0.87698 1.588803 -0.00103791 Z M 1.588803 -0.00103791 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 22.191126 13.888345 L 49.973819 13.888345 L 49.973819 -13.890421 L 22.191126 -13.890421 Z M 22.191126 13.888345 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 22.191126 9.724672 L 27.749236 6.943653 L 22.191126 4.166562 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 70.30511 13.888345 L 98.083875 13.888345 L 98.083875 -13.890421 L 70.30511 -13.890421 Z M 70.30511 13.888345 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 70.30511 9.724672 L 75.859292 6.943653 L 70.30511 4.166562 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 61.726374 -0.00103791 C 61.726374 0.874904 61.015407 1.585871 60.139464 1.585871 C 59.259594 1.585871 58.552555 0.874904 58.552555 -0.00103791 C 58.552555 -0.87698 59.259594 -1.587947 60.139464 -1.587947 C 61.015407 -1.587947 61.726374 -0.87698 61.726374 -0.00103791 Z M 61.726374 -0.00103791 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 118.415166 13.888345 L 146.193931 13.888345 L 146.193931 -13.890421 L 118.415166 -13.890421 Z M 118.415166 13.888345 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 118.415166 9.724672 L 123.969348 6.943653 L 118.415166 4.166562 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 109.83643 -0.00103791 C 109.83643 0.874904 109.125463 1.585871 108.249521 1.585871 C 107.373578 1.585871 106.662612 0.874904 106.662612 -0.00103791 C 106.662612 -0.87698 107.373578 -1.587947 108.249521 -1.587947 C 109.125463 -1.587947 109.83643 -0.87698 109.83643 -0.00103791 Z M 109.83643 -0.00103791 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 166.525222 13.888345 L 194.303988 13.888345 L 194.303988 -13.890421 L 166.525222 -13.890421 Z M 166.525222 13.888345 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 166.525222 9.724672 L 172.079404 6.943653 L 166.525222 4.166562 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 157.946486 -0.00103791 C 157.946486 0.874904 157.235519 1.585871 156.359577 1.585871 C 155.483634 1.585871 154.772668 0.874904 154.772668 -0.00103791 C 154.772668 -0.87698 155.483634 -1.587947 156.359577 -1.587947 C 157.235519 -1.587947 157.946486 -0.87698 157.946486 -0.00103791 Z M 157.946486 -0.00103791 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="66.55079" y="9.095374"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="70.651962" y="10.967951"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-1" x="74.011791" y="10.967951"/>
<use xlink:href="#glyph-1-2" x="78.634231" y="10.967951"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="114.394484" y="9.095374"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="118.495657" y="10.967951"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-1" x="121.855485" y="10.967951"/>
<use xlink:href="#glyph-1-3" x="126.477925" y="10.967951"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="162.237184" y="9.095374"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="166.339351" y="10.967951"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-1" x="169.699179" y="10.967951"/>
<use xlink:href="#glyph-1-4" x="174.321619" y="10.967951"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="210.080878" y="9.095374"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="214.18205" y="10.967951"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-1" x="217.541879" y="10.967951"/>
<use xlink:href="#glyph-1-5" x="222.164319" y="10.967951"/>
</g>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 60.139464 -0.00103791 L 60.139464 -12.028552 M 60.139464 -12.028552 L 60.139464 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 71.59742 -24.056066 L 60.139464 -44.89014 L 48.677581 -24.056066 Z M 71.59742 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 108.249521 -0.00103791 L 108.249521 -12.028552 M 108.249521 -12.028552 L 108.249521 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 119.707476 -24.056066 L 108.249521 -44.89014 L 96.787638 -24.056066 Z M 119.707476 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 156.359577 -0.00103791 L 156.359577 -12.028552 M 156.359577 -12.028552 L 156.359577 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 167.817532 -24.056066 L 156.359577 -44.89014 L 144.897694 -24.056066 Z M 167.817532 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 204.469633 -0.00103791 L 204.469633 -12.028552 M 204.469633 -12.028552 L 204.469633 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 215.927588 -24.056066 L 204.469633 -44.89014 L 193.011678 -24.056066 Z M 215.927588 -24.056066 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="87.972553" y="50.631179"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-6" x="91.806214" y="52.503755"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="135.816247" y="50.659024"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-2" x="139.649909" y="52.5316"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="183.658947" y="50.659024"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-3" x="187.493603" y="52.5316"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="231.502641" y="50.631179"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-4" x="235.337297" y="52.503755"/>
</g>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 108.249521 -44.89014 L 108.249521 -59.459065 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 3.175414 0.00127065 L 0.197995 1.764939 L 0.197995 -1.762398 Z M 3.175414 0.00127065 " transform="matrix(0, 0.994465, 0.994465, 0, 122.287799, 73.240601)"/>
<g clip-path="url(#clip-0)">
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 118.666558 -73.348448 C 118.666558 -67.593939 114.000102 -62.931411 108.249521 -62.931411 C 102.495011 -62.931411 97.832484 -67.593939 97.832484 -73.348448 C 97.832484 -79.102958 102.495011 -83.765485 108.249521 -83.765485 C 114.000102 -83.765485 118.666558 -79.102958 118.666558 -73.348448 Z M 118.666558 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
</g>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 114.498957 -73.348448 L 101.996156 -73.348448 M 108.249521 -67.099011 L 108.249521 -79.597885 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 156.359577 -44.89014 L 156.359577 -59.459065 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 3.175414 0.000996824 L 0.197995 1.764666 L 0.197995 -1.762672 Z M 3.175414 0.000996824 " transform="matrix(0, 0.994465, 0.994465, 0, 170.131821, 73.240601)"/>
<g clip-path="url(#clip-1)">
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 166.776614 -73.348448 C 166.776614 -67.593939 162.110158 -62.931411 156.359577 -62.931411 C 150.605067 -62.931411 145.94254 -67.593939 145.94254 -73.348448 C 145.94254 -79.102958 150.605067 -83.765485 156.359577 -83.765485 C 162.110158 -83.765485 166.776614 -79.102958 166.776614 -73.348448 Z M 166.776614 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
</g>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 162.609013 -73.348448 L 150.106212 -73.348448 M 156.359577 -67.099011 L 156.359577 -79.597885 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 204.469633 -44.89014 L 204.469633 -59.459065 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 3.175414 0.000702994 L 0.197995 1.764372 L 0.197995 -1.762966 Z M 3.175414 0.000702994 " transform="matrix(0, 0.994465, 0.994465, 0, 217.975863, 73.240601)"/>
<g clip-path="url(#clip-2)">
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 214.88667 -73.348448 C 214.88667 -67.593939 210.224142 -62.931411 204.469633 -62.931411 C 198.715123 -62.931411 194.052596 -67.593939 194.052596 -73.348448 C 194.052596 -79.102958 198.715123 -83.765485 204.469633 -83.765485 C 210.224142 -83.765485 214.88667 -79.102958 214.88667 -73.348448 Z M 214.88667 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
</g>
<path fill="none" stroke-width="0.797" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 210.71907 -73.348448 L 198.220196 -73.348448 M 204.469633 -67.099011 L 204.469633 -79.597885 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 60.139464 -44.89014 L 60.139464 -73.348448 L 94.360138 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 3.172918 0.000151992 L 0.199428 1.763821 L 0.199428 -1.763517 Z M 3.172918 0.000151992 " transform="matrix(0.994465, 0, 0, -0.994465, 108.375895, 87.152495)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 118.666558 -73.348448 L 142.470194 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 3.172625 0.000151992 L 0.199134 1.763821 L 0.199134 -1.763517 Z M 3.172625 0.000151992 " transform="matrix(0.994465, 0, 0, -0.994465, 156.219937, 87.152495)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 166.776614 -73.348448 L 190.58025 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 3.172341 0.000151992 L 0.19885 1.763821 L 0.19885 -1.763517 Z M 3.172341 0.000151992 " transform="matrix(0.994465, 0, 0, -0.994465, 204.063969, 87.152495)"/>
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 214.88667 -73.348448 L 226.914184 -73.348448 M 226.914184 -73.348448 L 238.941698 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 253.835938 87.152344 C 253.835938 86.28125 253.128906 85.574219 252.257812 85.574219 C 251.386719 85.574219 250.679688 86.28125 250.679688 87.152344 C 250.679688 88.023438 251.386719 88.730469 252.257812 88.730469 C 253.128906 88.730469 253.835938 88.023438 253.835938 87.152344 Z M 253.835938 87.152344 "/>
<g clip-path="url(#clip-3)">
<path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 240.528607 -73.348448 C 240.528607 -72.472506 239.81764 -71.761539 238.941698 -71.761539 C 238.065756 -71.761539 237.354789 -72.472506 237.354789 -73.348448 C 237.354789 -74.22439 238.065756 -74.935357 238.941698 -74.935357 C 239.81764 -74.935357 240.528607 -74.22439 240.528607 -73.348448 Z M 240.528607 -73.348448 " transform="matrix(0.994465, 0, 0, -0.994465, 14.638741, 14.209905)"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-2" x="248.403568" y="81.894164"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="252.362532" y="83.766741"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

+29
View File
@@ -0,0 +1,29 @@
% Author: Prof. Dr. Matthias Jung, DL9MJ
% Year: 2026
\begin{circuitikz}%
\draw(0,0) node[anchor=east](){$x_n$}
to [short, o-] ++(0.5,0) coordinate (regs)
to [register] ++(2,0) coordinate (reg0)
to [register, *-] ++(2,0) coordinate (reg1)
to [register, *-] ++(2,0) coordinate (reg2)
to [register, *-] ++(2,0) coordinate (reg3);
\draw(reg0) node[anchor=south](){$x_{n-1}$};
\draw(reg1) node[anchor=south](){$x_{n-2}$};
\draw(reg2) node[anchor=south](){$x_{n-3}$};
\draw(reg3) node[anchor=south](){$x_{n-4}$};
\draw(reg0) to [short] ++(0,-1) node[anchor=west, ampshape, scale=0.75, rotate=-90](amp0){};
\draw(reg1) to [short] ++(0,-1) node[anchor=west, ampshape, scale=0.75, rotate=-90](amp1){};
\draw(reg2) to [short] ++(0,-1) node[anchor=west, ampshape, scale=0.75, rotate=-90](amp2){};
\draw(reg3) to [short] ++(0,-1) node[anchor=west, ampshape, scale=0.75, rotate=-90](amp3){};
\draw(amp0.north) node[anchor=west](){$k_0$};
\draw(amp1.north) node[anchor=west](){$k_1$};
\draw(amp2.north) node[anchor=west](){$k_2$};
\draw(amp3.north) node[anchor=west](){$k_3$};
\draw[-Triangle](amp1.east) -- ++(0,-0.75) node[adder, anchor=north, scale=0.75](add1){};
\draw[-Triangle](amp2.east) -- ++(0,-0.75) node[adder, anchor=north, scale=0.75](add2){};
\draw[-Triangle](amp3.east) -- ++(0,-0.75) node[adder, anchor=north, scale=0.75](add3){};
\draw[-Triangle](amp0.east) |- (add1.west);
\draw[-Triangle](add1.east) -- (add2.west);
\draw[-Triangle](add2.east) -- (add3.west);
\draw(add3.east) to [short, -o] ++(1,0) node[anchor=south](){$y_n$};
\end{circuitikz}
+17 -2
View File
@@ -1,6 +1,21 @@
Ein wesentlicher Vorteil der digitalen Verarbeitung von Signalen besteht darin, dass die digital vorliegenden Informationen nahezu beliebig bearbeitet werden können. Eine Folge von Eingangssamples wird mittels mathematischer Funktionen in eine Folge von Ausgangssamples umgerechnet. Einfache digitale Filter, wie Tief-, Band- oder Hochpässe, lassen sich dabei auf zwei unterschiedliche Arten ausführen: als FIR- und als IIR-Filter. Dabei steht FIR für *Finite Impulse Response* und IIR für *Infinite Impulse Response*.
Ein wesentlicher Vorteil der digitalen Verarbeitung von Signalen besteht darin, dass die digital vorliegenden Informationen nahezu beliebig bearbeitet werden können. Eine Folge von Eingangssamples wird mittels mathematischer Funktionen in eine Folge von Ausgangssamples umgerechnet. Einfache digitale Filter, wie Tief-, Band- oder Hochpässe, lassen sich dabei auf zwei unterschiedliche Arten ausführen: als FIR- und als IIR-Filter. Dabei steht FIR für *Finite Impulse Response* und IIR für *Infinite-Impulse-Response*.
Hauptmerkmal der FIR-Filter ist, wie auch schon die Bezeichnung "finite" (zu Deutsch endlich) besagt, dass nur eine begrenzte Anzahl an Eingangssamples für die Berechnung eines Ausgangssamples herangezogen wird. IIR-Filter verwenden hingegen zusätzlich bereits berechnete Ausgangssamples, die auf den Eingang der Berechnung zurückgeführt werden. Durch diese Rückkopplung kann ein einzelnes Eingangssample theoretisch unbegrenzt lange Einfluss auf die folgenden Ausgangssamples haben.
Hauptmerkmal der FIR-Filter ist, wie auch schon die Bezeichnung "finite" (zu Deutsch endlich) besagt, dass nur eine begrenzte Menge an Eingangssamples für die Berechnung eines jeden Ausgangssamples herangezogen wird. IIR-Filter berücksichtigen mittels Rückkopplung hingegen alle bisherigen Eingangssamples für die Berechnung eines Ausgangssamples.
Digitale Filter können sowohl in Software auf einem DSP oder in einem SDR als auch in Hardware auf einem FPGA implementiert werden.
[question:AF631]
<indepth>
[picture:1133:a_fir:FIR-Filter]
Abbildung [ref:a_fir] zeigt schematisch den Aufbau eines FIR-Filters. Ein Eingangssample wird in einen Eingangsspeicher geschrieben. In jedem Takt werden die gespeicherten Werte wie bei einem Schieberegister um einen Speicherplatz weitergeschoben. Die Abgriffe der einzelnen Speicherplätze werden mit den entsprechenden Filterkoeffizienten multipliziert und anschließend summiert. Das Ergebnis wird als Ausgangssample ausgegeben.
Angenommen, die vier Filterkoeffizienten haben jeweils den Wert $\frac{1}{4}$, so werden die letzten vier Eingangssamples jeweils mit $\frac{1}{4}$ multipliziert und anschließend summiert. Das Ausgangssample ist damit der Mittelwert der letzten vier Eingangssamples. Ein solches Filter wird auch als *gleitender Mittelwert* bezeichnet.
Eine Eingangsfolge $0,0,0,4,0,0,0,0$ führt damit zur Ausgangsfolge $0,0,0,1,1,1,1,0$.
Das Filter glättet somit schnelle Änderungen, also hohe Frequenzanteile des Eingangssignals. Langsame Änderungen beziehungsweise niedrige Frequenzen werden weitgehend durchgelassen, während schnelle Änderungen beziehungsweise hohe Frequenzanteile abgeschwächt werden. Ein gleitender Mittelwert wirkt daher als sehr einfaches digitales Tiefpassfilter.
Das Filter führt eine sogenannte Faltungsoperation aus, diese ist übrigens auch die Grundlage vieler neuronaler Netze welche die Künstliche Intelligenz antreiben.
</indepth>