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

📄 datafit1.m

📁 语音信号子带编码源程序
💻 M
字号:
function  datafit1
%《语音信号子带编码》
% 对不同的子带数,选择相似的字长分派方式进行传输处理
% 所需要的时间进行统计分析。并且可以选用不同的参数拟
% 和,有多项式拟和和非线性拟和。
close all;
n=input('请输入数据拟和的方式,1为多项式拟和,2为非线性拟和:');
t= [ 11.9270   15.7330  20.9000  60.0360 
   13.7500   13.5700  20.5990  98.2420
   13.3890   13.2690  20.9200  40.3280
   14.1800   13.5000  20.8700  88.7380
   12.7180   13.3990  20.9600  44.3140
   14.2700   13.2990  20.8800  96.3290
   11.9570   13.3890  22.1920  89.1880
   12.5480   13.5900  20.6290  81.3870];
t1=mean(t(1:8));t2=mean(t(9:16));t3=mean(t(17:24));t4=mean(t(25:32));
w0=[2 4 8 16];
p0=[t4 t3 t2 t1];
plot(w0,p0,'r*');hold on;
switch  n
    case 1
%%% 多项式拟合 %%%
x=[2 4 8 16];y=p0;
a0=[1 -1 9 90];
options=optimset('fminsearch');
options.TolX=0.005;
options.Display='off';
a=fminsearch(@logg3,a0,options,x,y);
i=1:0.1:16;
p1=-a(4)./(1+(a(4)/a(1)-1)*exp(-a(2).*i))+a(3);
plot(i,p1,'LineWidth',1.8),axis([1 16 0 200])
ylabel('\fontname{隶书}\fontsize{12}时间/秒'),xlabel('\fontname{隶书}\fontsize{12}子带数/个'),
title('\fontname{隶书}\fontsize{14}多项式数据拟和曲线');
text(5,150,'\fontname{隶书}\fontsize{12}拟合表达式:');
ch=['y=-',num2str(a(4)),'/[1+[',num2str(a(4)),'/',num2str(a(1)),'-1]*exp(',num2str(a(2)),'*x)]+',num2str(a(3))]
text(2,130,ch);
text(8,110,'\fontname{隶书}\fontsize{12}所需时间:');
tmax=num2str(max(p1));syms l;
tmin=num2str(double(limit(-13/(1+(13/a(1)-1)*exp(-a(2)*l))+a(3),inf)));
text(9,95,'\fontname{隶书}\fontsize{12}最大值为tmax:');text(13,95,tmax);
text(9,80,'\fontname{隶书}\fontsize{12}最小值为tmin:');text(13,79,tmin);
     case 2
%%% 非线性拟合 %%%
x=[2 4 8 16];y=p0;
a0=[-1 1 1];
options=optimset('fminsearch');
options.TolX=0.005;
options.Display='off';
a=fminsearch(@logg1,a0,options,x,y);
i=1:0.1:16;
p1=-a(1).*log(a(2).*i)./i+a(3);
% plot(i,p1)
plot(i,p1,'LineWidth',1.8)
ylabel('\fontname{隶书}\fontsize{12}时间/秒'),xlabel('\fontname{隶书}\fontsize{12}子带数/个'),
title('\fontname{隶书}\fontsize{14}多项式数据拟和曲线');
text(8,100,'\fontname{隶书}\fontsize{12}拟合表达式:');
ch=['y=-',num2str(a(1)),'*Log(',num2str(a(2)),'*x)/x',num2str(a(3))]
text(4,90,ch);
text(8,80,'\fontname{隶书}\fontsize{12}所需时间:');
t=zeros(1,2);
tmax=num2str(max(p1));syms l;
tmin=num2str(double(limit(-a(1).*log(a(2)*l)/l,inf)));
text(9,75,'\fontname{隶书}\fontsize{12}最大值为tmax:');text(13,75,tmax);
text(9,70,'\fontname{隶书}\fontsize{12}最小值为tmin:');text(13,68,tmin);
end



⌨️ 快捷键说明

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