研发埠

标题: LMS、LMS/DFT、LMS/DCT、卡尔曼滤波、AR谱分析和小波变换程序 [打印本页]

作者: 曹宇飞    时间: 2015-1-9 16:45
标题: LMS、LMS/DFT、LMS/DCT、卡尔曼滤波、AR谱分析和小波变换程序
通信方向的研究生必修课,现代数字信号处理中,处理信号几种常用的方法。不仅能加深对方法的理解,还能为初学MATLAB的同学提供上手的绝佳程序,欢迎大家积极讨论和下载!大牛们也可以补充更为科学的源程序!

程序较多,就只在下面贴上一部分代码,其他代码和源程序在附件中,供大家下载!ps:效果图在附近文档中有,这里po不上来,请原谅!



1、运用LMS基本算法以及LMS/DFT和LMS/DCT对含有噪声的信号进行处理,期望提取出有用信号。

LMS基本算法  

clear all;

M=64;N=8*M;mu=0.001;  

W=zeros(1,M);  

signal=sin(2*pi*0.01*[0:N-1]);  

noise=randn(1,N);  

x=signal+noise;  

d=signal;

for k=1:length(x)-M+1;

y(k)=sum(W.*fliplr(x(k:M+k-1)));

e(k)=d(M+k-1)-y(k);  

W=W+2*mu*e(k)*fliplr(x(k:M+k-1));

end

k=0:N-1;

subplot(121);plot(k,x);grid;

k=M-1:N-1;

subplot(122);plot(k,y);grid;






2、LMS/DFT算法

clear all;

M=64;N=8*M;mu=0.001;  

W=zeros(1,M);

signal=sin(2*pi*0.01*[0:N-1]);  

noise=randn(1,N);  

x=signal+noise;  

d=signal;  

X=zeros(1,M)=zeros(1,M);  

u=zeros(1,M);  

delta=0.01;gamma=0.9;  

for k=1:length(x)-M;

  for m=1:M

X(m)=(exp(-i*2*pi*m/M)*X(m)+x(k+M)-x(k))/M^0.5;

P(m)=gamma*P(m)+(1-gamma)*X(m)*conj(X(m));

u(m)=X(m)/(P(m)+delta)^0.5;

  end

y(k)=sum(W.*fliplr(u));

e(k)=d(M+k)-y(k);  

W=W+2*mu*e(k)*fliplr(conj(u));

end

k=0:N-1;

subplot(121);plot(k,x);grid;

k=M:N-1;

subplot(122);plot(k,y);grid;






报告.doc

!sourceimagesize! 0 Bytes, 下载次数: 6

卡尔曼滤波、AR谱分析和小波变换程序


自己编的.rar

!sourceimagesize! 0 Bytes, 下载次数: 5

卡尔曼滤波、AR谱分析和小波变换程序



作者: 李金梁    时间: 2015-1-14 13:29
正在学习现代数字信号处理,不错!下个看看!
作者: 上一站,守护    时间: 2015-1-14 16:08
很好用,不错
作者: 西瓜大de籽    时间: 2015-12-12 14:42
谢谢楼主




欢迎光临 研发埠 (http://bbs.yanfabu.com/) Powered by Discuz! X3.2