エラーがそのkの最小値であるときに選択される可変パラメータkに関して、信号回復のグラフをプロットする必要があります。送信信号は で示されtransmitted
、受信信号received
はホワイト ガウス ノイズを通過し、関数 で量子化されますQuantizer
。歪みを計算しerror= (transmitted(channel,time) - received(channel,time))^2
ます。k パラメータのさまざまな値に対して送信信号と歪んだ信号をプロットしたいのですが、ループ内で行列に値を格納してプロットし、k のどの値が最小であるかを確認するにはどうすればよいですか。現在のコードでは、最後の反復値のみが保存されますが、後でプロットできるように、復元された信号が k ごとに 2 つのチャネルと共に保存されるファイルが必要でした。進め方を教えてください。
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