matlab 小波sin 信号去噪

 去掉60Hz 的信号

clc,clear all;close all;
fs=180;
N=2000;
t=(1:N-1)/fs;
s=1.2*sin(2*pi*t*20)+0.5*cos(2*pi*t*60);%%% 滤掉60Hz的信号
% level=8; wavename='bior2.6';
figure;
subplot(211); plot(t,s); title('原始信号') ;  grid on
[f, spectrum ] = gan_fft(s,fs,N);
subplot(212);plot(f,spectrum); title('原始信号pinpu');   grid on

[C,L]=wavedec(s,1,'db6');
a1=appcoef(C,L,'db6',1);
d1=detcoef(C,L,1);
d1=(zeros(length(d1),1));

%%%另外一种重构方法:
s=idwt(a1,d1','db6');
figure;
%s_2=waverec([a2;d2;d1],[length(a2);length(d2);length(d1);length(s)],'db6');
s2=waverec([A2 D2 D1],[length(A2);length(D2);length(D1);length(s1)],wavename);
subplot(211);plot(s);    grid on;
[f, spectrum ] = gan_fft(s,fs,N);
subplot(212);plot(f,spectrum); title('  去掉60Hz 原始信号pinpu'); grid on;

function [f, spectrum ] = gan_fft(s,Fs,L)
%GAN_FFT 此处显示有关此函数的摘要
%   此处显示详细说明
y=fft(s);
p2=abs(y/L);
p1=p2(1:L/2+1);
p1(2:end-1)=2*p1(2:end-1);
f = Fs*(0:(L/2))/L;
spectrum=p1;
 
end

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值