我如何在数学上将 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))));
我目前正在尝试绘制 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))));