【数字信号去噪】基于matlab奇异值分解(SVD)数字信号降噪【含Matlab源码 1020期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源: 【数字信号去噪】基于matlab奇异值分解(SVD)数字信号降噪【含Matlab源码 1020期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、简介
基于SVD(奇异值分解)的去噪声技术属于子空间算法的一种。简单的来说我们希望将带噪信号向量空间分解为分别由纯净信号主导和噪声信号主导的两个子空间,然后通过简单地去除落在“噪声空间”中的带噪信号向量分量来估计纯净信号。要将带噪信号向量空间分解为“信号子空间”和“噪声子空间”,可以采用线性代数中的正交矩阵分解技术,特别是奇异值分解(SVD)和特征值分解(EVD)。
三、部分源代码
clear;% 调用MATLAB中含有噪声的数据文件 leleccum;
load leleccum; index=1:3000;
x=leleccum(index);
N=8;
slength = length(x);
M=slength-100;
subplot(221);plot(x(1:M));
title('原始信号');% 形成数据矩阵;
Signal=zeros(N,M);
for i=1:NSignal(i,:)=x(i:M+i-1);
end% 对数据矩阵作特征值分解;
[U, S, V]=svd(Signal);
d=diag(S(1:N,1:N));subplot(222);stem(d);
title('特征值');
for i=1:Nif d(i)<mean(d)d(i)=0;end
end
stemp=S;
stemp(1:8,1:8)=diag(d);
Sf=U*stemp*V';
subplot(223);plot(Sf(1,:));
title('滤波之后的信号;阈值为特征值的平均值');
d=diag(S(1:N,1:N));
for i=1:Nif d(i)<=median(d)d(i)=0;end
end
% 声波信号降噪处理function [TempData,Sample] =ReadData(FileName)%数据读取,数据格式为特检院检测仪存储格式
% FileName='SR10-100021-SPL-5-4.dat';
fid=fopen(FileName,'rb');
%读取文件头% 采样时间结构Sample_Time = struct('year',{2009},'month',{1}, 'day',{22},'hour',{12},'minute',{12},'second',{12}) ;%定义采样时间格式
SensorAddr=fread(fid,1,'int32');%传感器地址
fseek(fid,4,'bof');%数据文件头长度为44字节
Sample_Time.year=fread(fid,1,'int32');
Sample_Time.month=fread(fid,1,'int32');
Sample_Time.day=fread(fid,1,'int32');
Sample_Time.hour=fread(fid,1,'int32');
Sample_Time.minute=fread(fid,1,'int32');
Sample_Time.second=fread(fid,1,'int32');
GroupOrder=fread(fid,1,'int8'); %读取的批次,0xff表示实时采样数据
startPack=fread(fid,1,'int8'); %起始包号,0~255
totalPack=fread(fid,1,'int8'); %总包数,0~255,0表示256包
location=fread(fid,1,'int8'); %/GPS定位信息%设备配置信息结构 Device_Config
Device_Config.group=fread(fid,1,'int8'); %批号
Device_Config.year=fread(fid,1,'int8');%年
Device_Config.month=fread(fid,1,'int8');%月
Device_Config.day=fread(fid,1,'int8');%日
Device_Config.hour=fread(fid,1,'int8');%时
Device_Config.minute=fread(fid,1,'int8');%分
Device_Config.second=fread(fid,1,'int8');%秒
Device_Config.repeat=fread(fid,1,'int8');%次数
Device_Config.interval=fread(fid,1,'int8');%间隔
Device_Config.sampleLen=fread(fid,1,'int8');%采样长度
Device_Config.speed=fread(fid,1,'int8');%采样速度
Device_Config.gain=fread(fid,1,'int8');%增益fseek(fid,44,'bof');%数据文件头长度为44字节
Count=261120;%数据长度
[TempData,Count]=fread(fid,'int16');TempData=TempData*2.5/2048;%得到数据长度
switch Device_Config.sampleLencase {8}Sample.Len='512KB';case {9}Sample.Len='512KB';case {10}Sample.Len='512B';case {11}Sample.Len='1024B';
end% //采样速度switch Device_Config.speedcase {1} Sample.Frequency = '500k';case {2} Sample.Frequency = '250k';case {3} Sample.Frequency = '125k';case {4} Sample.Frequency = '62.5k';end% //增益switch Device_Config.gaincase {0} Sample.Gain = 1;case {1} Sample.Gain = 4;case {2} Sample.Gain = 16;case {3} Sample.Gain = 64;case {4} Sample.Gain = 10;case {5} Sample.Gain = 40;case {6} Sample.Gain = 160;case {7} Sample.Gain = 640;case {8} Sample.Gain = 100;case {9} Sample.Gain = 400;case {10} Sample.Gain = 1600;case {11} Sample.Gain = 6400;end
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
【数字信号去噪】基于matlab奇异值分解(SVD)数字信号降噪【含Matlab源码 1020期】相关推荐
- 【Matlab语音处理】汉宁窗FIR陷波滤波器语音信号加噪去噪【含GUI源码 1711期】
一.代码运行视频(哔哩哔哩) [Matlab语音处理]汉宁窗FIR陷波滤波器语音信号加噪去噪[含GUI源码 1711期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...
- 【Matlab人脸识别】KL变换人脸识别【含GUI源码 859期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]KL变换人脸识别[含GUI源码 859期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
- 【Matlab语音分析】语音信号分析【含GUI源码 1718期】
一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...
- 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...
- 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...
- 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
- 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】
一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...
最新文章
- 扔掉Swagger,试试这款功能强大,零注解侵入的API接口文档生成工具!
- IOS错误总结:Unknown type name 'CGRect';did you mean 'Rect'
- leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
- java中取得上下文路径的方法
- NLP jieba分词源码解析
- cmd命令重定向到剪切板
- jmeterhttp代理服务器_Jmeter使用HTTP代理服务器录制
- 利用python转换图片格式
- ContentProvider和Uri详解
- spring教程笔记6
- Steam中如何下载锁区的游戏?一直出现 正在更新票证怎么办?
- 计算机四个发展应用范围,计算机的四个发展阶段
- linux安装有道词典步骤,Ubuntu 16.04安装有道词典的方法
- linux 目录为空 删不掉,空文件夹删不掉怎么办 空文件夹删不掉解决方法
- java中的g1_G1GC 概念与性能调优
- 90%的人都浪费了阳台?这6种装修方案建议照搬~
- 现代控制原理专业词汇中英文对照
- 【TCP】TCP通信
- 【dart】private 小坑
- BIOS界面部分信息
热门文章
- 序列化(写对象)与反序列化(读对象)
- 捉取映客直播数据 20171121可用
- Interview Experience in Singapore(Part Ⅲ)
- delphi 如何解决假死
- ASP.NET生成Excel并下载
- 深度学习样本标完后图片增强标签内容不变
- Atitit hadoop使用总结 目录 1.1. 下载300m ,解压后800M	1 1.2. 二:需要的jar包	1 2. Demo code	2 2.1. WCMapper	2 2.2. WC
- Atiitt 提升复用性之道 项目成本之道 Atitit 代码复用的理解attilax总结 1. 复用分类	1 1.1. 类库侧重代码重用,框架侧重设计重用	2 2. 文档与索引体系	2 3
- Atitit 项目源码的架构,框架,配置与环境说明模板 规范 标准化
- atitit.自适应设计悬浮图片的大小and 位置