asd
This commit is contained in:
@ -0,0 +1,84 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: response
|
||||
Version: 0.5.0
|
||||
Summary: Your handy frequency and impulse response processing object
|
||||
Home-page: https://github.com/fhchl/Response
|
||||
Author: Franz M. Heuchel
|
||||
Author-email: franz.heuchel@gmail.com
|
||||
License: MIT
|
||||
Platform: UNKNOWN
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.6
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Classifier: Topic :: Multimedia :: Sound/Audio
|
||||
Classifier: Topic :: Utilities
|
||||
Requires-Python: >=3.6.0
|
||||
Description-Content-Type: text/markdown
|
||||
Requires-Dist: numpy
|
||||
Requires-Dist: scipy
|
||||
Requires-Dist: matplotlib (>=2.2.0)
|
||||
Provides-Extra: dev
|
||||
Requires-Dist: pytest ; extra == 'dev'
|
||||
Requires-Dist: pycodestyle ; extra == 'dev'
|
||||
Requires-Dist: pydocstyle ; extra == 'dev'
|
||||
Requires-Dist: pdoc3 ; extra == 'dev'
|
||||
Requires-Dist: pytest-cov ; extra == 'dev'
|
||||
|
||||
|
||||
Response
|
||||
========
|
||||
|
||||
_Your handy frequency and impulse response processing object!_
|
||||
|
||||
[](https://pypi.org/project/response/)
|
||||
[](https://pypi.org/project/response/)
|
||||
[](https://travis-ci.org/fhchl/Response)
|
||||
[](https://codecov.io/gh/fhchl/Response)
|
||||
|
||||
This module supplies the `Response` class: an abstraction of frequency and
|
||||
impulse responses and a set of handy methods for their processing. It implements a
|
||||
[fluent interface][1] for chaining the processing commands.
|
||||
|
||||
Find the documentation [here][2] and the source code on [GitHub][3].
|
||||
|
||||
[1]: https://en.wikipedia.org/wiki/Fluent_interface
|
||||
[2]: https://fhchl.github.io/Response/
|
||||
[3]: https://github.com/fhchl/Response
|
||||
|
||||
```python
|
||||
import numpy as np
|
||||
from response import Response
|
||||
|
||||
fs = 48000 # sampling rate
|
||||
T = 0.5 # length of signal
|
||||
# a sine at 100 Hz
|
||||
t = np.arange(int(T * fs)) / fs
|
||||
x = np.sin(2 * np.pi * 100 * t)
|
||||
# Do chain of processing
|
||||
r = (
|
||||
Response.from_time(fs, x)
|
||||
# time window at the end and beginning
|
||||
.time_window((0, 0.1), (-0.1, None), window="hann") # equivalent to Tukey window
|
||||
# zeropad to one second length
|
||||
.zeropad_to_length(fs * 1)
|
||||
# circular shift to center
|
||||
.circdelay(T / 2)
|
||||
# resample with polyphase filter, keep gain of filter
|
||||
.resample_poly(500, window=("kaiser", 0.5), normalize="same_amplitude")
|
||||
# cut 0.2s at beginning and end
|
||||
.timecrop(0.2, -0.2)
|
||||
# apply frequency domain window
|
||||
.freq_window((0, 90), (110, 500))
|
||||
)
|
||||
# plot magnitude, phase and time response
|
||||
r.plot(show=True)
|
||||
# real impulse response
|
||||
r.in_time
|
||||
# complex frequency response
|
||||
r.in_freq
|
||||
# and much more ...
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user