资源简介
基于滑动窗口可以实现对一维曲线平滑及降噪,根据有用信号的频率,选取合适的窗口宽度。
代码片段和文件信息
function avin=smooth(indist) %in为输入的二维矩阵,dist为窗口的大小
if dist == 1 %判定窗口的大小是否为1,如果为1则返回
avin=in;
return
end
[nm]=size(in); % 将输入矩阵0轴和1轴输入给n,m
if n == 1 % 如果n=1,则将矩阵转置
in=in‘;
[nm]=deal(mn); % 交换nm的值
flip=1;
else
flip=0;
end
in=full(in);
% 创建滤波器
idist=2*fix((dist-1)/2)+1; %考虑窗口长度是奇数偶数的两种情况,因为窗口的宽度总是为奇数,如果输入的是偶数程序会将偶数转换成奇数
xdist=dist-idist;
if xdist == 0 %如果滤波器窗口数目是奇数的情况执行以下操作
weights=ones(dist1)/dist; %创建一个平均滤波器,滤波器窗口的宽度为输入的窗口输入
else % 如果滤波器窗口数目是偶数的情况执行以下操作
weights=ones(idist+21); %将滤波器的窗口数目转化成dist+1成为奇数,并使每一个元素等于1
weights([1end])=0.5*xdist; % 使滤波器首尾元素等于0.5
weights=weights/dist; %使滤波器归一化处理
end
if length(weights) > n %判定滤波器窗口数目是否大于输入数列的长度,一般情况下窗口数目都是远远小于数列的长度,所以该判定模块一般都是跳过
avin=mean(in);
avin=avin(ones(n1):);
return
end
append=(length(weights)-1)/2; %append等于滤波器的一半大小
avin=zeros(nm); % 构建一个n*m的0矩阵
for ii=1:size(in2) % 求取输入阵列的列数,对每一列采取循环的方式分别进行滤波
temp1=conv(in(:ii)weights); % 把滤波器和输入数列进行卷积运算,结果是一个长度为(输入数列长度+2*append)的数列
avin(:ii)=temp1(append+1:end-append); % 截取temp1数列从append+1到end-append中间部分的数列,此时长度应该等于输入数列的长度
end
% 对两端边界值进行修正
for ii=1:append
%fact=1/sum(weights(1:end-append-1+ii));
%avin(ii:)=avin(ii:)*fact;
%avin(end-ii+1:)=avin(end-ii+1:)*fact;
fact=sum(weights(1:append+1-ii)); %计算修订因子fact,边界不同位置上的数采用不同的修正因子
avin(ii:)=avin(ii:)+in(ii:)*fact; %修订输入数列的前边界的值
avin(end-ii+1:)=avin(end-ii+1:)+in(end-ii+1:)*fact; %修订输入数列后边界的值
end
if flip %如果输入的n等于1,则将结果转置
avin=avin‘;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2129 2012-11-21 14:54 smooth.m
----------- --------- ---------- ----- ----
2129 1
- 上一篇:仿真开关磁阻电机
- 下一篇:手写体数字识别的训练数据库
相关资源
- 数字图像处理作业图像加椒盐噪声加
- meanshift图像平滑matlab实现
- 小波工具箱进行脑电降噪实验数据及
- 自用程序:各种光谱数据预处理代码
- MATLAB TDM Example.zip《用Matlab处理TDMS数据
- 小波包降噪的程序,并有注解
- 基于小波变换的信号降噪研究及其M
- 二维码识别算法
- 小波变换降噪处理及其Matlab实现
- MATLAB二维码识别
- 小波降噪程序
- 卡尔曼滤波算法与卡尔曼平滑算法的
- 光谱读入、降噪和去背景一体化matl
- 小波阈值图像去噪,可以matlab运行!
- 卡尔曼平滑
- 自适应平滑滤波matlab
- 数字图像报告-图像空间域平滑的几种
- 高斯混合PHD滤波器平滑
- 空间平滑MUSIC算法估计相干源DOA
- 伪+平滑wigner-ville的程序
- 基于小波阈值对语音信号降噪处理M
- 小波变换降噪处理
- matlab中滑动窗口实现
- Matlab三次指数平滑算法
-
FXLMS主动降噪simuli
nk模型.rar - 基于小波变换的图像去噪的matlab程序
- 傅里叶变换降噪
- GPS载波相位平滑伪距
- 静态小波变换matlab程序
- matlab中的S-G平滑算法
评论
共有 条评论