how to use the hanning window to smooth the photon signal
31 次查看(过去 30 天)
显示 更早的评论
windowLength = 91;
hannWindow = hann(windowLength);
smooth_data = conv2(data, hannWindow, 'same');
is the code correct? Because when i increase the windowlength, the smooth_data will increase as well
0 个评论
回答(2 个)
Alexander
2024-2-19
I can't see this effect you mentioned. smooth_data remains the same size as data (I assume data = Photoncounts1). What do you expect? I never used windowing in the manner you have done it in the code above. Usually I multiplied the data with the window (or parts of the window) in the time domain to get rid of the step function and having a clear transient effect before a fft. Just an example:
clear;
N = 1024;
x = 0:N-1;
Whann = hann(N)';
y = rand(1,N); % Create some data
subplot(211);
plot(x,y);title('Original');grid minor;
subplot(212);
plot(x,y.*Whann);title('Windowed');grid minor;
3 个评论
Alexander
2024-2-20
Once again: A hann window is not made for smoothing data, but to minimize the effect of a rectangular function (start of measurement <-> end of measurement) in the time domain. If your signal is time domain data, use a filter.
Star Strider
2024-2-19
That appears to be some sort of spectrum. I am not certain what you want to do with it, however windowing it is not likely to produce any benefit at this point.
load('photon.mat')
% whos
figure
stairs(Photoncounts1)
grid
xlabel('Bin (?) Frequency (?)')
ylabel('Counts')
title('Photons')
xlim([0 600])
If this is a Fourier transform, the time to window the data was before calculating the transform.
.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Filter Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!