⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 多项式平滑程序.m

📁 本人利用MATLAB处理了并总结了工程上经常用到的“信号处理”的源代码
💻 M
字号:
%平滑参数求解
clear
m=input('m=');					%键盘输入m
k=input('k=');					%键盘输入k,k-1次多项式
p=input('p=');                  %键盘输入实验点数p
n=2*m+1;
y=[0.158,0.240,0.375,0.460,0.586,0.675,0.720,0.736,0.670,0.585,0.455,0.313,0.214,0.110,0.067,0.037];
x=zeros(n,k);
for I=-m:m							%构造X矩阵行循环
	for J=0:k-1						%构造X矩阵列循环
		x(I+m+1,J+1)=I^J;		
    end
end
b=x*inv(x'*x)*x';				    %计算平滑系数并在屏幕输出B矩阵
yc=zeros(p,1);                      % 存放平滑值的矩阵
x=1:1:p;            %产生x坐标值(数据序号)
for i=1:m
    for j=1:n
        yc(i)=yc(i)+b(i,j)*y(j);        %计算前m个端点的平滑值
        yc(p-m+i)=yc(p-m+i)+b(m+i+1,j)*y(p-2*m-1+j);      %计算后m个端点的平滑值
    end
end
for i=m+1:p-m
    for j=1:n
        yc(i) =yc(i)+y(i-m+j-1)*b(m+1,j);               %计算除去2*m个端点的平滑值
    end
end
subplot(1,2,1)                              %将画图区域分作两部分,并水平排列,设定当前区域为1
plot(x,y,'.-r',x,yc,'+-b')                  %画出实验点图和平滑后的图
subplot(1,2,2)                              %将画图区域分作两部分,并水平排列,设定当前区域为2
plot(y,yc,'.r')                             %将实验数据和平滑后的数据作图

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -