Verify that discrete-time filter System object is real
Check if Filter Coefficients Are Real
dsp.SOSFilter System object™. Pass a fixed-point input to the object. Test the coefficients of the fixed-point filter to see if they are strictly real.
d = fdesign.lowpass('n,fp,ap,ast',5,0.4,0.5,20); sosFilter = design(d,'ellip',SystemObject=true)
sosFilter = dsp.SOSFilter with properties: Structure: 'Direct form II' CoefficientSource: 'Property' Numerator: [3x3 double] Denominator: [3x3 double] HasScaleValues: true ScaleValues: [0.6252 0.5432 0.4861 1] Use get to show all properties
IsRealBefore = isreal(sosFilter)
IsRealBefore = logical 1
Pass a fixed-point input to the object.
fiInput = fi(randn(1000,2),1,32,16); fiOutput = sosFilter(fiInput); IsRealAfter = isreal(sosFilter)
IsRealAfter = logical 1
isreal function returns a value of 1, indicating that the filter coefficients are real.
sysobj — Input filter
filter System object™
Input filter, specified as one of the following filter System objects:
flag — Flag to determine whether filter coefficients are real
Flag to determine whether the filter coefficients are real, returned as a logical
scalar. If the filter coefficients are real,
isreal returns a
1, else it returns a logical