📄 parta.m
字号:
% Lattice filters in finite precision
clear all
close all
N = 200;
SNR = 30;
var_v = 10^(-SNR/10);
M = 10; % filter oder
channel = randn(M,1);
channel = channel/norm(channel);
learn1 = zeros(1,N);
learn2 = zeros(1,N);
learn3 = zeros(1,N);
learn4 = zeros(1,N);
learn5 = zeros(1,N);
learn6 = zeros(1,N);
L = 50;
eta = 1e6; % usually large
lambda = 0.999;
B = 10 % number of bits
for j=1:L
j
input = randn(N,1);
d = filter(channel,1,input) + sqrt(var_v)*randn(N,1);
disp('a posteriori lattice')
e1 = lat1q(input,d,lambda,eta,M,B); % a posteriori lattice
disp('a priori lattice')
e2 = lat2q(input,d,lambda,eta,M,B); % a priori lattice
disp('a priori lattice with error feedback')
e3 = lat3q(input,d,lambda,eta,M,B); % a priori with error feedback
disp('a posteriori lattice with error feedback')
e4 = lat4q(input,d,lambda,eta,M,B); % a posteriori with error feedback
disp('normalized lattice')
e5 = lat5q(input,d,lambda,eta,M,B); % normalized lattice
disp('array lattice')
e6 = lat6q(input,d,lambda,eta,M,B); % QR-based array lattice
learn1 = learn1 + abs(e1).^2;
learn2 = learn2 + abs(e2).^2;
learn3 = learn3 + abs(e3).^2;
learn4 = learn4 + abs(e4).^2;
learn5 = learn5 + abs(e5).^2;
learn6 = learn6 + abs(e6).^2;
end
learn1= 10*log10(learn1/L);
learn2= 10*log10(learn2/L);
learn3= 10*log10(learn3/L);
learn4= 10*log10(learn4/L);
learn5= 10*log10(learn5/L);
learn6= 10*log10(learn6/L);
figure
subplot(321)
plot(1:N,learn1,'b');
ylabel('dB')
title('A posteriori lattice');
axis tight
grid
subplot(322)
plot(1:N,learn2,'b');
ylabel('dB')
title('A priori lattice');
axis tight
grid
subplot(323)
plot(1:N,learn3,'b');
ylabel('dB')
title('A priori w/ error feedback');
axis tight
grid
subplot(324)
plot(1:N,learn4,'b');
ylabel('dB')
title('A posteriori w/ error feedback');
axis tight
grid
subplot(325)
plot(1:N,learn5,'b');
ylabel('dB')
title('Normalized lattice');
axis tight
grid
subplot(326)
plot(1:N,learn6,'b');
ylabel('dB')
title('Array lattice');
axis tight
grid
%figure
%plot(1:N,learn2,'b',1:N,learn3,'m',1:N,learn5,'g',1:N,learn6,'y')
%xlabel('i')
%ylabel('dB')
%legend('a-priori','a-priori error feedbk','normalized','array');
%axis tight
%grid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -