I sample the BMI088 sensor static data in the marble platform in 0.5 hour, then calc the gyro(x/y/z) PSD, and found the strange peak point on x/y/z as the image below, what is the root cause? btw, BMI088 acc PSD is normal.
more test detail below for reference:
1. BMI088 settings: 23Hz LPF， 200Hz.
2. BMI160 settings and gyro PSD(normal, for reference).
74.6 Hz LPF， 200Hz
Solved! Go to Solution.
BMI088 gyro has typical noise density of 0.014dps/rt(Hz). At 23Hz bandwidth, the RMS noise level (1-sigma) = 0.014 * root(1.22 * 23) = 0.08dps, where 1.22 is the coefficient of internal low pass filter. So 3-sigma RMS noise level = 0.24dps. If you calculate the standard deviation from your data collection Excel file, then you can check if it is within the 3-sigma of 0.24dps range or not. If you see gyro data spikes, then please check if you read 6-byte gyro data registers in one I2C or SPI transaction or not which is also called burst read.
I have the similar problem. The spikes are not in the gyro data but in the power spectrum density of the gyro data.
The problem I have is:
1. I am using my own PCB to get data via SPI from BMI088. I found the PSD of the gyro data has spikes (raw_331_230Hz). 230Hz means the gyro data is sampled at 2000Hz with the lowpass filter of 230Hz.
2. I then tried Bosch's development kit and used the same gyro settings. The spikes are still there (raw_Bosch_230Hz).
3. I then tried 523Hz LPF on Bosch's development kit. The spikes were gone.
So, where can these spikes be from?
Besides, choosing a lower cutoff frequency (230Hz vs. 523Hz) not only lowers PSD at high frequency but also reduces energy at low frequency (please also refer to figure below), which is strange. Do you have an explanation for this?
I also checked the RMS noise. According to your equation, for 523Hz bandwidth, the RMS is 0.014*sqrt(1.22*230) = 0.23dps. However, my data shows a much larger value than this. Please see the time series plot below. The range I am using is 2000dps. If this is related to the RMS, is there an equation?
If i want to get the Gyro static data with normal PSD, which configuration should i have regarding to the burst_read?
btw, if get the BMI088 gyro with FIFO mode, could i get the static data with normal PSD or a better PSD that not looks strange?