optical-filter-design-tool

What is the lowest insertion loss for a double-ring bandpass filter? How narrow the bandwidth can be made? These two factors are closely connected with the passband shape of the spectrum. This calculator helps you to visualize this, as well as designing a filter. If you used this tool in your work, please cite the paper in "Cite this repository".

https://github.com/xinchang233/optical-filter-design-tool

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

What is the lowest insertion loss for a double-ring bandpass filter? How narrow the bandwidth can be made? These two factors are closely connected with the passband shape of the spectrum. This calculator helps you to visualize this, as well as designing a filter. If you used this tool in your work, please cite the paper in "Cite this repository".

Basic Info
  • Host: GitHub
  • Owner: Xinchang233
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1.42 MB
Statistics
  • Stars: 4
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created about 3 years ago · Last pushed about 2 years ago
Metadata Files
Readme Citation

README.md

An App for Optical Filter Design & Optimization

Introduction

This app helps you extract the optimal design of filter, as illustrated in the paper (i.e. minimum insertion loss, optimal transfer function shape, etc.). You will need TWO parameters before you start: 1. the cavity loss Q or loss rate r0; 2. your desired 3-dB bandwidth.

This tool well soon update a Matlab based GUI to implement the design functions for N-dB bandwidth input.

It is constructed using dash, a Python library that supports interactive graphing. Most importantly, this app is farely easy to use. Though it is published as source codes, only few steps needs to be done for setup, which will be illustrated in the following section.

Currently, this interactive design tool (filter_visualization.py) supports the design with fixed 3-dB bandwidth with no passband ripple.

For arbitrary fixed N-dB bandwidth as well as Chebyshev passband (with ripple), please use paraconv.m. example.m illustrate how to use paraconv.m step by step.

Two .lsm files are attached to this design tool for validation of the theory model, which shows a transmission spectrum has a satisfactory agreement between the simulated and theory results on passband shape, bandwidth, and absolute insertion loss.

Environment setup & Installation

  1. To make the code running, Python along with some affiliated packages needs to be installed on your own computer. This can be done easily with the help of Anaconda. To install it, follow the link and go to its official website and download the version corresponding to your operational system. It is same as installing any other software on your own machine.
  2. After sucessfully installing Anaconda, the environment should be set up properly automatically. Since the packages used in the code is usually preinstalled along with Anaconda.
  3. Then download the code and put it under some convinient directory on your computer.
  4. Open the Terminal of your computer, type conda activate and Enter. If you are using Windows, then open Anaconda Prompt and do the same thing.
  5. Type python _directory_of_your_downloaded_code_/filter_visualize.py then Enter.
  6. Several new lines will appear on the screen. Copy the URL (in the red box of figure below) and paste it into browser. The app is available to you. illustration1
    ##### Trouble shooting If some error like ModuleNotFoundError: No module named 'dash' appears on screen, following this to install dash. ### Demostration First, input the bandwidth here, then press PLOT button. A contour map like the one in paper will show up. dm1
    Then, you can tune the shape parameter S and impedence match M through either input a value or play with the slider. You can see the trend by tunning the slider. Real-time values and graphes will keeps updating when you are changing the parameter. You can also change the spectrum by modifying the coupling coefficients on the other side of the spectrum. The graph of two rings and waveguides at the corner gives an intuitive illustration of how strong the coupling is.dm2
    The app also lets you calculate ro (loss coupling rate) of the ring:dm3

Owner

  • Login: Xinchang233
  • Kind: user

Citation (citation.cff)

cff-version: 1.2.1

message: "If you find this design tool useful, please cite the accompanying paper as follows."
authors:
- family-names: "Zhang"
  given-names: "Xinchang"
- family-names: "Singh"
  given-names: "Manuj"
- family-names: "Li"
  given-names: "Dingning"
- family-names: "Popović"
  given-names: "Miloš A."
title: "Optical filter design tool"
url: "https://github.com/Xinchang233/Optical-Filter-Design-Tool"
preferred-citation:
  type: article
  authors:
  - family-names: "Zhang"
    given-names: "Xinchang"
  - family-names: "Singh"
    given-names: "Manuj"
  - family-names: "Li"
    given-names: "Dingning"
  - family-names: "Popović"
    given-names: "Miloš A."
  doi: "10.1364/OL.525476"
  journal: "Optics Letters"
  # month: 7
  # start: 1 # First page number
  # end: 10 # Last page number
  title: "Engineering the passband shape of coupled-cavity bandpass filters for low loss and/or narrow bandwidth"
  issue: 49
  volume: 13
  year: 2024

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2