Borrar filtros
Borrar filtros

hanning ,hamming window in matlab?

29 visualizaciones (últimos 30 días)
Mary Jon
Mary Jon el 26 de Nov. de 2013
Comentada: Mary Jon el 27 de Nov. de 2013
how do Hanning and Hamming window in matlab?
when must I do these window after DFT signal or before DFT signal?

Respuesta aceptada

Wayne King
Wayne King el 26 de Nov. de 2013
Editada: Wayne King el 26 de Nov. de 2013
Before you take the DFT
hamming() or hann()
t = 0:0.001:1-0.00;
x = cos(2*pi*100*t)+randn(size(t));
winvec = hamming(length(x)); % hann(length(x));
xdft = fft(x'.*winvec);
plot(abs(xdft))
  6 comentarios
Wayne King
Wayne King el 26 de Nov. de 2013
You can put them in a matrix and multiply them all at once.
X = randn(100,20);
h = hamming(100);
h = repmat(h,1,20);
X = X.*h;
Mary Jon
Mary Jon el 26 de Nov. de 2013
Editada: Mary Jon el 26 de Nov. de 2013
How put 20 signals with length 33 in matrix? s1=first signal, s2=second signal,and so on and where is DFT in your code?

Iniciar sesión para comentar.

Más respuestas (2)

Wayne King
Wayne King el 27 de Nov. de 2013
Editada: Wayne King el 27 de Nov. de 2013
That depends on how they are in your workspace. If you have 20 separate vectors, then just do this.
I'll assume they are column vectors and I'll just create 3 signals here.
s1 = randn(33,1);
s2 = randn(33,1);
s3 = randn(33,1);
Sig = [s1 s2 s3];
Now window them as before:
h = hamming(33);
Sig = Sig.*repmat(h,1,3);
Now take the DFT
SigDFT = fft(Sig);
Obviously, you have to make adjustments for the 20 columns above:
repmat(h,1,20)
for example
  1 comentario
Mary Jon
Mary Jon el 27 de Nov. de 2013
I have row vectors not column vectors, s1=[1 2 3 4] s2=[3 5 6 6] and so on
when applied yor code in to my signals I get this error
Error using ==> times Matrix dimensions must agree.

Iniciar sesión para comentar.


Wayne King
Wayne King el 27 de Nov. de 2013
If you have row vectors you have to make the necessary adjustment. Just convert them to column vectors.
s1 = s1';
  3 comentarios
Wayne King
Wayne King el 27 de Nov. de 2013
You should plot abs()
plot(abs(SigDFT))
Mary Jon
Mary Jon el 27 de Nov. de 2013
Thank you so much for every thing,Wayne

Iniciar sesión para comentar.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by