function [accSpec, scaleFactors, nonorthogAngles, misalignAngles] = genAccel(accelParams, distribution)
%GENACCEL creates an accelerometer model with typical bias, scale factor,
%cross axis sensitivity and misalignment errors. These can be randomly
%generated or passed explicitly to the function.

% Properties to generate randomly:
params = genRdnAccelParams(accelParams.fsRange, accelParams.typBiasX, accelParams.typBiasY, accelParams.typBiasZ, accelParams.typSFcalibErrPerc, ...
                           accelParams.typNonOrthogAngleDeg, accelParams.typMisalignAngleDeg, distribution);

accSpec = accelparams(...
    'MeasurementRange', accelParams.fsRange, ... % m/s/s
    'Resolution', accelParams.res, ...
    'ConstantBias', [params.b_x params.b_y params.b_z], ... % m/s/s
    'AxesMisalignment', params.AxesMisalignment * 100, ... % [S][T][M]
    'NoiseDensity', accelParams.noiseDens, ... % (m/s/s)/sqrt(Hz)
    'RandomWalk', accelParams.rdnWalk, ... % (m/s2)*(√Hz)
    'BiasInstability', accelParams.biasInstab, ... % in m/s/s
    'TemperatureBias', [0 0 0], ... % (m/s2)/℃ % ignore temperature effects
    'TemperatureScaleFactor', 0); % ignore temperature

scaleFactors = [params.s_xx params.s_yy params.s_zz];
misalignAngles = deg2rad([params.r params.p params.y]);
nonorthogAngles = [params.alpha params.beta params.gamma]; % in rad.

end