2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
파형 분석
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
MATLAB 파일을 다운로드하여 실행한 후 다음 플로우 차트를 사용하여 이전 단계에서 녹음한 웨이브폼 파일을 분석합니다.
그림 1. 효과 1 및 효과 2의 웨이브폼 분석 플로우 차트
그림 2. 효과 3의 웨이브폼 분석 플로우 차트
실패 사례
분석 전과 도중에 실패 케이스 (F01~F05)를 확인합니다.
- F01 및 F02로 지정된 효과는 MATLAB 코드로 처리할 수 없습니다.
- F03-1로 지정된 효과는 MATLAB 코드에서 오류 없이 처리되더라도 성능 맵에 추가할 수 없습니다.
- F03-2, F04, F05로 지정된 효과는 처리 실패에도 불구하고 성능 맵에 추가할 수 있습니다.
Vibrator.hasAmplitudeControl()
이 false
를 반환하면 DUT가 F04 또는 F05로 지정됩니다.
- 측정 중에 효과 3 버튼을 클릭한 후 눈에 띄게 지연 (500밀리초 초과)이 발생하면 DUT에 F04 지정이 적용됩니다.
실패 코드 |
실패 설명 |
해당하는 효과 |
실패 이유 |
실패 수정 |
F01 |
출력 신호가 기록되지 않습니다. |
효과 1 |
햅틱 반응 상수가 구현되지 않았습니다. |
상수 구현에 설명된 대로 빈 상수를 구현합니다. |
F02 |
MATLAB 코드 오류 MATLAB 오류의 예는 다음과 같습니다.
색인이 행렬 크기를 초과합니다. |
효과 1, 효과 2 |
햅틱 효과의 진폭이 너무 약합니다. |
햅틱 효과의 진폭을 늘립니다. |
F03-1, F03-2 |
[F03-1] MATLAB 오류가 없지만 MATLAB 코드에서 채워진 PRR이 0보다 작습니다.
[F03-2] MATLAB 오류가 없지만 MATLAB 코드에서 채워진 진폭이 0.1g보다 작습니다. |
효과 1, 효과 2 |
햅틱 효과의 진폭이 너무 약합니다. |
햅틱 효과의 진폭을 늘립니다. |
F04 |
신호가 너무 짧습니다 (1,000ms가 아닌 약 500ms). |
효과 3 |
기기가 크기 조정된 진폭을 제대로 생성하지 못합니다. 첫 500ms 위상 진폭은 50% 진폭이 호출되었음에도 불구하고 0% 진폭으로 생성됩니다. |
진폭 크기 조정 기능을 사용 설정합니다. |
F05 |
두 최대 진폭 값의 차이가 거의 또는 전혀 없습니다. |
효과 3 |
기기가 크기 조정된 진폭을 제대로 생성하지 못합니다. |
진폭 크기 조정 기능을 사용 설정합니다. |
그림 3. F03-1 (왼쪽) 및 F03-2 (오른쪽)의 MATLAB 신호 플롯 예
그림 4. F04 (왼쪽) 및 F05 (오른쪽)의 MATLAB 신호 플롯 예
분석에서 데이터 획득
각 효과에 관한 MATLAB 코드를 실행할 때 MATLAB 소프트웨어의 명령 창에 표시된 결과를 읽을 수 있습니다.
그림 5. 명령 창의 MATLAB 결과 예시, 효과 1 (첫 번째) 및 효과 3 (두 번째)
효과 1 및 효과 2 (짧은 임펄스)
- 최대 지속 시간 (밀리초)
- 최대 진폭 (g)
- 선명도 측정항목을 계산하기 위한 PRR (FOMS = PRR/최대 시간)
효과 3 (긴 진동)
성능 맵을 사용하여 결과 비교에는 Android 생태계의 대표 기기에서 획득한 동일한 데이터 집합이 포함되어 있으므로 성능 맵을 적절하게 채울 수 있습니다.
이를 통해 전체 생태계를 파악하고 데이터를 실적 지도 데이터와 비교하여 조정할 수 있습니다.
다음 표를 사용하여 DUT가 Android 생태계의 다른 휴대전화나 태블릿과 어떻게 다른지 알아보세요. 이 개념을 중심으로 구성된 구체적인 질문은 다음과 같습니다. 즉, 가격 등급과 같이 유사한 특성을 가진 다른 Android 휴대전화에 비해 내 휴대전화의 성능이 다른 휴대전화보다 우수한가요? 아니면 열등한가요?
[입력]
분석할 효과 |
[출력]
최대/최대 진폭 (G) |
[출력] 최대 시간 (밀리초) |
[출력]
펄스 대 링 비율 (PRR) |
효과 1: 사전 정의된 햅틱 상수(VibrationEffect.EFFECT_CLICK ) |
[1] 데이터 1-1 |
[2] 데이터 1~2 |
[3] 데이터 1~3 |
효과 2: 짧은 맞춤 햅틱 효과 (시간 = 20밀리초, 진폭 = 100%) |
[4] 데이터 2-1 |
[5] 데이터 2-2 |
[6] 데이터 2~3 |
효과 3-1: 첫 500ms 동안 진폭이 50%인 긴 맞춤 햅틱 효과 가속 1단계 |
[7] 데이터 3-1 |
해당 사항 없음 |
해당 사항 없음 |
효과 3-2: 500ms 동안 100% 진폭을 사용하는 긴 맞춤 햅틱 효과 가속 2단계 |
[8] 데이터 3-2 |
해당 사항 없음 |
해당 사항 없음 |
효과 1 및 효과 2의 펄스 대 링 비율 및 최대 진폭
효과 1과 효과 2에서 측정되는 두 가지 주요 매개변수는 펄스 대 링 비율(PRR)과 최대 진폭입니다. 이러한 매개변수는 가속도계 설정에서 수행한 가속도 측정을 기반으로 합니다.
PRR은 기본 펄스와 울림 진폭의 비율을 사용하여 계산됩니다.
Duration은 기본 펄스의 경과 시간입니다. PRR의 공식은 다음과 같습니다.
$$
\text{Pulse to ring ratio (PRR)} = 20log_{10}\frac{\text{RMS (main pulse)}}{\text{RMS (ring)}}
$$
그림 6. 시뮬레이션된 가속도 신호
이러한 요소는 그림 6에 나와 있습니다.
효과 3의 최대 진폭
그림 7. 액추에이터 오버슈트
이러한 요소는 그림 7에 나와 있습니다.
- 긴 진동
- 공진 주파수에서 정현파 입력이 적용될 때 선형 공진 액추에이터의 출력입니다.
- 최대 진폭
- 기기 진동이 안정적인 상태일 때 긴 진동의 최대 진폭입니다.
- 오버슈트
- 오버슈트는 액추에이터가 공진 상태에서 벗어나면 발생합니다. 이 그림은 진동기가 정현파 입력으로 공진 상태에서 벗어날 때 발생하는 동작 유형을 보여줍니다.
이는 극단적인 오버슈팅의 예입니다.
- LRA가 공진 주파수로 구동되면 오버슈트가 거의 또는 전혀 관찰되지 않습니다. LRA의 일반적인 공진 주파수는 50~250Hz입니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Analyze the waveform\n\nAfter downloading and running the MATLAB files, use the following flowcharts\nto analyze the waveform files recorded in the previous step.\n\n**Figure 1.** Waveform analysis flowchart for Effect 1 and Effect 2\n\n**Figure 2.** Waveform analysis flowchart for Effect 3\n\n### Failure cases\n\nBefore and during the analysis, check for failure cases (F01--F05).\n\n- Effects designated with **F01** and **F02** can't be processed by MATLAB code.\n- Effects designated with **F03-1** aren't eligible to be added to the performance map, even if they're processed by MATLAB code with no errors.\n- Effects designated with **F03-2** , **F04** , and **F05** can still be added to the performance map, despite failing processing.\n- If [`Vibrator.hasAmplitudeControl()`](https://developer.android.com/reference/android/os/Vibrator#hasAmplitudeControl()) returns `false`, the DUT is designated as either **F04** or **F05**.\n- If there's a noticeable delay (more than 500 ms) after clicking the Effect 3 button during the measurement, the DUT earns an **F04** designation.\n\n| **Failure code** | **Description of failure** | **Applicable effects** | **Reason for failure** | **Fix for failure** |\n|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|\n| F01 | No output signal is recorded. | Effect 1 | Haptic feedback constant isn't implemented. | Implement the empty constant as described in [Implement constants](/docs/core/interaction/haptics/haptics-constants-primitives#implement-constants). |\n| F02 | MATLAB code error. The example for the MATLAB error is: \u003cbr /\u003e *Index exceeds matrix dimensions.* | Effect 1, Effect 2 | The amplitude of the haptic effect is too weak. | Increase the amplitude of the haptic effect. |\n| F03-1, F03-2 | \\[F03-1\\] No MATLAB error, but PRR populated from the MATLAB code is smaller than 0. \u003cbr /\u003e \\[F03-2\\] No MATLAB error, but amplitude populated from the MATLAB code is smaller than 0.1 g. | Effect 1, Effect 2 | The amplitude of the haptic effect is too weak. | Increase the amplitude of the haptic effect. |\n| F04 | Signal is is too short (around 500 ms rather than 1000 ms). | Effect 3 | The device fails to generate scaled amplitude properly. The first 500 ms phase amplitude is generated with 0% amplitude even though 50% amplitude was called for. | Enable amplitude scale capabilities. |\n| F05 | The two max amplitude values have little or no difference. | Effect 3 | The device fails to generate scaled amplitude properly. | Enable amplitude scale capabilities. |\n\n**Figure 3.** MATLAB signal plot examples for F03-1 (left) and F03-2 (right)\n\n**Figure 4.** MATLAB signal plot examples for F04 (left) and F05 (right)\n\n### Acquire data from the analysis\n\nWhen running MATLAB code for each effect, you can read the results displayed in\nthe Command Window of the MATLAB software.\n\n**Figure 5.** MATLAB results example in Command Window, Effect 1 (first) and\nEffect 3 (second)\n\n- Effect 1 and Effect 2 (short impulse)\n\n - Peak duration (ms)\n - Peak amplitude (g)\n - PRR to calculate figure of metrics for sharpness (FOMS = PRR/peak duration)\n- Effect 3 (long vibration)\n\n - Maximum amplitude (g) for two phases\n\n[Comparing results using the performance map](/docs/core/interaction/haptics/compare)\nincludes the same set of data acquired from the representative devices in\nthe Android ecosystem, so that you can populate the performance map accordingly.\nThis helps you understand the whole ecosystem and align your data with the\nperformance map data for comparison.\n\nUse the following table to get an idea of how your DUT compares to other phones\nor tablets in the Android ecosystem. A specific question structured around that\nnotion looks like this: *Compared to other Android phones with similar\ncharacteristics (like price tier), is my phone performing better or worse than\nother phones?*\n\n| \\[Input\\] Effects to analyze | \\[Output\\] Peak/maximum amplitude (G) | \\[Output\\] Peak duration (ms) | \\[Output\\] Pulse-to-ring ratio (PRR) |\n|------------------------------------------------------------------------------------------------------|---------------------------------------|-------------------------------|--------------------------------------|\n| Effect 1: Predefined haptic constants (`VibrationEffect.EFFECT_CLICK`) | **\\[1\\] Data 1-1** | **\\[2\\] Data 1-2** | **\\[3\\] Data 1-3** |\n| Effect 2: Short custom haptic effect (duration = 20 ms, amplitude = 100%) | **\\[4\\] Data 2-1** | **\\[5\\] Data 2-2** | **\\[6\\] Data 2-3** |\n| Effect 3-1: Long custom haptic effect Acceleration phase 1 with 50% amplitude for the first 500 ms | **\\[7\\] Data 3-1** | n/a | n/a |\n| Effect 3-2: Long custom haptic effect Acceleration phase 2 with 100% amplitude for the second 500 ms | **\\[8\\] Data 3-2** | n/a | n/a |\n\n### Pulse to ring ratio and peak amplitude for Effect 1 and Effect 2\n\nTwo key parameters measured in Effect 1 and Effect 2 are **pulse to ring ratio\n(PRR)** and **peak amplitude** . These parameters are based on the acceleration\nmeasurement made by the\n[accelerometer setup](/docs/core/interaction/haptics/test-equipment#set-up-equipment).\n\nPRR is calculated by taking the ratio of *main pulse* to ringing amplitude.\n*Duration* is the elapsed time for the main pulse. The formula for PRR is: \n$$ \\\\text{Pulse to ring ratio (PRR)} = 20log_{10}\\\\frac{\\\\text{RMS (main pulse)}}{\\\\text{RMS (ring)}} $$\n\n**Figure 6.** Simulated accel signal\n\nThese elements are illustrated in Figure 6:\n\n- **Main pulse:** Defined by the signal inside the duration window where the amplitude decreases to 10% of peak amplitude.\n- **Ring time:** Defined by the signal where the amplitude decreases from\n 10% peak amplitude to less than 1% of the peak amplitude.\n\n | **Note:** In the example, the amplitude decreased to less than 1% of peak amplitude at around 0.1s.\n- Calculate the **PRR** and **duration**: Create a curve fit that uses\n peak points of each acceleration period. Curve fitting is the best method\n to do this as it improves test repeatability by minimizing noise effects.\n\n### Maximum amplitude for Effect 3\n\n**Figure 7.** Actuator overshoot\n\nThese elements are illustrated in Figure 7:\n\n- **Long vibration**\n - The output from the linear resonant actuator when a sinusoidal input is applied, at the resonant frequency.\n- **Maximum amplitude**\n - The maximum amplitude of the long vibration, when the device vibration is at a steady state.\n- **Overshoot**\n - Overshoot occurs when the actuator is driven away from its resonance. The figure shows the type of behavior that occurs when the vibrator is driven away from the resonance with a sinusoidal input. This is an example of *extreme overshoot*.\n - Minimal or no overshoot can be observed when the LRA is driven at its resonant frequency. Typical resonant frequencies of the LRA are between 50 and 250 Hz."]]