matlab學習之降噪平滑算法


平滑降噪測試,代碼如下

% 平滑降噪
% FFT變換和小波變換
clc
clf
clear
length_of_sig=128;
x=linspace(0,2*pi,length_of_sig);
% signal=5*sin(x)+2*sin(5*x)+randn(x);書上的這個是錯的,隨機數里的參數要求是整數
raw=5*sin(x)+2*sin(5*x);
signal=5*sin(x)+2*sin(5*x)+randn(1,length_of_sig);

jiequ=16;
transf=fft(signal);
filter_transf(1:jiequ)=transf(1:jiequ);
filter_transf(length_of_sig-jiequ:length_of_sig)=transf(length_of_sig-jiequ:length_of_sig);
filter_signal=ifft(filter_transf);

% before_hist=real(transf);
% after_hist=hist(before_hist);
% after_hist=histogram(before_hist);

[xd1,cxd1,lxd1] = wden(signal,'sqtwolog','h','sln',3,'db3');
[xd2,cxd2,lxd2] = wden(signal,'sqtwolog','s','one',2,'db3');

plot(x,signal,'k--')
hold on;
% plot(x,raw,'r')'無噪聲信號',
plot(x,filter_signal,'b')
plot(x,xd1);  
plot(x,xd2);  
legend('無噪聲信號+噪聲','FFT恢復信號',...
    '小波1恢復信號','小波2恢復信號')
% 從結果看來小波2和FFT效果都不錯。

  

參考:

1、matlab教程,例1.6 傅里葉變換與信號分析,之后發現改教程是基於matlab5.2的。

2、七中濾波方法測試matlab實現(轉)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM