9. 变换域算法
输入信号
串并 转换
器
块FIR 滤波器
并串 转换 器
区分 机制
滤波输出信号
完成块相关 和权值更新
的机制
串并 转换 器
误差信号
期望 响应
L1
wˆ k 1 wˆ k u kL i e kL i
i0
中国科学院声学研究所 Institute of Acoustics, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
M滤波器阶数长度,L为块的长度
y(kL i) wˆ T (k)u(kL i)
用A写出? y k ykL, y kL 1,L , y kL L 1T
中国科学院声学研究所 Institute of Acoustics, CAS
滤波器输出信号
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
L1
块自适应算法 wˆ k 1 wˆ k u kL i e kL i i0
时刻n与块编号k的关系: n kL i i 0,1,L , L 1
第k块的输入数据的矩阵表达式为:
托普利兹矩阵
A(k) u(kL),u(kL 1),L ,u(kL L 1)
u(n) u(n),u(n 1),L ,u(n M 1)T
块自适应算法总结
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
n kL i i 0,1,L , L 1 每来L个数据进行一次操作
A(k) u(kL),u(kL 1),L ,u(kL L 1)
u(n) u(n),u(n 1),L ,u(n M 1)T
频域算法
len=8; vector_u=2*rand(2*len,1)-1; w=[-0.1 0.2 0.7 0.4 -0.2 -0.1 0.12 0.25].'; for j=1:len
A(:,j)=vector_u(j+len:-1:j+1); end y=A'*w;
w_k=fft([w;zeros(len,1)]); u_k=fft(vector_u); y_k=w_k.*u_k; real(ifft(y_k))
end
中国科学院声学研究所 Institute of Acoustics, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
中国科学院声学研究所 Institute of Acoustics, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
L=M=8实现BLMS算法,其他仿真和LMS算法一致。
for n=1:dotnumber vector_u=[vector_u(2:end);u(n)]; vector_d=[vector_d(2:end);d(n)]; if(mod(n,len)==len-1) for j=1:len A(:,j)=vector_u(j+len:-1:j+1); end vector_y=A'*w; vector_e=vector_d-vector_y; phi=A*vector_e; w=w+mu*phi; end w_error(n)=norm(w-wo)^2;
块自适应算法
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
误差信号:e kL i d kL i y kL i
ek ekL,ekL 1,L ,ekL L 1T
dk d kL, d kL 1,L , d kL L 1T
频域算法
Wˆ
k
FFT
wˆ
k
0
Uk FFT u kM M ,...,u kM 1,u kM ,...,u kM M 1
yT k y kM , y kM 1,..., y kM M 1 IFFT U k e Wˆ k 的最后M 个元素
分别采用:y k AT wˆ (k) 和快速傅立叶变换计算y(k)
中国科学院噪声与振动重点实验室 Key Laboratory of Noise and Vibration Research, CAS
频域与子带算法
吴鸣
中国科学院声学研究所
中国科学院噪声与振动重点实验室
中国科学院声学研究所 Institute of Acoustics, CAS
2018.3.5
中国科学院声学研究所 Institute of Acoustics, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
算法总结
Wˆ
k
1
Wˆ
k
FFT
Φk
0
Φk IFFT conjUk e Ek 的最前M个元素
E
k
FFT
e
0
k
ek dk yk
yT k y kM , y kM 1,..., y kM M 1 IFFT U k e Wˆ k 的最后M 个元素
len=8; vector_u=2*rand(2*len,1)-1; vector_e=2*rand(len,1)-1;
for j=1:len A(:,j)=vector_u(j+len:-1:j+1);
end
e_k=fft([zeros(len,1);vector_e]); u_k=fft(vector_u); phi_k=e_k.*conj(u_k); (real(ifft(phi_k))).' (A*vector_e).'
中国科学院声学研究所 Institute of Acoustics, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
频域计算
Φk Akek
E
k
FFT
e
0
k
Φk IFFT conjUk e Ek 的最前M个元素
分别采用: Ak ek 和快速傅立叶变换计算
mu=0.001;
end
w=zeros(len,1);
w_error=zeros(dotnumber,1);
e=zeros(dotnumber,1);
vector_u=zeros(2*len,1);
vector_d=zeros(len,1);
A=zeros(len,len);
中国科学院声学研究所 Institute of Acoustics, CAS
dk d kL, d kL 1,L , d kL L 1T
y k AT wˆ (k)
ek dk yk
wˆ k 1 wˆ k Φk
Φk Akek
中国科学院声学研究所 Institute of Acoustics, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
中国科学院声学研究所 Institute of Acoustics, CAS
W用频域更新
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
wˆ k 1 wˆ k Φk
Wˆ
k
FFT
wˆ k
0
Wˆ
k
1
Wˆ
k
FFT
Φk
0
中国科学院声学研究所 Institute of Acoustics, CAS
0.1 0.12 -0.25].';
vector_d=[vector_d(2:end);d(
wo=h;
n)];
d=filter(h,1,u); d(dotnumber+1:end)=[];
if(mod(n,len)==len-1) 计算A,y,e,w
d=d+noise;
end
len=8;
w_error(n)=noLeabharlann m(w-wo)^2;问题:
LMS算法的计算量?
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
中国科学院声学研究所 Institute of Acoustics, CAS
块自适应算法
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
vector_u=2*rand(16,1)-1; w=[-0.1 0.2 0.7 0.4 -0.2 -0.1 0.12 -0.25].';
中国科学院声学研究所 Institute of Acoustics, CAS
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
vector_u=2*rand(16,1)-1; w=[-0.1 0.2 0.7 0.4 -0.2 -0.1 0.12 -0.25].';
中国科学院声学研究所 Institute of Acoustics, CAS
频域计算
中国科学院噪声与振动重点实验室 Key Lab. of Noise and Vib. Research, CAS
中国科学院声学研究所 Institute of Acoustics, CAS