当前位置: 首页 > news >正文

信号数据(eeg,ecg,心率等)- 深度学习

信号数据在送入网络前都需要对信号数据进行经过处理,降噪,去噪等;对于信号类数据去噪的方法有很多,比如:傅里叶变换,小波变换,中值滤波法等等。

左图为去噪前,中间子图为去噪后,右侧子图为去噪前后的对比图。

下面时随机生成的信号数据并进行滤波处理的代码

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt# 参数
fs = 256                  # 采样率
duration = 1             # 秒
n_samples = int(fs * duration)
t = np.arange(n_samples) / fs# 1. 生成“EEG 类似”随机信号 + 噪声
rng = np.random.default_rng(42)
eeg = rng.standard_normal(n_samples) * 3e-6          # 3 µV 随机 walk
eeg += 0.5e-6 * np.sin(2*np.pi*10*t)                 # 加 10 Hz α 成分
eeg += 1e-6 * np.sin(2*np.pi*50*t)                   # 50 Hz 工频# 2. 设计滤波器
low, high = 0.5, 40
b, a = butter(N=4, Wn=[low, high], btype='band', fs=fs)# 3. zero-phase 滤波
eeg_filt = filtfilt(b, a, eeg)

2.快速傅里叶变换

1)幅度谱

代码

N = len(eeg_filt)
X_fft = np.fft.rfft(eeg_filt)          # 实信号单边谱
freqs = np.fft.rfftfreq(N, 1/fs)       # 对应频率轴
amp = np.abs(X_fft) * 2 / N            # 归一化幅度

2)二维图

N = len(eeg_filt)
X_fft = np.fft.rfft(eeg_filt)          # 复数
freqs = np.fft.rfftfreq(N, 1/fs)       # 频率轴
amp = np.abs(X_fft)                    # 幅度
# 可选:归一化到 0-1
amp_norm = (amp - amp.min()) / (amp.max() - amp.min() + 1e-12)# 2. 生成二维「图像」:把谱复制 N_row 行
N_row = 64              # 任意行数,可调
fft_img = np.tile(amp_norm, (N_row, 1))   # shape = (64, len(freqs))

彩色:


希尔伯特变换 → 得到解析信号

把信号所有频率分量相位推迟90度。

代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt
from scipy.signal import stft
from scipy.signal import hilbert# 参数
fs = 256                  # 采样率
duration = 1           # 秒
n_samples = int(fs * duration)
t = np.arange(n_samples) / fs# 1. 生成“EEG 类似”随机信号 + 噪声
rng = np.random.default_rng(42)
eeg = rng.standard_normal(n_samples) * 3e-6          # 3 µV 随机 walk
eeg += 0.5e-6 * np.sin(2*np.pi*10*t)                 # 加 10 Hz α 成分
eeg += 1e-6 * np.sin(2*np.pi*50*t)                   # 50 Hz 工频# 2. 设计滤波器
low, high = 0.5, 40
b, a = butter(N=4, Wn=[low, high], btype='band', fs=fs)# 3. zero-phase 滤波
eeg_filt = filtfilt(b, a, eeg)from scipy.signal import hilbert# 4. 希尔伯特变换 → 得到解析信号
eeg_h = hilbert(eeg_filt)          # 复数数组
eeg_envelope = np.abs(eeg_h)       # 包络(瞬时幅度)
eeg_phase = np.angle(eeg_h)        # 瞬时相位(可选)
eeg_instant_freq = np.diff(np.unwrap(eeg_phase)) / (2*np.pi) * fs  # 瞬时频率(可选)plt.figure(figsize=(6,3))
plt.plot(t, eeg_filt*1e6, label='Filtered EEG', alpha=0.7)
plt.plot(t, eeg_envelope*1e6, label='Envelope (Hilbert)', linewidth=2, color='tab:orange')
plt.xlabel('Time (s)'); plt.ylabel('Amplitude (µV)'); plt.legend(); plt.tight_layout(); plt.show()

http://www.dtcms.com/a/492621.html

相关文章:

  • 社团网站建设小公司做网站还是微博
  • 第8章 基于表格型方法的规划和学习(1) 模型、规划与学习和Dyna-Q
  • 做网站的前景如何营销策略国内外文献综述
  • 购物型网站怎么建立wordpress证优客
  • 冷门行业做网站的优势o2o网站建设多少钱
  • 网站后台的建设建设网站是做什么
  • [嵌入式系统-124]:GPU软件运行平台的三个支柱:OpenGL、OpenCL 、CUDA
  • 网站信息抽查评估杭州专业seo服务公司
  • 网站备案号查询网址免费空间申请哪个好
  • 洛阳网站建设睿翼网络入驻洛阳做钓鱼网站
  • 株洲网站建设平台免费网站空间 国外
  • 负面信息网站做特价的网站百度
  • 盲盒app怎么提升用户访问速度
  • 织梦网站密码网站建设工作 方案
  • 城市分站cmswordpress比织梦安全吗
  • 网站怎么做需要花钱吗深圳网络推广市场
  • AUTOSAR进阶图解==>AUTOSAR_TPS_TimingExtensions
  • 算法|动态规划及例题思路
  • 做网站是否需要自购服务器什么网站做3d模型能赚钱
  • 网站的交互怎么做郑州外语网站建站优化
  • 边缘AI:TensorFlow Lite量化,移动端部署方案?
  • 没有内容的网站应该怎么做包装设计模板
  • 有什么好的网站建设的书wordpress 知鸟
  • vue 下拉框 vxe-select 实现人员选择下拉列表
  • 网站名和域名大型网页游戏大全
  • Redis 主从模式同步原理机制
  • 在马来西亚做网站网站合法吗学习做网站的网站
  • html5网站开发教程专业做淘宝网站推广
  • 一般的网站需要多大的空间深圳市住房和建设局网站住房保障
  • 网站排名突然下降建设工程检测预约网站