🥥Python嵌入式片上系统逻辑电路分析调制物理信号

关键词

Python | 嵌入式 | 片上系统SOC | 逻辑电路 | 数学 | 公式 | 绘图 | 信号 | 取样 | 正弦 | 样本 | 插值 | 误差 | 拟合 | 近似 | 离散 | 傅里叶 | 矩阵 | 卷积 | 光谱 | 有限脉冲响应滤波器 | 物理 | 数值 | 噪声 | 指数 | 阶跃响应 | 肌电图 | 粗糙包络 | 心率 | 步态 | 膝盖 | 统计模型 | 二氧化碳 | 频谱 | 音乐 | 谐波 | 多径 | 信道 | 阻尼 | 传递函数 | 音频 | 调制解调

🏈指点迷津 | Brief

🎯要点

  1. 数学公式分解和Python绘图计算解析:🎯信号取样:🖊取样和绘图单个周期内的正弦信号,🖊修改样本密度接近图示弯曲峰值、🖊构造分段线性插值、🖊绘制线性插值填充误差的正弦图、🖊绘制插值器的拟合图、🖊绘图惠特克基数函数插值获得精确近似。🎯计算和绘制离散时间傅里叶变换矩阵。🎯循环卷积光谱分析。🎯有限脉冲响应滤波器。

  2. 物理世界的信号:🎯数值计算和绘制趋势图:🖊无限脉冲响应滤波器积分、🖊噪声数据的平滑和微分,使用萨维茨基-戈莱滤波器、🖊使用三阶巴特沃斯带通滤波器获得纯正弦波,🖊将指数平均滤波器应用于阶跃输入,绘制阶跃响应、🖊肌电图分析:从信号的粗糙包络,计算绘图收缩时间、🖊计算心率变异性、🖊步态分析:计算平均膝盖角度,绘制置信区间、🖊统计模型计算全球二氧化碳级别,绘制二次曲线,🖊生成个人语音数据频谱图和频谱分析、🖊手工代码计算离散傅里叶变换并绘制曲线、🖊计算运动方程:生成弹簧和阻尼器的传递函数,生成弹簧和阻尼器的传递函数,模拟阶跃响应并绘图、🖊谐波逼近音乐声音:傅里叶变换谐波,逼近萨克斯管声音、🖊声音多径传播和多径信道:计算声音传播的数学表达,代码模拟和绘制音频多径传递距离、时间和分贝。

  3. 片上系统SOC逻辑电路:🎯音频时频分析,设计有限脉冲响应去噪,🎯正交相移键控调制解调信号。

🍇Python分析数字化人类神经元信号

有几种非侵入性技术可用于研究大脑,例如脑电图、脑磁图和功能磁共振成像:

  • 脑电图是通过将电极放置在头皮上来记录神经元内部和周围的电流流动产生的低电压而产生的大脑电流的记录。

  • 脑磁图是一种神经成像技术,通过使用非常灵敏的磁力计,利用大脑中自然产生的电流产生的磁场来记录大脑活动。脑磁图在检测高频活动(例如 60 Hz 以上)方面优于脑电图,因为磁场可以穿过头皮,但不能穿过组织之间的电场,这会降低较高频率下的信噪比。

  • 功能性磁共振成像是一种使用磁共振成像技术的功能性神经成像程序。 它通过检测与血流相关的变化来测量大脑活动,当大脑区域在使用时,流向该区域的血流也会增加。

  • 功能性近红外光谱是一种利用近红外光谱进行功能性神经成像的大脑监测技术。 通过近红外光测量大脑活动,以估计响应神经活动而发生的皮质血流动力学活动。

伪影是脑电图系统记录的信号,但实际上并非来自大脑,而是来自大脑神经元活动以外的来源。伪影是干扰或噪声的一种形式。

独立分量分析是一种从一组录音中分离独立信号的技术,其中源信号以未知的比例混合在一起。例如,如果我们有 3 个乐器在同一个房间演奏,并且有 3 个麦克风录制演奏,您是否可以“分解”3 个麦克风录制的信号以分离每个乐器的信号(重新编码)?对于伪影校正,独立分量分析用于分离组件,以便识别来自眼球运动或心跳的伪影。

典型相关分析是一种寻找两个或多个多维数据集之间线性相关关系的方法。典型相关分析找到一个规范坐标空间,使数据集在该空间上的投影之间的相关性最大化。典型相关分析允许同时分析大脑测量数据矩阵(例如,一组大脑区域之间的连接性链接)和行为测量的第二数据矩阵(例如,来自各种调查问卷的回答项目)。 换句话说,典型相关分析识别了两个高维变量集中常见统计关联的来源。

代码实现

 import os
 import numpy as np
 import matplotlib.pyplot as plt
 from sklearn.cross_decomposition import CCA

读取数据集

  sample_data_folder = mne.datasets.sample.data_path()
 # access a fif file from local
 sample_data_raw_file = os.path.join(sample_data_folder, "MEG", "sample", "sample_audvis_raw.fif")
 # read a fif file
 raw = mne.io.read_raw_fif(sample_data_raw_file)
 # get channels name and number of channels
 print(raw.info['ch_names'])
 print("Number of channels: ", raw.info['nchan'])

绘制脑神经活跃趋势图,可视化信号和功率谱密度:

 raw.plot(duration=10, n_channels=10) # first 10 channels in order
 plt.close()
 # plotting only EEG signals
 test = raw.copy()
 test = test.pick_types(meg=False, eeg=True)
 test.plot(duration=10, n_channels=10) # first 10 channels in order
 plt.close()

功率谱密度:

 raw.plot_psd() # you can use fmax=50 to limit the freq, because data low-pass in 40 Hz
 plt.close()

希尔伯特变换,从脑电图中提取时间频率(幅度或相位谱)的替代方法

 raw_copy = raw.copy()
 print(raw_copy.get_data().dtype)
 hilbert_raw = raw_copy.load_data().apply_hilbert()
 print(hilbert_raw.get_data().dtype)

刺激通道是不接收来自脑电图、脑磁图或其他传感器信号的通道。相反,刺激通道记录与实验事件(例如刺激的开始或按钮按下响应)时间锁定的电压。绘制通道:

 ​
 raw_copy_2 = raw.copy()
 raw_copy_2.pick_types(stim=True).plot()
 plt.close()

蒙太奇包含 3D 传感器位置(以米为单位)。它们在加载时自动存储在 Raw 对象的 info 属性中

 montage_dir = os.path.join(os.path.dirname(mne.__file__), 'channels', 'data', 'montages')
 print(sorted(os.listdir(montage_dir)))

伪影是由大脑信号以外的来源产生的记录信号的一部分。 伪影是与感兴趣的信号相关的干扰或噪声的一种形式:环境伪影、仪器伪影和生物伪影。

 # artifacts detection
 raw_copy_4 = raw.copy()
 # get copy of projectors into a variable and remove them
 ssp_projectors = raw_copy_4.info['projs']
 raw_copy_4.del_proj()

可以使用陷波滤波器去除电源线噪声,直接应用于原始对象,指定要衰减的频率数组。

 # plotting PSD plot
 raw.plot_psd(tmax=np.inf, fmax=250, average=True)
 plt.close()

Last updated