基于LMS的正弦信号去噪

# -*- coding: utf-8 -*- 
"""
Created on Thu May 30 21:17:42 2013
@author: Timchen525
"""
import numpy as np
import matplotlib.pyplot as plt
from numpy import shape
#定义向量的内积
def multiVector(A,B):
    C=np.zeros(len(A))
    for i in range(len(A)):
        C[i]=A[i]*B[i]
    return sum(C)

#取定给定的反向的个数
def inVector(A,b,a):
    D=np.zeros(b-a+1)
    for i in range(b-a+1):
        D[i]=A[i+a]
    return D[::-1]

#lMS算法的函数
def LMS(xn,dn,M,mu,itr):
    en=np.zeros(itr)
    W=[[0]*M for i in range(itr)]
    for k in range(itr)[M-1:itr]:
        x=inVector(xn,k,k-M+1)
        y=multiVector(W[k-1],x)
        en[k]=dn[k]-y
        W[k]=np.add(W[k-1],2*mu*en[k]*x) #跟新权重
    #求最优时滤波器的输出序列
    yn=np.inf*np.ones(len(xn))
    for k in range(len(xn))[M-1:len(xn)]:
        x=inVector(xn,k,k-M+1)
        yn[k]=multiVector(W[len(W)-1],x)
    return (yn,en)
if __name__=="__main__":
    #参数初始化
    itr=1000 #采样的点数
    M=5 #滤波器的阶数
    mu=3.0342e-005 #步长因子
    t=np.linspace(0,99,itr)
    xs=10*np.sin(0.5*t)
    xn1=np.random.randn(itr) #参考输入端的输入信号
    xn=np.add(xn1,xs) #原始输入端的信号为被噪声污染的正弦信号
    dn=xs #对于自适应对消器,用dn作为期望
    #调用LMS算法
    (yn,en)=LMS(xn,dn,M,mu,itr)
    #画出图形
    plt.figure(1)
    plt.plot(t,xn,label="$xn$")
    plt.plot(t,dn,label="$dn$")
    plt.xlabel("Time(s)")
    plt.ylabel("Volt")
    plt.title("original signal xn and desired signal dn")
    plt.legend()
    plt.figure(2)
    plt.plot(t,dn,label="$dn$")
    plt.plot(t,yn,label="$yn$")
    plt.xlabel("Time(s)")
    plt.ylabel("Volt")
    plt.title("original signal xn and processing signal yn")
    plt.legend()
    plt.figure(3)
    plt.plot(t,en,label="$en$")
    plt.xlabel("Time(s)")
    plt.ylabel("Volt")
    plt.title("error between processing signal yn and desired voltage dn")
    plt.legend()
    plt.show()


【6层】一字型框架办公楼(含建筑结构图、计算书) 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值