信源编码作业——LMS算法
一:LMS算法说明:
全称Least mean square 算法,又叫最小均方算法,用于修正滤波器参数使均方差(Mean Square Error,MSE)达到最小,均方差公式如下所示:
步骤:
(1)设置变量和参量:
X(n)为输入向量,或称为训练样本
W(n)为权值向量
b(n)为偏差
d(n)为期望输出
y(n)为实际输出
η为学习速率
n为迭代次数
(2)初始化,赋给w(0)各一个较小的随机非零值,令n=0
(3)对于一组输入样本x(n)和对应的期望输出d,计算
e(n)=d(n)-X^T(n)W(n)
W(n+1)=W(n)+ηX(n)e(n)
(4)判断是否满足条件,若满足算法结束,若否n增加1,转入第(3)步继续执行
二、算法实现——LMS算法的代码:
- const unsigned int nTests =4;
- const unsigned int nInputs =2;
- const double rho =0.005;
- struct lms_testdata
- {
- doubleinputs[nInputs];
- doubleoutput;
- };
- double compute_output(constdouble * inputs,double* weights)
- {
- double sum =0.0;
- for (int i = 0 ; i < nInputs; ++i)
- {
- sum += weights[i]*inputs[i];
- }
- //bias
- sum += weights[nInputs]*1.0;
- return sum;
- }
- //计算均方差
- double caculate_mse(constlms_testdata * testdata,double * weights)
- {
- double sum =0.0;
- for (int i = 0 ; i < nTests ; ++i)
- {
- sum += pow(testdata[i].output -compute_output(testdata[i].inputs,weights),2);
- }
- return sum/(double)nTests;
- }
- //对计算所得值,进行分类
- int classify_output(doubleoutput)
- {
- if(output> 0.0)
- return1;
- else
- return-1;
- }
- int _tmain(int argc,_TCHAR* argv[])
- {
- lms_testdata testdata[nTests] = {
- {-1.0,-1.0, -1.0},
- {-1.0, 1.0, -1.0},
- { 1.0,-1.0, -1.0},
- { 1.0, 1.0, 1.0}
- };
- doubleweights[nInputs + 1] = {0.0};
- while(caculate_mse(testdata,weights)> 0.26)//计算均方差,如果大于给定值,算法继续
- {
- intiTest = rand()%nTests;//随机选择一组数据
- doubleoutput = compute_output(testdata[iTest].inputs,weights);
- doubleerr = testdata[iTest].output - output;
- //调整输入端的权值
- for (int i = 0 ; i < nInputs ; ++i)
- {
- weights[i] = weights[i] + rho * err* testdata[iTest].inputs[i];
- }
- weights[nInputs] = weights[nInputs] +rho * err;
- cout<<"mse:"<<caculate_mse(testdata,weights)<<endl;
- }
- for(int w = 0 ; w < nInputs + 1 ; ++w)
- {
- cout<<"weight"<<w<<":"<<weights[w]<<endl;
- }
- cout<<"\n";
- for (int i = 0 ;i < nTests ; ++i)
- {
- cout<<"rightresult:êo"<<testdata[i].output<<"\t";
- cout<<"caculateresult:" << classify_output(compute_output(testdata[i].inputs,weights))<<endl;
- }
- //
- char temp ;
- cin>>temp;
- return 0;
- }
信源编码作业——LMS算法相关推荐
- Matlab算法DSP移植验证,DSP计算机作业 自适应噪声抵消LMS算法Matlab仿真
[实例简介] 自适应噪声抵消LMS算法Matlab仿真,DSP计算机作业 数字信号处理 自适应 1) 借助MATLAB画出误差性能曲面和误差性能曲面的等值曲线: 2) 写出最陡下降法, LMS算法的计 ...
- 4)自适应滤波(一)[LMS算法]
目录 一.LMS算法 1.滤波器--改变信号频谱 模拟滤波器: 数字滤波器: 2.自适应滤波器简介 自适应滤波器: 非自适应滤波器: 自适应滤波器应用: 自适应滤波场景: 自适应滤波处理逻辑(处理非平 ...
- 【老生谈算法】matlab实现LMS算法的自适应滤波算法源码——自适应滤波
基于matlab的LMS算法的自适应滤波 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]基于LMS的MATLAB大作业.do ...
- 操作系统进程调度算法(先来先服务,短作业优先算法(SJF))linux下(附源码)
先来先服务算法(FCFS) FCFS是最简单的调度算法,既可以用作作业调度,也可以用作进程调度 这种算法优先考虑系统中等待时间最长的作业(进程),而不管作业所需执行时间长短, 做法是从后备队列中选择几 ...
- matlab信道均衡,使用LMS算法做信道均衡时,更换信道传递函数效果很差
clear; clc; % 1.产生长度为2000的0/1随机序列,进行BPSK调制,通过冲激响应为h[1,0.8,0.3]的信道传送,信道的高斯噪声为20dB. %用LMS算法进行均衡输出,均衡抽头 ...
- 非抢占式优先算法例题_非抢占短作业优先算法源代码(C语言)
#include #include #define MAX 5 //进程数 /*短作业优先算法*/ struct pro { int num; //进程名 int arriveTime; //到达时间 ...
- 一、操作系统——处理机(作业)调度算法:先来先服务算法FCFS、最短作业优先算法SJF(非抢占式)、 最短剩余时间优先算法SRTN(抢占式)、最高响应比优先算法HRRN
各种调度算法的学习思路: 调度算法的评价指标: 一.先来先服务算法(FCFS):First Come First Serve 二.最短作业优先算法(SJF非抢占式):Shortest Job Firs ...
- matlab 高斯迭代代码_主动降噪与双麦降噪原理与实现前篇——LMS算法的matlab实现...
LMS算法作为主动降噪与双麦降噪的基础算法,还是非常重要的,这里不多说原理了,后面我慢慢更这一部分. 直接上代码,建议感兴趣的朋友先看看原理再看代码: clear
- matlab blms算法程序,LMS算法Matlab程序
LMS滤波器MATLAB函数 function [yn,W,en]=LMSPrediction(xn,M,mu,k) % LMS(Least Mean Squre)算法 % 输入参数: % xn 输入 ...
最新文章
- 10G_Ethernet_02 10G Ethernet Subsystem 简介
- LeetCode: Convert BST to Greater Tree
- go json的key为数字怎么解析_golang向interface{}解析json时把所有的数字都当成float64...
- 类python中高级用法
- 软考信息系统项目管理师_信息系统项目管理基础---软考高级之信息系统项目管理师009
- 设置角速度及生成四元数及利用刚体
- 机器人正运动学(7)—— 连杆坐标系与DH参数
- 计算机一级要下什么软件练习,国家计算机一级MS OFFICE练习软件
- 一些基本数字图像处理算法
- Polkit授权管理
- 程序员必看电影片单,高分烧脑假期必备!
- 数据分析必备43个Excel函数
- QRCode.js:使用 JavaScript 生成二维码
- vivo手机拍照有什么技巧,如何拍出精美照片?
- css中clip属性的使用
- java字符串流与管道流
- 应用和产业齐步走(转)
- Appinum:在使用安卓模拟器定位页面元素时启动uiautomatorviewer.bat ,但是报错: Error while obtaining UI hierarchy XML file: c
- sql server查询死锁语句
- Dockerharbor安装 镜像私有仓库上床和拉取
热门文章
- android 来电拒接_安卓手机怎么设置拦截陌生电话
- 使用消息摘要算法提升密码安全性
- 怎样把PDF文件转换成JPG格式保存
- 视频教程-VR局域网对战【捕鱼猎手】实战视频教程(上)-Unity3D
- 论文笔记-Real-Time MDE using Synthetic Data with Domain Adaptation via Image Style Transfer
- vue+elementUI实现自定义表单模板组件(二)
- 考研政治80分复习经验帖
- 计算机学院学生管理制度,计算机学院教学管理规章制度.doc
- java毕业设计东方水处理厂原材料仓库管理系统Mybatis+系统+数据库+调试部署
- c语言有趣的图形,数图形