滤波器算法(2)-最小均方(LMS)
2018.09.09 写的版本
①残差平方和
②平方损失函数:
③函数的极值点为偏导数为0的点:(将问题变成一个求极值的问题)
④求解得:
matlab代码:
① y=ax+b+e方程
1 function [y] = form_y_ax_b(a,b,x) 2 %FORM_Y_AX_B 此处显示有关此函数的摘要 3 % 此处显示详细说明 4 5 y=x.*a+b; 6 7 end
② 专用型最小二求解函数
1 %% 单单针对 y=ax+b+e类型的最小二乘法 2 3 function [a,b] = func_lms1(x,y) 4 %FUNC_LMS1 此处显示有关此函数的摘要 5 % 此处显示详细说明 6 sx=sum(x); 7 sy=sum(y); 8 sxx=sum(x.*x); 9 sxy=sum(x.*y); 10 N=length(x); 11 12 a=(N*sxy-sx*sy)./(N*sxx-sx.^2); 13 b=(sxx*sy-sxy*sx)./(N*sxx-sx.^2); 14 15 end
③ main函数
1 %% 最小二乘法的仿真实验 2 % clc; 3 close all;clear; 4 5 %% y=a*x+b为原始函数 +e噪声数据 6 a=2; % 斜率 7 b=1; % 截距 8 e=1; % 误差系数 9 10 x=1:0.1:10; 11 y=form_y_ax_b(a,b,x); 12 y_noise=y+randn(1,length(x)).*e; 13 14 %% 正式处理 15 [e_a,e_b]=func_lms1(x,y_noise); 16 y_estimate=form_y_ax_b(e_a,e_b,x); 17 18 %% 绘图 19 figure(1); 20 plot(x,y,'r-'),hold on; 21 plot(x,y_noise,'b-*'),hold on; 22 plot(x,y_estimate,'Color',[0 0 0],'LineStyle','-.'),hold on; 23 xlabel('坐标轴x'); 24 ylabel('坐标轴y'); 25 legend('真实数据','加噪数据','估计数据'); 26 set(gca,'FontSize',20); 27 % print -djpeg -r600 示意图;
④ 图谱显示
参考链接:
链接:https://pan.baidu.com/s/1-qPixSd4vKuWW1x120eWhw
提取码:ou07
探究未知是最大乐趣
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人