自适应滤波器Verilog程序仿真

作者&投稿:狂解 (若有异议请与网页底部的电邮联系)
急求:自适应联邦滤波算法的matlab仿真程序代码~

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...

寻乌县13939051508: 在quartusII中,输入了verilog程序后,怎么获得仿真图,具体步骤是什么? -
伍供赖诺: 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等等, 针对各自领域.尤其是芯片设计领域,各家都有杰作.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网