我如何在数学上将 window 函数应用于 matlab 中的信号?

How do i mathematically apply a window function to a signal in matlab?

我目前正在尝试绘制 windowed 信号图。该图目前是用乳胶制作的,但似乎无法在乳胶中重新创建在 matlab 中生成的图。

   %% Time specifications:
   Fs = 8000;                   % samples per second
   dt = 1/Fs;                   % seconds per sample
   StopTime = 60;             % seconds
   t = (0:dt:StopTime-dt)';     % seconds
   %% Sine wave:
   Fc = 60;                     % hertz
   x = sin(0.9*pi*t) + sin(0.42*pi*t);
   %x = cos(2*pi*Fc*t) + cos(2*pi*Fc*5*t)+ sin(2*pi*Fc*10*t);
   % Plot the signal versus time:
   figure;
   %plot(t,x);
   %xlabel('time (in seconds)');
   %title('Signal versus Time');
   %zoom xon;
   %%
   window = hamming(length(t),'periodic');
   %plot(window)
   windowed = x.*window; 
   plot(windowed)

这会生成这样的情节

但是当我尝试在 matlab.. 中重新创建情节时,我得到了一些不同的东西。

我正在策划的是:

w= sin(0.9*pi*t) + sin(0.42*pi*t)*0.54 - 0.46*( cos(360*t/600))
plot(w)

第一部分是信号 * window = windowed 信号... 我得到的是这个..

为什么这如此不同..我做错了什么?

据我所知,你的表达有两个错误。首先,您错过了 window 函数周围的括号,其次,您在 cos 项中使用了错误的句点。尝试

 w = (sin(0.9*pi*t) + sin(0.42*pi*t)).*(0.54 - 0.46*( cos(2*pi*t/t(end))));