原始信号与加噪后信号对比GUI小程序(Python代码)

作品简介

1效果视频https://www.bilibili.com/video/BV1m2yYYdEfe/?spm_id_from=333.999.0.0&vd_source=81b679267caaca5333809941f206a5e2

.2.代码内容:

代码实现了一个基于Tkinter的GUI,用于信号处理和噪声添加。基本流程如下:

  1. 导入库:引入必要的库,包括NumPy、Matplotlib、Pandas和Tkinter。
  2. 创建主窗口:初始化Tkinter窗口,设置标题和大小。
  3. 定义添加噪声的函数add_noise函数根据信号与噪声比(SNR)计算并添加高斯白噪声。
  4. 加载信号的函数load_signal函数用于选择CSV文件并读取信号数据,绘制原始信号图。
  5. 更新绘图函数update_plot函数在滑动条SNR值变化时更新加噪信号图和对比图。
  6. 全局变量定义:定义全局变量用于存储信号、画布和子图。
  7. 创建SNR滑动条:设置一个水平滑动条,允许用户调整SNR值。
  8. 创建加载信号按钮:添加按钮,触发加载信号的操作。
  9. 运行主循环:启动Tkinter的主事件循环,等待用户操作。 

读取表格数据(只需要把信号放在表格里进行读取,即可),

​编辑

3.添加高斯白噪声代码

# 定义添加高斯白噪声的函数
def add_noise(x, snr):
    P_signal = np.sum(abs(x) ** 2) / len(x)
    P_noise = P_signal / 10 ** (snr / 10.0)
    return x + np.random.randn(len(x)) * np.sqrt(P_noise)
#整个项目的代码和数据压缩包:

4.效果图(可以扩大噪声强度范围,目前是-30DB到30DB)

  1. ​编辑

​编辑

​编辑 

创作时间:2024-10-21 22:31:12