请高手指点下这MATLAB程序的内容并帮忙注释下

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:46:52
请高手指点下这MATLAB程序的内容并帮忙注释下
请高手指点下这MATLAB程序讲什么

主函数
复制内容到剪贴板代码:
clear all;
close all;
t = 0:0.01:10;
vm1 = -60:1:0; %输入的正弦信号幅度不同
vm = 10.^(vm1/20);
figure(1)
for k = 1:length(vm)
for m = 1:2
x = vm(k)*sin(2*pi*t+2*pi*rand(1));
v = 1;
xx = x/v;%normalize
sxx = floor(xx*4096);
y = pcm_encode(sxx);
yy = pcm_decode(y,v);

nq(m) = sum((x-yy).*(x-yy))/length(x);
sq(m) = mean(yy.^2);
snr(m) = (sq(m)/nq(m));

drawnow
subplot(211)
plot(t,x);
title('sample sequence');
subplot(212)
plot(t,yy)
title('pcm decode sequence');
end
snrq(k)=10*log10(mean(snr));
end

figure(2)
plot(vm1,snrq);
axis([-60 0 0 60]);
grid;
子函数pcm_decode
复制内容到剪贴板代码:
function[

length:数组长度(即行数或列数中的较大值)

reshape把指定的矩阵改变形状,但是元素个数不变

out是矩阵吧,那么out(i,1)就是其中的某一元素

abs()取某数的绝对值

floor:朝负无穷方向舍入

回答不是很完整,因为我也对MATLAB也只是懂个皮毛,用的时候查资料

告诉一个方法吧,那个函数不会用了,去百度搜索
比如length函数,搜索 matlab+length 就可以找到相关资料