---
id: wiki-2026-0508-brain-computer-interface-bci
title: Brain-Computer Interface (BCI)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [BCI, BMI, brain-computer interface, Neuralink, EEG, neuroprosthesis, neuro-rights]
duplicate_of: none
source_trust_level: B
confidence_score: 0.85
verification_status: applied
tags: [bci, neuroscience, neuralink, eeg, motor-prosthesis, neuro-rights, ethics, biomedical]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: Python / C++
  framework: BrainFlow / OpenBCI / MNE
---

# Brain-Computer Interface (BCI)

## 📌 한 줄 통찰
> **"매 thought 의 direct digital translation"**. 매 brain signal 의 capture → 매 ML decode → 매 output (mouse, prosthesis, text). 매 modern AI 의 surge — 매 LLM-aided decoding 의 accuracy boost. 매 ethics: 매 neuro-rights, 매 mind privacy.

## 📖 핵심

### 매 invasive vs non-invasive

#### Invasive
- **Utah Array** (BrainGate): 매 cortex 의 100 electrode.
- **Neuralink** (Threads): 매 1024 channel, 매 robotic insertion.
- **ECoG** (Electrocorticography): 매 surface, 매 less invasive.
- ✅ 매 high SNR. ✅ 매 spatial resolution.
- ❌ 매 surgery. 매 infection risk. 매 long-term degradation.

#### Non-invasive
- **EEG**: 매 scalp electrode. 매 cheap, 매 noisy.
- **MEG**: 매 magnetic. 매 expensive, 매 stationary.
- **fMRI**: 매 hemodynamic. 매 slow.
- **fNIRS**: 매 hemodynamic + 매 portable.
- ✅ 매 safe. ✅ 매 reversible.
- ❌ 매 low resolution.

### 매 signal type
- **Spike**: 매 single neuron firing (invasive).
- **LFP** (Local Field Potential): 매 population.
- **EEG band**: δ (1-4Hz), θ (4-8), α (8-13), β (13-30), γ (30-100).
- **ERP** (Event-Related Potential): P300, N400.
- **Motor cortex 의 movement direction**: 매 BrainGate 의 base.

### 매 paradigm
- **Motor imagery**: 매 think 의 left/right hand.
- **P300 speller**: 매 매 character 의 oddball.
- **SSVEP** (Steady-State Visual Evoked Potential): 매 frequency-tagged stimulus.
- **Direct neural decoding**: 매 latest 의 trend.

### 매 modern milestone
- **2023 Stanford**: 매 paralyzed patient 의 매 분 의 60 word.
- **2024 UC Davis**: 매 ALS patient 의 매 12K word vocab.
- **2024 Neuralink**: 매 first human 의 N1 implant.
- **2024 Synchron**: 매 vascular stent (less invasive).
- **2025 Brain.io / Precision Neuroscience**: 매 surface recording.

### 매 응용
1. **Locked-in syndrome**: 매 communication.
2. **Spinal cord injury**: 매 prosthesis control.
3. **Speech restoration**: 매 ALS / stroke.
4. **Vision restoration**: 매 cortical implant.
5. **Hearing**: 매 cochlear implant (의 standard).
6. **Depression / OCD**: 매 deep brain stimulation.
7. **Augmentation** (controversial): 매 healthy human.
8. **VR / gaming**: 매 commercial (Emotiv, Neurable).

### 매 LLM 결합 (2024+)
- 매 brain signal → 매 candidate words → 매 LLM 의 disambiguate.
- 매 sparse decoding 의 fluent output.
- 매 Stanford Brain-to-Text Pipeline.

### 매 ethics

#### Neuro-rights (Ienca, Yuste)
1. **Cognitive liberty**: 매 mind 의 autonomy.
2. **Mental privacy**: 매 thought 의 protect.
3. **Mental integrity**: 매 manipulation X.
4. **Psychological continuity**: 매 identity 의 protect.
5. **Equal access**: 매 enhancement gap.

→ Chile (2021), Spain (proposing) 의 첫 입법.

#### 매 issue
- **Mind reading**: 매 surveillance.
- **Data ownership**: 매 brain data 의 누구.
- **Manipulation**: 매 advertising.
- **Identity**: 매 augment 의 self.
- **Inequality**: 매 access 의 wealth-based.

### 매 modern challenge
1. **Long-term stability**: 매 implant 의 degrade.
2. **Decoder drift**: 매 brain plasticity.
3. **Signal-to-noise**: 매 EEG 의 limit.
4. **Bandwidth**: 매 thought 의 high-dim.
5. **Surgery cost**: 매 invasive 의 access.
6. **Regulation**: 매 FDA 의 slow.

## 💻 패턴

### EEG 데이터 의 read (BrainFlow)
```python
from brainflow.board_shim import BoardShim, BoardIds, BrainFlowInputParams

params = BrainFlowInputParams()
board = BoardShim(BoardIds.SYNTHETIC_BOARD.value, params)
board.prepare_session()
board.start_stream()

import time
time.sleep(5)
data = board.get_board_data()  # (channels, samples)
board.stop_stream()
board.release_session()

# (n_channels, n_samples)
print(data.shape)
```

### EEG band power
```python
import numpy as np
from scipy.signal import welch

def band_power(data, fs=250, band=(8, 13)):
    """매 alpha (8-13 Hz) 의 power."""
    freqs, psd = welch(data, fs=fs, nperseg=fs*2)
    band_idx = (freqs >= band[0]) & (freqs <= band[1])
    return np.mean(psd[..., band_idx], axis=-1)

alpha = band_power(eeg_signal, band=(8, 13))
beta = band_power(eeg_signal, band=(13, 30))
```

### Motor imagery classifier
```python
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from mne.decoding import CSP

# 매 CSP (Common Spatial Patterns) — 매 BCI 의 classic
csp = CSP(n_components=4, reg=None)
X_csp = csp.fit_transform(epochs.data, labels)

clf = LinearDiscriminantAnalysis()
clf.fit(X_csp, labels)
```

### Deep learning EEG (EEGNet)
```python
import torch
import torch.nn as nn

class EEGNet(nn.Module):
    def __init__(self, n_classes=2, n_channels=64, samples=128):
        super().__init__()
        self.conv1 = nn.Conv2d(1, 8, (1, 64), padding=(0, 32))
        self.bn1 = nn.BatchNorm2d(8)
        self.depthwise = nn.Conv2d(8, 16, (n_channels, 1), groups=8)
        self.bn2 = nn.BatchNorm2d(16)
        self.pool = nn.AvgPool2d((1, 4))
        self.classifier = nn.Linear(16 * (samples // 4 // 8), n_classes)
    
    def forward(self, x):
        # x: (B, 1, C, T)
        x = self.pool(F.elu(self.bn2(self.depthwise(F.elu(self.bn1(self.conv1(x)))))))
        return self.classifier(x.flatten(1))
```

### Brain-to-text decoding (LLM-aided)
```python
def decode_with_llm(brain_signal, vocab_decoder, llm):
    # 매 1. 매 brain → 매 candidate words (top-K)
    candidates_per_step = vocab_decoder.decode(brain_signal, top_k=5)
    
    # 매 2. 매 LLM 의 disambiguate (beam search)
    sentences = beam_search(candidates_per_step, llm, beam=5)
    return sentences[0]
```

### Online BCI loop (real-time)
```python
async def bci_loop(board, decoder, output_device):
    buffer = []
    while True:
        new_samples = await board.read_async()  # ~ 50 ms
        buffer.append(new_samples)
        if len(buffer) >= window_size:
            decoded = decoder.predict(np.concatenate(buffer))
            output_device.send(decoded)
            buffer = buffer[-overlap:]
        await asyncio.sleep(0.04)  # 25 Hz update
```

### Privacy: differential privacy on brain data
```python
def add_noise_to_brain_data(signal, epsilon=1.0):
    # 매 individual epoch 의 share 의 protect
    noise = np.random.laplace(0, 1/epsilon, size=signal.shape)
    return signal + noise

# 매 federated learning 의 raw data 의 leave 의 X
```

## 🤔 결정 기준
| 응용 | Approach |
|---|---|
| Paralyzed communication | Invasive (Utah / Neuralink) |
| Consumer / wellness | EEG (Muse, Emotiv) |
| Research | OpenBCI + MNE |
| Speech restoration | Cortical + LLM |
| VR / gaming | EEG / fNIRS |
| Mood / focus | EEG band (α/β ratio) |
| Augmentation | 매 ethics 의 first |

**기본값**: 매 medical = invasive + LLM. 매 consumer = EEG + classical ML.

## 🔗 Graph
- 부모: [[Biomedical-Engineering]] · [[HCI]]
- 변형: [[Neuralink]]
- Adjacent: [[EEG]] · [[CSP]] · [[Bayesian-Brain-Hypothesis]]
- 윤리: [[Neuro-Rights]]

## 🤖 LLM 활용
**언제**: 매 BCI system design. 매 EEG decoding. 매 medical use case. 매 neuro-rights policy.
**언제 X**: 매 medical advice (의사). 매 specific clinical decision.

## ❌ 안티패턴
- **EEG 의 over-claim** (consumer): 매 mind reading 의 marketing.
- **Decoder 의 train-test 의 same session**: 매 drift 의 fail.
- **No calibration**: 매 user 의 다름.
- **No privacy**: 매 brain data 의 leak.
- **Mind 의 surveil 의 consent X**: 매 violation.
- **Augmentation 의 unreviewed**: 매 long-term effect 의 X.

## 🧪 검증 / 중복
- Verified (BrainGate, Neuralink, Stanford speech BCI papers, Ienca neuro-rights).
- 신뢰도 B.
- Related: [[EEG]] · [[Neuralink]] · [[Bayesian-Brain-Hypothesis]] · [[Neuro-Rights]] · [[Atmospheric-Intelligence]].

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — invasive/non + paradigm + LLM-aided + neuro-rights + 매 EEG / EEGNet code |
