我需要绘制关于变化参数 k 的信号恢复图,当该 k 的误差最小时将选择该参数。发射信号由 表示,transmitted
接收信号received
通过高斯白噪声并由函数 量化Quantizer
。我计算失真error= (transmitted(channel,time) - received(channel,time))^2
。我想为不同的 k 参数值绘制传输信号与失真信号,但在循环内部如何将值存储在矩阵中,以便我可以绘制然后查看哪个 k 值的误差最小。在目前的代码中,只存储最后一次迭代值,而我想要一个文件,其中恢复的信号与每个 k 的两个通道一起存储,以便我以后可以绘制。请帮助如何进行。
k=10;trials=5;
data=dlmread('b1.txt');
transmitted=data';
data=dlmread('b2.txt');
received=data';
[channels time] = size(transmitted) % channels=2 time = 1024
tclass=zeros(k,time);
c=cell(k);
for iter=1:k
[prot,class]=Quantizer(received',iter,trials);
tclass(noprot,:)=class;
c{noprot}=prot;
recovered = prot(class',:);
error=calculate_distortion(transmitted,recovered);
plot(transmitted,'r');hold on;
plot(recovered,'g');
end
function error = calculate_distortion(transmitted,received)
channels=2;time=1024;
for s=1:channels
for t=1:time
error= transmitted(channel,time) - received(channel,time))^2
end
end