Define a class, float_seq, to encapsulate a sequence {V} of samples using float precision.
Sequences are to be fully initialized with their data on creation.
Provide (member?) functions that read and write the i'th element in a float_seq andwhich check for valid i, warning the caller (how?) in the event of an invalid value.
Provide a (member?) function to allow read only access to the number of elements in the float_seq.
Provide a (member?) function that zeros all the elements of the sequence.
Define a class FIR to encapsulate the FIR filter using float precision.
Filters are to be fully initialised on creation.
Provide (member?) functions that read and write the ith coefficient of the filter and which check for valid i, warning the caller in the event of an invalid value.
Provide a (member?) function that returns a (reference to, pointer to or instance of -as you feel appropriate?) float_seq containing the filter coefficients.
Both classes float_seq and FIR are to be equipped with destructors, copy constructors and assignment operators.
Overload the stream operators for the float_seq and FIR classes.
Overload the + operator for the class float_seq so that the following,
float_seq a,b,c;
c=a+b;
means concatenation, i.e. that the sequence c consists of the values of sequence a
followed by those of sequence b, e.g. {1,2,3,4} + {5,6,7,8,9}={1,2,3,4,5,6,7,8,9}
Provide a (member?) function for the class FIR whose argument identifies an input
float_seq, applies the filtering operation to that sequence and returns the output
float_seq (reference to, pointer to or instance of - as you feel appropriate?)
Write a main code that reads filter coefficient data from the file filter.txt and creates a filter, reads an input float_seq from the file input.txt, filters the input float_seq using the filterand then writes the output float_seq to the file, output.txt. The input file format is
4 Number of filter coefficients
1 2 1 2 The coefficients
6 Number of values in the data sequence
1.4 5.2 2.5 1.1 1.7 9.3 The data sequence