Hann Window Smoothing Help
    5 views (last 30 days)
  
       Show older comments
    
Hi,
I'm attempting to smooth a set of values in an attempt to remove problems visualising the data which is skewed toward single points with high values amongst regions of low values - such as the one highlighted below. The first column below is essentially the X-axis value and the second column are the Y-axis values i'm trying to smooth.
87 1
109 1
298 1
396 1
400 1
412 455
414 1
415 1
417 2
Within MatLab i've carried out smoothing by using a Hann window, creating it with:
hann15=hanning(15);
and smoothing the signal with:
smooth15=conv(signal,hann15,'same');
However i've noticed that if I manually alter the Y values to include an aberrantly strong peak of the kind we are trying to reduce the prevalence of - this smoothing method includes the new value and constructs a smoothed peak bias toward this one outlier, increasing the flanking values.
Is there a way to get around this? Perhaps I need a new smoothing window shape?
Thanks for any help! I should add that i've never used MATLAB before today so i'm a total novice.
- Kayleigh
0 Comments
Answers (1)
  Wayne King
    
      
 on 20 Nov 2013
        Hi Kayleigh, Welcome to MATLAB. If your signal truly consists of values like
1 2 1 455 1 2
Then I think there are better ways to handle this:
1.) You can simply identify those values in your waveform, remove them, and then interpolate the missing value with the surrounding signal values.
2.) If you have the Wavelet Toolbox, there is an easy way to do this with wavelets. You can take the wavelet transform of the signal, those large values will be localized to the fine-scale coefficients, so you can remove those and reconstruct your signal without the large values.
It would help if you could attach a representative data file and if you can say whether you have the Wavelet Toolbox installed.
>>ver
will list which toolboxes you have.
2 Comments
  Wayne King
    
      
 on 20 Nov 2013
				Thank you for the data, you have a large number of these peaks in your data, so I don't think the interpolation method will work.
The question is what size peaks do you want to maintain. You have many large values but also "intermediate" values as well.
See Also
Categories
				Find more on Multirate Signal Processing in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
