美文网首页
关于滤波的一些基本知识

关于滤波的一些基本知识

作者: 古德蜡克 | 来源:发表于2019-04-15 10:22 被阅读0次

    近期针对数据的预处理做了一些工作,主要是针对非线性数据应用小波变化进行了数据的一些预处理工作。
    1.怎么根据需要的频段选择性的重构信号?
    根据小波的重构原理,通过观察小波树形结构可知,如果分解的层数为n,则最终获取的分支数则为n+1。例如分解了3层,则

    wave1,wave2,wave3,wave4 = pywt.wavedec(signal,wavelet,level=level)
    
    想象一下小波数的结构,其中wave1,wave2,wave3,wave4的为从下往上,从左往右的顺序下的对应的枝节,也就是wave1对应cA3(近似参数),cD3(细节参数),cD2(细节参数),cD1(细节参数)。
    注意:如果想要重构某一个分支上的数据,正确的做法应该是将不需要的分支上的系数置零,再进行重构。而不是把其他的分支的系数直接扔掉,这样的话会导致重构失败或者出现错误的重构结果。
    

    2.各个小波的系数分别重构的结果直接相加是否等于原信号?

    coeffs = pywt.wavedec(signal,wavelet,level=level)
    wave_rec1 = pywt.waverec(np.multiply(coeffs, [1,0,0]).tolist(),wavelet=wavelet)
    wave_rec2 = pywt.waverec(np.multiply(coeffs, [0,1,0]).tolist(),wavelet=wavelet)
    wave_rec3 = pywt.waverec(np.multiply(coeffs, [0,0,1]).tolist(),wavelet=wavelet)
    wave_rec = wave_rec1 + wave_rec2 +wave_rec3
     结论:通过以下数据经过验证,证明滤波结束各个子频段相加的结果就是原始信号。
    
    针对小波包的重构原理也是类似。
    
    from scipy.signal import istft,stft,welch
    from matplotlib import pyplot as plt
    signal = np.random.rand(100,1)
    wavelet = pywt.Wavelet('sym4')
    level = 2
    coeffs = pywt.wavedec(signal[:,0],wavelet,level=level)
    wave_rec1 = pywt.waverec(np.multiply(coeffs, [1,0,0]).tolist(),wavelet=wavelet)
    wave_rec2 = pywt.waverec(np.multiply(coeffs, [0,1,0]).tolist(),wavelet=wavelet)
    wave_rec3 = pywt.waverec(np.multiply(coeffs, [0,0,1]).tolist(),wavelet=wavelet)
    wave_rec = wave_rec1 + wave_rec2 +wave_rec3
    
    x = list(range(len(signal)))
    plt.subplot(311)
    plt.plot(x,wave_rec1,label='wave_rec1')
    plt.legend()
    plt.subplot(312)
    plt.plot(x,wave_rec2,label='wave_rec2')
    plt.legend()
    plt.subplot(313)
    plt.plot(x,wave_rec3,label='wave_rec3')
    plt.legend()
    plt.figure()
    plt.subplot(211)
    plt.plot(x,signal,label='original_signal')
    plt.legend()
    plt.subplot(212)
    plt.plot(x,wave_rec,label = 'wave_rec1+wave_rec2+wave_rec3')
    plt.legend()
    
    图片.png
    图片.png

    相关文章

      网友评论

          本文标题:关于滤波的一些基本知识

          本文链接:https://www.haomeiwen.com/subject/cevywqtx.html