Giter VIP home page Giter VIP logo

laserpulse's Introduction

LaserPulse

LaserPulse is a class for storing and handling laser pulses. Pulses can be defined in either time or frequency domain. Both domains are automatically kept synchronized.

Functionalities:
  • Automatic Fourier Transform: When a pulse is modified in time domain the spectral field is automatically updated using fft, and vice versa.
  • Physical Quantities: Pulse duration, bandwidth, central frequency, and other properties of the pulse are automatically calculated.
  • Mathematical Operators: The LaserPulse class supports arithmetic operations, convolutions and calculation of higher harmonics. By default the operators are applied in time domain, so for instance p1*p2 is a multiplication in time domain and a convolution in frequency domain. See the example files for more information.
  • Propagation through media: The effect of propagation through a transparent medium is supported via a 'medium' property and a 'propagate' method.
  • Pulse Trains: A LaserPulse object can contain multiple sub-pulses. Pulse parameters, like central frequency and bandwidth, are calculated from the average pulse intensity, as they would be measured using a slow detector. This functionality can be useful for simulating pulse trains generated by high repetition rate laser sources, for which the individual pulses often cannot be measured individually.
  • Nonlinear optics: The LaserPulse class makes it easy to simulate most populare pulse shaping and pulse compression techniques. The example files shows how to quickly simulate MIIPS, FROG, chirp scan and dispersion scan.
Requirements:

The LaserPulse class is tested on Matlab R2015a.

Installation:
  • Automatic Installation: From matlab: go to the folder where the LaserPulse is located (for example 'cd LaserPulseClass') and run the installer script 'install_LaserPulse.m'.
  • Manual Installation: For installing the LaserPulse class, just include its parent folder in the matlab search path or, alternatively, copy the '@LaserPulse' folder in a folder which is in the matlab search path. For using the additional utilities and example files, also add the 'utilities' and 'examples' folders to the matlab search path. If the folder with the LaserPulse manual is not present, generate it using the matlab 'publish' function. See 'install_LaserPulse.m' for an example.

Copyright (C) 2015-2019 Alberto Comin.

laserpulse's People

Contributors

albeco avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.