自适应滤波器Verilog程序仿真
clear
fs=1000;%采样频率1000hz
N=500;%采样点数
t=(0:1:N-1)/fs;
f=10;%正弦信号频率10hz
x=sin(2*pi*f*t)+randn(size(t));%被随机信号干扰的正弦信号
b = fir1(31,0.5); %由b = fir1(31,0.5); 产生32阶滤波器系数
n = 0.1*randn(1,500); % 通过以上滤波系统所加入的噪声
d = filter(b,1,x)+n; % 通过滤波器后的期望信号
delta = 0.005; % 设置自适应滤波器其中一个步长因子为0.005
ha = adaptfilt.lms(32,delta);%求出系统的滤波器系数
[y,e] = filter(ha,x,d);
delta0=0.001; %另一个步长因子为0.001作对比
ha=adaptfilt.lms(32,delta0);
[y0,e0]=filter(ha,x,d);
m=1:500;
figure(1);
plot(m,x,'g');
figure(2);
plot(m,e,'r',m,e0);
legend('delta=0.001','delta=0.005')
% subplot(2,1,1)
% plot(m,e0)
%
以上是基本的LMS算法
% 滤波型LMS算法滤波
M = 20; % 运行次数
N = 1000; % 信号的长度
n = 0:N-1;
s = sin(2*pi*n/10); % 初始信号
u = s + 0.36*randn(1,N); % 叠加噪声后的信号
% 信号叠加噪声波形图
figure(1);
plot(n,u);
title('信号叠加噪声波形图');
xlabel('n');ylabel('u');
y = zeros(1,N); % 初始化经过自适应滤波器后的信号为零向量
w = zeros(1,N); % 初始化自适应滤波器的权向量为零向量
e = zeros(N); % 初始化误差e(n)的为零向量
a = zeros(1,N); % 初始化前向滤波器的权向量为零向量
vare = zeros(N); % 初始化误差的平方e(n)^2的为零向量
estd = zeros(N); % 初始化均方误差E{e(n)^2}的为零向量
vare1 = ones(1,N); % 初始化误差的平方e(n)^2的为1向量
estd1 = ones(1,N); % 初始化均方误差E{e(n)^2}的为1向量
k = 10; % 自适应滤波器的阶数
e1 = zeros(1,N); % 初始化前向预测误差e1为零向量
e2 = zeros(1,N); % 初始化滤波向量e为零向量
y(1:k) = u(1:k);
mu0 = 0.0065; % 初始更新步长因子
% 初始化前向滤波器的权向量
a(1:11) = [ 0.1642 , 0.1341 , 0.0529,-0.0624 , -0.1586 ,-0.1932 , -0.1555 , -0.0599 , 0.0584, 0.1229 , 0.1106];
% 滤波型LMS算法滤波
for j = (k + 1):M
u = s + 0.36*randn(1,N); % 叠加噪声后的信号
for n=(k+2):N
mu = mu0/(1 + (n/100)); % 先搜索后收敛步长因子
e(j,n) = s(n) - w((n-1):(n+9)) * u(n:-1:(n-10))'; % 误差
e1(n) = u(n) + a((n-10):n)*u((n-1):-1:(n-11))'; % 前向预测误差
e2(n) = e(j,n) + a((n-10):n)*e(j,(n:-1:(n-10)))'; % 滤波
w(n:(n+10)) = w((n-1):(n+9)) + mu*e1(n:-1:(n-10))*e2(n); % 更新自适应滤波器的权向量
y(n) = w((n):(n+10)) * u((n):-1:(n-10))'; % 经过自适应滤波器后的信号
vare(j,n) =e(j,n)^2; % 误差的平方e(n)^2
estd(j,n) = vare(j,(1:n))*vare(j,(1:n))'/n; % 均方误差E{e(n)^2}
end
end
vare1 = (vare1*vare)/M; % 统计平均意义下e(n)^2
estd1 = (estd1*estd)/M; % 统计平均意义下学习曲线
% 滤波型LMS自适应滤波输出
figure(2);
plot(y);
title('mu = 0.0065时滤波型LMS自适应滤波输出');
xlabel('n');ylabel('y');
% 滤波型LMS自适应滤波器的e(n)^2的曲线
figure(3);
plot(vare1);
title('滤波型LMS自适应滤波器的e(n)^2的曲线 ');
xlabel('n');ylabel('e(n)^2');
% 滤波型LMS自适应滤波器的学习曲线图
figure(4);
plot(estd1);
title('滤波型LMS自适应滤波器的学习曲线图 ');
xlabel('n');ylabel('E[e(n)^2]');
希望可以帮到你
付费可以提供技术支持。
把有关信号都拉出来看看,比如y_out--> y -->p0,p1 --> x0,x1,f0,f1看看到那一步没有值了。定位出来应该比较简单vary中 filter什么意思
vary[英][ˈveəri][美][ˈveri]vi.变化; 不同,偏离; [生]变异;vt.使不同; 使多样化; [音乐]变奏;第三人称单数:varies过去分词:varied现在进行时:varying过去式:varied filter[英][ˈfɪltə(r)][美][ˈfɪltɚ]n.滤波器; 滤光...
计算机毕业论文包括哪些???必须有毕业设计吗???给高分
计算机毕业论文一般来说,应该包括论文文档,设计作品,以及作品的相关介绍吧,不一定要毕业设计作品,好像我们以前班,就有一部分用纯论文(对某个论题作研究)去作答辩的,而且还拿了优秀论文呢,呵!
variable-bandwidth filter的意思
variable-bandwidth filter 英 [ˈveəriəbl ˈbændwɪdθ ˈfɪltə(r)] 美 [ˈveriəbl ˈbændwɪdθ ˈfɪltər]【电】可变颜宽滤波器 ...
cadence软件
和网络设备。在进行算法设计、滤波器设计、c Code生成、软\/硬件结构联合设计和硬件综合的理想环境。它里面非常有意思的就是信号计算器。B、HDS (Hardware Design System)硬件系统设计系统它现在是SPW的集成组件之一。包括仿真、库和分析扩展部分。可以进行spw的定点分析行为级和rtl级的代码生成。C、Mutimedia多媒体 (M...
伍供赖诺: 1.编译通过2.新建波形文件3.添加、设置测试信号4、仿真
寻乌县13939051508: 怎样在quartus平台上进行verilog程序仿真????
伍供赖诺: 一般在quartus平台中用波形仿真.不过一般都用专业的第三方仿真工具modelsim. 仿真分功能仿真和时序仿真, 一 两种仿真都需要在编译源*.v程序后,新建一个与源程序同名的*.vwf文件, 二 在*.vwf文件中,由Insert Node or bus 进入,导入全...
寻乌县13939051508: Verilog仿真软件 - ?
伍供赖诺: 这种仿真工具有很多 Cadence的NC-Verilog和Verilog-XL、Mentor的Modelsim、SYNOPSYS的VCS和Altera QuartusII自带的仿真器都很常用 其中Modelsim在国内最普及 主要用于前仿 用盗版的话 modelsim和quartusii比较好找 搜索就可以了 注意看安装指导说明
寻乌县13939051508: 哪位大侠有用Verilog写的IIR滤波器的实例 - ?
伍供赖诺: FIR滤波器的最主要的特点是没有反馈回路,故不存在不稳定的问题;同时,可以在幅度特性是随意设置的同时,保证精确的线性相位.稳定和线性相位特性是FIR滤波器的突出优点.另外,它还有以下特点:设计方式是线性的;硬件容易实现;滤波器过渡过程
寻乌县13939051508: 自适应滤波器的算法如何用MATLAB去编 - ?
伍供赖诺: 帮你在百度文库里找到这个算法,自适应噪声抵消LMS算法Matlab仿真,希望对你有帮助.如有问题,可以再讨论解决.
寻乌县13939051508: 如何用origin软件自适应滤波 - ?
伍供赖诺: 根据环境的改变,使用自适应算法来改变滤波器的参数和结构.这样的滤波器就称之为自适应滤波器. 一般情况下,不改变自适应滤波器的结构.
寻乌县13939051508: verilog HDL的仿真程序怎样用quartus ii编译? - ?
伍供赖诺: quartus 不能编译仿真程序,仿真程序是不能被综合的,quarus只能编译能综合的程序.仿真程序不能放在quartus工程中 只有在quartus中建立一个testbeach,在当中指定仿真程序,使用仿真工具去编译仿真它.
寻乌县13939051508: Verilog HDL要用什么软件仿真? - ?
伍供赖诺: 比较多的有MODELSIM.如果是IC设计的话,用NC-VERILOG更好,其时序仿真的效率更高.
寻乌县13939051508: 在modelsim6.0上使用verilog实现gabor滤波器程序 - ?
伍供赖诺: 很难...部分c代码 Gabor变换属于加窗傅立叶变换,Gabor函数可以在频域不同尺度、不同方向上提取相关的特征.另外Gabor函数与人眼的生物作用相仿,所以经常用作纹理识别上,并取得了较好的效果.在二维Gabor函数中:v的取值决定了...
寻乌县13939051508: Verilog HDL 需要用什么软件仿真呢??
伍供赖诺: 1. ModelSim是HDL语言专用的仿真软件, 可以用 2. Altera Quartus II, 或者Xilinx ISE带有仿真仿真功能, 还不止一种呢. 初学用这些功能即可. 3. Quartus, ISE 结合ModelSim是比较流行的做法. 原因是Q/I是IDE,针对器件, 而ModelSim在仿真方面近乎业界标准, 强强联手自然精准便捷 4. 其实其它还有很多仿真工具的, Synplify等等, 针对各自领域.尤其是芯片设计领域,各家都有杰作.