Main Content

Remove Time-Localized Frequency Components

Create a signal consisting of exponentially weighted sine waves. The signal has two 25-Hz components -- one centered at 0.2 seconds and one centered at 0.5 seconds. It also has two 70-Hz components -- one centered at 0.2 and one centered at 0.8 seconds. The first 25-Hz and 70-Hz components co-occur in time.

t = 0:1/2000:1-1/2000;
dt = 1/2000;
x1 = sin(50*pi*t).*exp(-50*pi*(t-0.2).^2);
x2 = sin(50*pi*t).*exp(-100*pi*(t-0.5).^2);
x3 = 2*cos(140*pi*t).*exp(-50*pi*(t-0.2).^2);
x4 = 2*sin(140*pi*t).*exp(-80*pi*(t-0.8).^2);
x = x1+x2+x3+x4;
plot(t,x)
grid on;
title('Superimposed Signal')

Figure contains an axes. The axes with title Superimposed Signal contains an object of type line.

Obtain and display the CWT.

cwt(x,2000);
title('Analytic CWT using Default Morse Wavelet');

Figure contains an axes. The axes with title Analytic CWT using Default Morse Wavelet contains 3 objects of type image, line, area.

Remove the 25 Hz component which occurs from approximately 0.07 to 0.3 seconds by zeroing out the CWT coefficients. Use the inverse CWT (icwt) to reconstruct an approximation to the signal.

[cfs,f] = cwt(x,2000);
T1 = .07;  T2 = .33;
F1 = 19;   F2 = 34;
cfs(f > F1 & f < F2, t> T1 & t < T2) = 0;
xrec = icwt(cfs);

Display the CWT of the reconstructed signal. The initial 25-Hz component is removed.

cwt(xrec,2000)

Figure contains an axes. The axes with title Magnitude Scalogram contains 3 objects of type image, line, area.

Plot the original signal and the reconstruction.

subplot(2,1,1);
plot(t,x);
grid on;
title('Original Signal');
subplot(2,1,2);
plot(t,xrec)
grid on;
title('Signal with first 25-Hz component removed');

Figure contains 2 axes. Axes 1 with title Original Signal contains an object of type line. Axes 2 with title Signal with first 25-Hz component removed contains an object of type line.

Compare the reconstructed signal with the original signal without the 25-Hz component centered at 0.2 seconds.

y = x2+x3+x4;
figure;
plot(t,xrec)
hold on
plot(t,y,'r--')
grid on;
legend('Inverse CWT approximation','Original Signal Without 25-Hz');
hold off

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Inverse CWT approximation, Original Signal Without 25-Hz.