leach-c协议matlab仿真代码急求,急

leach-c协议matlab仿真代码急求,急,第1张

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')

LEACH在运行过程中不断地循环执行簇的重构。算法 *** 作使用了“轮”的概念,每一轮由初始化和稳定的工作两个阶段组成。在初始化阶段,每个节点产生一个0~1之间的随机数,如果某个节点产生的随机数小于所设的阈值T(n),则该节点发布自己是簇头的消息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11583302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存