This project is a C# console application for performing logical analysis on a set of probabilities. The program evaluates combinations of binary states to compute likelihood ratios, false alarm probabilities, and generates logical expressions in both perfect disjunctive normal form (PDNF) and its minimized version.
- Accepts default or custom input paraInimeters.
- Computes:
- Likelihood Ratios
- False Alarm Probabilities
- Evaluates and sorts combinations based on likelihood ratios.
- Generates logical expressions for valid combinations:
- Perfect Disjunctive Normal Form (PDNF)
- Minimized PDNF
- Provides detailed step-by-step output for transparency and debugging.
p_S
: Probability values for six binary states. Default:[0.29, 0.53, 0.04, 0.04, 0.53, 0.29]
p_N
: Noise probability. Default:0.09
P_lo_threshold
: Threshold probability. Default:0.0006
p_S
: Six values in the range (0, 1), separated by spaces.p_N
: A single value in the range (0, 1).P_lo_threshold
: A single value in the range (0, 1).
- Compile the project using a C# compiler or open it in an IDE like Visual Studio.
- Run the program.
- Choose to use default parameters or provide custom inputs.
- Follow the on-screen prompts to enter data if custom input is chosen.
- View the analysis results in the console output.
The general approach to solving the problem of static synthesis of optimal logical circuits for detecting fully known signals of burst structure is as follows:
- All possible combinations of zeros and ones in the positions of the burst are enumerated. The number of such combinations will be 2^N, where N is the length of the signal burst.
- For each combination, the conditional probability of its occurrence in the signal region and in the noise region is computed. The likelihood ratio is calculated.
- Based on the chosen optimality criterion, a decision is made on whether the signal is detected or not when receiving the given combination.
- During the enumeration process, the set of all combinations is divided into two subsets:
- : associated with the decision that the useful signal is present.
- : associated with the decision that the useful signal is absent.
- For the subset , the perfect disjunctive normal form (PDNF) of the logical function is recorded. The form is then minimized.
- A combinational circuit implementing the minimized form is constructed. This resulting circuit represents the optimal detector.
- Likelihood Ratios: Sorted values for each binary combination.
- False Alarm Probabilities: Computed cumulative probabilities.
- Logical Expressions:
- PDNF for combinations that meet the threshold criteria.
- Minimized PDNF for concise representation.
Use default data? (y/n): n
Enter 6 p_S values separated by spaces (e.g., 0.29 0.53 0.04 0.04 0.53 0.29): 0.3 0.5 0.1 0.1 0.5 0.3
Enter the p_N value (e.g., 0.09): 0.1
Enter the threshold probability P_lo_threshold: 0.001
Code: 000001 | Likelihood Ratio: 1.123456 | False Alarm Probability: 0.000100 | Cumulative Probability: 0.000100 | Exceeds Threshold: False
...
Perfect Disjunctive Normal Form (PDNF):
(x1 & !x2 & x3) || (!x1 & x2 & x3)
Minimized PDNF:
(x1 & x3) || (x2 & x3)
Program.cs
: Main application logic.README.md
: Documentation.
This application can be extended to:
- Support more complex logical combinations.
- Integrate graphical user interfaces.
- Export results to external formats like JSON or CSV.
This project is released under the MIT License. See LICENSE
for details.
Enjoy exploring logical analysis with this tool! If you encounter issues or have suggestions, feel free to contribute or raise an issue on the GitHub repository.