Plotting Acoustic Emission signal features like RA, AF & b-value
20 次查看(过去 30 天)
显示 更早的评论
I am trying to analyse an acoustic emission signal for a schoolproject. In the proces i managed to plot the spectrogram, DFFT, cum energyplot and some more after filtering the data. My problem is that i am stuck because i cant find a single source that tells me how i can get the rise angle (RA) of indivual hits, how i get the average frequency (AF) which is defined as the number of counts divided by the duration of the hit and how i can get the b-value from the gutenberg-richter distribution. Does anybody have a source that educates me on how i can get these values and plot them over time?
this is how i get my peaks:
%% Find peaks
M = containers.Map(t,sig);
peak = findpeaks(sig,t, 'MinPeakHeight',peakthreshhold);
firstpeak = peak(1); %%first peak value
tijd1 = cellfun(@(x)isequal(x,firstpeak),values(M));
testkeys = keys(M);
msg_key = testkeys(tijd1);
maxpeak = max(peak); %%max peakvalue
tijd2 = cellfun(@(x)isequal(x,maxpeak), values(M));
testkeys2 = keys(M);
msg_key2 = testkeys2(tijd2); %% value is in cell file type
tijdintervalpieken = cell2mat(msg_key2) - cell2mat(msg_key) %%converting cell value to 'double' data value for calculations
the tricky part is also to define a hit. in 1 hit there are multiple peaks as shown below:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/906725/image.jpeg)
I do not understand how i can get the rise angle (the angle of the rise time) for the hit (not every individual hit). If i can define a hit maybe i can get the AF value by finding every peak in the hit and dividing it by the hittime.
I did find a the
Spatial mapping of Gutenberg-Richters b-value
but it did not make me any wiser which is unfortunate. I do understand how the ditribution is mathematically defined for seismology but i do not have a clear view on how the algoritm is defined for AE and how to get the critical values.
3 个评论
Yavor Kamer
2022-2-28
Not really. Magnitudes are not assigned to samples but to discrete events that release energy for a duration. In your example plot it looks like you have two such events. So you have only two magnitudes. Mc is the magnitude of completness, which tells you the minimum event magnitude that you are sure your network (sensors) will not miss.
I think you better ask your question over at ResearchGate. Give a summary of what your goal and dataset is. Also there are several papers that study GR b-value on AE datasets so you can check them out as well.
回答(1 个)
Yash
2024-2-9
Hi Peter
As I can understand, you are interested in calculating the Rise Angle (RA), Average Frequency (AF), and b-value for your project. Since this is a part of a school project, instead of providing a complete code, I am trying to provide a general approach for these calculations.
Please note that you'd typically need to have a solid understanding of signal processing and some programming skills to perform these analyses.
Firstly, you need to decide what is a "hit" in your case. As Yavor suggested, this could simply be the peak amplitude, or some other metric based on your dataset and its understanding.
Rise Angle (RA)
The Rise Angle is typically defined as the angle of the leading edge of an Acoustic Emission (AE) signal, which is the angle between the time axis and the line connecting the start of the hit to the peak amplitude. To calculate this:
1. Identify the start of the hit and the peak amplitude.
2. Calculate the rise time ('t_rise') as the difference in time and the amplitude difference ('A_diff') between the start and the peak.
3. Calculate the Rise Angle using the "arctangent" function:
RA = atan(A_diff / t_rise) %angle in radians
Average Frequency (AF)
The Average Frequency is the number of counts (zero-crossings or threshold crossings) divided by the duration of the hit. To calculate this:
1. Identify the hit duration ('t_hit').
2. Count the number of threshold crossings within the hit ('N_crossings').
3. Calculate the Average Frequency:
AF = N_crossings / t_hit
b-value (Gutenberg-Richter distribution)
The b-value is a statistical representation of the frequency-magnitude distribution of earthquakes or AE hits. To calculate the b-value for AE:
1. Compile a catalog of AE events with their magnitudes (usually logarithm of the amplitude).
2. Sort the events by magnitude.
3. Count the number of events ('N') that have a magnitude greater than or equal to each magnitude ('M') in your catalog.
4. Plot the logarithm of 'N' versus 'M'.
5. Fit a straight line to the data points in the plot.
6. The slope of the line is the b-value.
Implementation
Using your existing MATLAB code, you'll need to expand your analysis as follows:
- RA: Use the signal data to find the start of the hit and the peak. Calculate the rise time and amplitude difference to get the RA.
- AF: Define a hit by identifying the start and end of a significant AE event. Count the number of threshold crossings and divide by the hit duration.
- b-value: Create a magnitude catalog from your AE data, compute the b-value using the MLE method, and plot the results.
AE signals are quite complex to understand and implement without a proper guidance. For more detailed guidance, you may need to consult academic papers or textbooks on acoustic emission analysis, or seek help from a professor or expert in the field.
Hope this helps!
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!