How to apply windowing technique in frequency Domine using Convolution Technique

4 次查看(过去 30 天)
Hello
Sample Rate: 500 Hz, L = 4500(Total Block Size)
%I applied a windowing technique with following command
wd = window(@tukeywin,L,1/1.7);
New_Signal = Time_Domine_Data * wd; %(Scalar Multiplication)
Freq = fft(New_Signal);
Multiplication in time domine is convolution in frequency domine, How do I apply windowing object 'wd' in frequency Domine using Convolution Technique
-- Thanks

采纳的回答

Wayne King
Wayne King 2013-3-30
Like this:
x = randn(8,1);
win = hamming(8);
y = x.*win;
ydft = fft(y);
Now compare ydft to the following:
N = length(x);
xdft = fft(x);
windft = fft(win);
1/N*cconv(xdft,windft,N)
  4 个评论
Thulasi Durai Durai Samy
Need to Apply Windowing Technique to Remove Intial Spike with the following codes, but it not happening
clear all;
clc;
load expt3b.txt;
Input_Data = expt3b;
S_rate = 500;
T = 1/S_rate;
Impulse(:,2) = Input_Data(:,1);
Response(:,2)= Input_Data(:,2);
%Conversion From Voltage to Accleration
Impulse(:,2) = Impulse(:,2) * (1/0.0225);
Response(:,2) = Response(:,2) * 31.64557;
L = length(Input_Data(:,2));
F_L = 2^nextpow2(L);
t(:,1) = (1:L)*T;
Freq = (S_rate/2*linspace(0,1,F_L/2+1))';
Impulse(:,1) = t';
Response(:,1) = t';
Response_FF(:,1) = t';
Response_Time_Filt(:,1) = t';
Dc_Bias = mean(Response(:,2));
Response(:,2) = Response(:,2) - Dc_Bias;
%Applying Exponential Window
for i=1:L
temp(i) = exp(-i/(2*S_rate));
Response_FF(i,2) = temp(i) * Response(i,2);
end
Response_FF(:,1) = Response(:,1);
Response_Time_Filt(:,1) = Response(:,1);
%Apply Tukey Window in Time Domine
Tukeywin_Obj = window(@tukeywin,numel(Response(:,2)),1/1.7);
Response_FF(:,2) = Response_FF(:,2).* Tukeywin_Obj;
% % Design of Low Pass Flter
[B, A] = butter(5,35/250);
Response_Time_Filt(:,2) = filter(B,A,Response_FF(:,2));
%Apply FFT For Response Data
Response_FF_Freq(:,1) = fft(Response_Time_Filt(:,2),F_L)/F_L;
Output_Data_Response = abs(Response_FF_Freq(1:F_L/2+1,1));
%Applyin FFT For Windowng Object "Tukeywin_Obj"
Tukeywin_Obj_Freq_Domine = window(@tukeywin,numel(Response(:,2)),1/1.7);
Response_FF_Freq_2(:,1) = fft(Tukeywin_Obj_Freq_Domine,F_L)/F_L;
Output_Data_Window = abs(Response_FF_Freq_2(1:F_L/2+1,1));
%Applying Convolution
Freq_Data_Windowing = 1/F_L*cconv(Output_Data_Response,Output_Data_Window,F_L);
plot(Freq,2*abs(Freq_Data_Windowing(1:F_L/2+1)));
grid on;
Input Time vs Response Data Link:
Output
Thulasi Durai Durai Samy
Hi Wayne King,
Thanks for your reply, I hope, I tried to understand the principals. But still I am unable to get rid of initial spike, Which is a mandatory operation, pls help.

请先登录,再进行评论。

更多回答(0 个)

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by