Learning Outcomes Upon the successful completion of this project, you will gain a better understanding of the following course concepts The impact of thermal noise on digital signals/data Limitation of noise filtering techniques Additionally, you will enhance your knowledge and skills in writing a well documented java program with medium complexity according to software engineering standards. Program Structure Your program for this project should include the following 5 distinct sections as shown below. Note that the program gets its input data from the user interactively. The attached sample program shows the structure described below and the way to document a program. Program Header: (Programmer's Name, Class, Date, Program's Name, Program's Description)-this section is mainly documentation Declaration of Variables: (e.g: integers, floats, strings, classes, objects, etc.) Program Inputs: List of input data (e.g.: noise percentage, output file name) Processes: Clean data using a counting loop, Noisy data is the summation of clean data and Gaussian noise, Filtered data is generated from the noisy data using an If statement Program Outputs: Noise percentage, clean data, noisy data, and filtered data in a data file in a formatted manner (see the attachment) Run the progran for 5 cases of noise levels, namely: 10%, 20% 30%, 40%, and 50% Learning Outcomes Upon the successful completion of this project, you will gain a better understanding of the following course concepts The impact of thermal noise on digital signals/data Limitation of noise filtering techniques Additionally, you will enhance your knowledge and skills in writing a well documented java program with medium complexity according to software engineering standards. Program Structure Your program for this project should include the following 5 distinct sections as shown below. Note that the program gets its input data from the user interactively. The attached sample program shows the structure described below and the way to document a program. Program Header: (Programmer's Name, Class, Date, Program's Name, Program's Description)-this section is mainly documentation Declaration of Variables: (e.g: integers, floats, strings, classes, objects, etc.) Program Inputs: List of input data (e.g.: noise percentage, output file name) Processes: Clean data using a counting loop, Noisy data is the summation of clean data and Gaussian noise, Filtered data is generated from the noisy data using an If statement Program Outputs: Noise percentage, clean data, noisy data, and filtered data in a data file in a formatted manner (see the attachment) Run the progran for 5 cases of noise levels, namely: 10%, 20% 30%, 40%, and 50%