REPOSITORY OVERVIEWLive repository statistics
★ 14Stars
⑂ 3Forks
◯ 0Open issues
◉ 14Watchers
39/100
OPENREPOHUB HEALTH SIGNALLimited signals
A transparent discovery signal based on current public GitHub metadata.
Recent activity35% weight
30 Community adoption25% weight
20 Maintenance state20% weight
100 License clarity10% weight
0 Project information10% weight
35 This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
README preview
RPi_SISO_ANC
This is the accompanying code repository to the publication by C.House and J.Cheer titled "EFFICIENT RASPBERRY PI IMPLEMENTATION OF A SISO ACTIVE CONTROL SYSTEM USING PYTHON".
This is a Python implementation of the Block-FxLMS algorithm, designed for the application of Single Input Single Output (SISO) Active Noise Control. It is sufficiently efficient to run on a Raspberry Pi 3B, as detailed in the attached conference paper.
The PyAudio package within Python-3 is used to handle the audio IO tasks, run as a callback stream, with the Numpy package being used to implement the active control processing. GUIzero is used to generate a simple checkbox GUI which can turn the controller on or off. The Scipy library is used to implement a high-pass-filter on the error mic.
The repoistory consists of a number of files:
-
measure_plant.py - This is a python script to measure the plant response between the control loudspeaker and the error microphone at a given frequency. This frequency can be adjusted in line 128 and the index of the soundcard to use can be adjusted in line 23 (a list of available soundcards and their accompanying indexes can be found by typing into a terminal: python3 -m sounddevice - the soundcard must have at least 1 output and 2 inputs). The script will generate a 10s sine wave, and play it out of device output 1 at unity gain. The mic signal will be recorded through device input 1 and will be high-pass-filtered at 50Hz. The script will then calculate the transfer function between the generate sine wave and the recored microphone signal at the required frequency, print it to screen and save it to a numpy file. The script will also print the coherence of the measurement (at the given frequency) to the screen, so the user can ensure the measurement is sufficiently valid.
-
python_tonal_anc.py - This is a python script to implement a SISO FxLMS active controller. The frequency to implemenet control at can be adjusted in line 33, the frame-size of the block-FxLMS algorithm can be adjusted in line 25, and the leakage and convergence coefficients can be adjusted in lines 29 and 30 respectively. The index of the soundcard to use can be adjusted in line 23 (a list of available soundcards and their accompanying indexes can be found by typing into a terminal: python3 -m sounddevice). The soundcard must have at least 1 output and 2 inputs, output 1 will be the control signal, output 2 will be a primary disturbance signal (if required), and input 1 will be the error microphone. The plant response measured by measure_plant.pyis used as the plant estimate.
-
plantdata.npy - This is a numpy file containing the plant response between the control loudspeaker and the error microphone. It is generated by measure_plant.py.
-
guizero - This is the installation folder for GUIZERO, which is used to display the GUI.
ALGORITHMICALLY RELATEDSimilar Open-Source Projects
Selected from shared topics, language and repository description—not editorial ratings.
The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
87/100 healthRecently updatedPopularActive repository
PythonNo license#30-days-of-python#data#data-science#database
⑂ 12.7K forks◯ 178 issuesUpdated today
Welcome to the Llama Cookbook! This is your go to guide for Building with Llama: Getting started with Inference, Fine-Tuning, RAG. We also show you how to solve end to end problems using Llama model family and using them on various provider services
96/100 healthRecently updatedPopularActive repositoryHas homepage
Jupyter NotebookMIT#ai#finetuning#langchain#llama
⑂ 2.8K forks◯ 88 issuesUpdated today
Project homepage ↗