永发信息网

matlab程序语句功能求解,下面这短程序什么意思clc;clear;ref =wavread('i

答案:2  悬赏:60  手机版
解决时间 2021-03-03 14:55
  • 提问者网友:遁入空寂
  • 2021-03-03 08:02
matlab程序语句功能求解,下面这短程序什么意思clc;clear;ref =wavread('i
最佳答案
  • 五星知识达人网友:孤老序
  • 2021-03-03 08:16
firLen = 160;定义了滤波器的长度mu = 0.8;定义了学习因子的大小,也是自适应算法的迭代步长a = zeros(1,firLen);这句产生了一个1行160列的零向量.clc;clear;% ref =wavread('in.wav'); % Load near endref = wgn(1,1024,0).'; % 我加了这句,因为我没有你的音频文件,不妨碍功能验证和你对程序原理的理解apm = 0.1; %噪声幅度firLen = 160; % 定义了滤波器的长度mu = 0.8; % 学习因子a = zeros(1,firLen); dataLen = length(ref); % 获取了ref信号向量的长度eout = zeros(1,dataLen); % 产生1行dataLen列的行向量bbeout = zeros(1,dataLen); % 同上firIn = zeros(1,firLen); % 同afirIntwo = zeros(1,firLen); % 同上noise = apm*rand(1,dataLen); % 产生随机噪声,用来干扰语音信号,实际上我这里也用噪声作为语音信号near = ref'+noise; % 产生含加性噪声的语音信号,表示语音信号被噪声污染了%%%自适应滤波学习bbe模型for i=1:dataLen for j = firLen-1:-1:1 firIn(j+1) = firIn(j); end % 这个for循环让firIn向量的后一个值等于前一个值 firIn(1) = noise(i); % 第一个值等于噪声 firOut = a*firIn'; %fir滤波 这一步实现的是横向滤波器的操作 e = near(i)-firOut; %求误差信号 a = a+e*mu*firIn; %lms 系数更新 eout(i) = e;end% wavwrite(eout,16000,'out.wav');figure
全部回答
  • 1楼网友:北方的南先生
  • 2021-03-03 08:24
你的回答很对
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯