Skip to content

Commit 0443700

Browse files
Modified README.md
1 parent 6623988 commit 0443700

File tree

1 file changed

+36
-24
lines changed

1 file changed

+36
-24
lines changed

README.md

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This repository provides a Python package for generating, filtering, fitting, an
88

99
### Overview
1010

11-
- Generate noisy sine wave signals (or import one)
11+
- Generate noisy sine wave signals (or import custom signals)
1212
- Apply Butterworth low-pass filters
1313
- Fit damped sine waves to filtered signals
1414
- Perform t-tests between filtered signals and fitted models
@@ -34,7 +34,7 @@ python -m unittest discover -s tests
3434
```
3535

3636
### Example
37-
An example demonstrating generating a signal, applying filters, fitting models, and performing analysis, exists under `examples` directory (refer to `run_example.py`)
37+
An example demonstrating generating a signal, applying filters, fitting models, and performing analysis, exists in the `main.py`.
3838

3939
>[!Note]
4040
> An example plot has been uploaded to the `plots` directory.
@@ -49,49 +49,61 @@ from src.signal_processor import SignalProcessor
4949

5050
timeVector = np.linspace(0, 1, 1000, endpoint = False) # Or consider importing or modifying your time vector
5151

52-
processor = SignalProcessor(timeVector)
52+
generator = SignalGenerator(timeVector)
5353

54-
processor.generateNoisySignal(frequency = 20, noiseStdDev = 0.6)
54+
generator.generateNoisySignal(frequency = 20, noiseStdDev = 0.6)
5555

5656
# or with defaults:
5757
processor.generateNoisySignal() # frequency = 10, noiseStdDev = 0.5
5858
```
5959

60-
Apply Butterworth low-pass filter
60+
Apply a Filter (`butter`, `bessel`, `highpass`). Default is `butter`.
6161

6262
```shell
63-
processor.applyFilter(filterOrder = 2, cutoffFrequency = 0.8)
64-
65-
# or with defaults:
66-
processor.applyFilter() # filterOrder = 4, cutoffFrequency = 0.2
63+
from src.signal_filter import SignalFilter
64+
65+
filteredInstance = generator.generateNoisySignal() \
66+
.applyFilter(filterType = 'butter',
67+
filterOrder = 4,
68+
cutOffFrequency = 0.2,
69+
bType = 'lowpass')
70+
# Or with different filter parameters:
71+
filteredInstance.setFilterParameters('bessel', 5, 0.5, 'highpass').applyFilter()
6772
```
6873

6974
Fit a damped sine wave to the filtered signal
7075

71-
```shell
76+
```shell
77+
from src.signal_fitter import SignalFitter
78+
7279
# default sine wave parameters: amplitudeParam = 1.0, frequencyParam = 10.0, phaseParam = 0.0, decayRateParam = 0.1
73-
74-
processor.fitDampedSineWave()
75-
76-
# Or preset with:
77-
processor.setDampedSineWaveParameters(3.0, 12.0, np.pi / 6, 0.3)
78-
processor.setDampedSineWaveBounds([0, 0, -np.pi/2, 0], [10, 20, np.pi/2, 1])
79-
processor.fitDampedSineWave()
80+
fittedInstance = filteredInstance.fitDampedSineWave()
81+
82+
# Or with custom parameters:
83+
fittedInstance.setDampedSineWaveParameters(3.0, 12.0, np.pi / 6, 0.3)
84+
fittedInstance.setDampedSineWaveBounds([0, 0, -np.pi/2, 0], [10, 20, np.pi/2, 1])
85+
fittedInstance.fitDampedSineWave()
8086
```
8187

8288
Perform a t-test between the filtered signal and the fitted damped sine wave
8389

8490
```shell
85-
processor.performTTest()
91+
from src.statistical_analyzer import StatisticalAnalyzer
92+
93+
analyzedInstance = fittedInstance.analyzeFit()
94+
tTestResults = analyzedInstance.getTTestResults()
95+
print(f"T-test result: statistic={tTestResults[0]}, p-value={tTestResults[1]}")
8696
```
8797

8898
Plot and save the results (will be saved under `plots` directory)
8999

90100
```shell
91-
processor.plotResults()
92-
```
93-
94-
Print the fitting and statistical results
95-
```shell
96-
processor.printResults()
101+
from src.signal_visualizer import SignalVisualizer
102+
103+
visualizer = SignalVisualizer(timeVector, generator.getNoisySignal(),
104+
filteredInstance.getFilteredSignal(),
105+
fittedInstance.getFittedSignal()
106+
)
107+
visualizer.plotResults()
108+
visualizer.plotInteractiveResults()
97109
```

0 commit comments

Comments
 (0)