关于MATLAB程序的解释说明

关于MATLAB程序的解释说明,第1张

function dy=vdp1000(t,y) % 建立函数,函数名字是vdp,t,y表示输入值,dy是输出值

dy=zeros(2,1); %建立空矩阵 21的0矩阵

dy(1)=y(2); %第一个微分方程

dy(2)=1000(1-y(1)^2)y(2)-y(1);%第二个微分方程

建立m文件的作用就是在[T,Y]=ode15s('vdp1000',[0 3000],[2 0]); 调用这个vdpm函数。

如不明白请留言

大概回答一下,整个程序的基本结构

1,模拟噪声信号。在程序里 xr 为初始信号,b 为噪声,x 即为叠加噪声的信号 (这个程序里只有加性噪声,其他情况下有时还可能有乘性噪声,可随机应变),x也即为之后滤波的输入信号 (维度均为200)这是第一个for循环做的事情,之后再初始化各个矩阵、向量就不用多说了。

2,滤波。滤波的基本思想都是将需要处理的信号乘上一个滤波矩阵,之后得到滤波后的信号,其目的是尽可能使滤波后的信号初始信号(即xr)接近,即达到了除噪还原信号的目的。

h 为滤波矩阵,y 为滤波后的信号,e为误差。这是第二个 for 循环中所作的滤波部分

自适应滤波就是可以根据滤波结果将误差返回到输入端,对滤波器进行校正,以达到更好的滤波效果,减小误差。这是第二个 for 循环中的另一部分,校正滤波器。

Cxx为误差相关矩阵,g 是增益矢量。

g(i,:)=(Cxxx(i-n+1:i)'/(1+x(i-n+1:i)Cxxx(i-n+1:i)'))';

Cxx=Cxx-g(i,:)'x(i-n+1:i)Cxx;

h(i,:)=h(i-1,:)+e(1,i)g(i,:);

这三个语句是在对滤波器进行迭代调整,具体原理就看RLS算法吧

3,最后剩的就是画图,画出初始信号figure2、噪声信号figure1、滤波信号、误差figure3、滤波矢量figure4,之后再画伯德图figure5以及对数图figure6,画图的那些命令就不细说了在help里都可以查到的

希望可以帮到你

clc,clear %这个不解释

for i=1:100 %i为1到100的范围内,每运行一次加1

R=rand(1,12); %R为一个12个元素的行向量,每个元素为随机值,在0~1之间

X(i)=sum(R)-6; %X向量的每个元素等于R的12个元素的和6的差,X为一个有12个数的行向量

end %循环结束

X=X'; %把X向量倒置,变成列向量

m=mean(X) %求X中元素的均值

v=var(X) %求X元素的样本方差

subplot(1,2,1),cdfplot(X)%绘制经验累计分布函数图,显示了一维向量X的累计概率分布F(x)的图形

subplot(1,2,2),histfit(X) % 正态曲线的直方图

h=kstest(X, [X normcdf(X, 0,1)])% %指定累积分布函数为cdf的测试,是否是以X为中心的标准正太分布,测试水平为5%

每句加注释没有必要,应该是你说出哪里看不懂,以便有针对性地讲解。

简单地加一些说明,有问题请追问吧:

% 在指定位置创建窗口,不要工具条

h0=figure('toolbar','none',

    'position',[200 150 450 250],

    'name','实例08');

% x是横轴数据,余下的是四组纵轴数据

x=91:95;

profits1=[88 75 84 93 77];

profits2=[51 64 54 56 68];

profits3=[42 54 34 25 24];

profits4=[26 38 18 15 4];

% 依次画四个面图,填充色为自定义颜色,边缘色为预定义颜色常量

% 绘图时使用hold避免后面的绘图把前面的冲掉(其实用一个就够了)

area(x,profits1,'facecolor',[05 09 06],

    'edgecolor','b',

    'linewidth',3)

hold on

area(x,profits2,'facecolor',[09 085 07],

    'edgecolor','y',

    'linewidth',3)

hold on

area(x,profits3,'facecolor',[03 06 07],

    'edgecolor','r',

    'linewidth',3)

hold on

area(x,profits4,'facecolor',[06 05 09],

    'edgecolor','m',

    'linewidth',3)

% 绘图完成后,取消保持状态

hold off

% 前一句设置横坐标格线位置;后一句无必要

set(gca,'xtick',[91:95])

set(gca,'layer','top')

% 使用gtext让用户通过鼠标点击确定显示文字说明的位置

gtext('\leftarrow第一季度销量')

gtext('\leftarrow第二季度销量')

gtext('\leftarrow第三季度销量')

gtext('\leftarrow第四季度销量')

% 横纵座标标记

xlabel('年','fontsize',16);

ylabel('销售量','fontsize',16);

%频域中上抽样的效果

%使用fir2构造一个带限输入序列

clf %清除当前图形窗口图形。

freq=[0 045 05 1] %定义一个14的矩阵freq。

mag=[0 1 0 0] %定义一个14的矩阵mag。

x=fir2(99,freq,mag) %设置滤波器。

%fir2(n,f,m)函数fir2用来设计多通带任意响应FIR滤波器,该滤波器的幅频特性由向量对f和m确定,f为归一化频率向量,m为对应频率点上的幅度。当设计的滤波器在频率为π的幅度响应不是0时,滤波器的阶数n为偶数;

%上面是fir2的简介,来自百度百科。

%求取并画出输入谱

[Xz,w]=freqz(x,1,512,'whole') %求离散系统频响特性。

%关于freqz,可以看>

以上就是关于关于MATLAB程序的解释说明全部的内容,包括:关于MATLAB程序的解释说明、询问matlab一个程序的各个语句什么意思,求讲解。急……、求解释一段matlab代码含义,详细一些的,把每句都解释下最好!谢谢啦!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10119246.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存