Borrar filtros
Borrar filtros

Trouble with for loop to determine the discrete wavelet transform (DWT)

1 visualización (últimos 30 días)
Hi, I need assistance plotting the approximation (A) and detail (D) coefficients separately for all sheets in an Excel file over a given time frame. Currently, the existing code generates the transform only for the final sheet (Sheet 8). I am uncertain how to modify the code to plot A1 and D1 separately for all sheets. I would be grateful for any guidance you may provide. Thank you for your time and help.
clc
close all
clear all
filename = 's.xlsx';
% Get the sheet names
[~, sheetNames] = xlsfinfo(filename);
for i = 1:numel(sheetNames)
% Read the data from the sheet
data = xlsread(filename, i);
% Extract the time and signal columns
t(:,i) = data(:, 1);
sig (:,i) = data(:, 2);
N = length(sig);
dt = t(3) - t(2); % sampling time
fs = 1/dt; % freq
signal = sig (:,i);
wname = 'bior6.8';
% Discrete Wavelet, DWT
[CA1,CD1] = dwt(signal,wname);
A1 = idwt(CA1,[],wname,N);
D1 = idwt([],CD1,wname,N);
t (:,i) = linspace(0,N,N)*(1/fs);
subplot(1,2,1);
plot (t,A1,'k','LineWidth',1.5);
title(sprintf('Approximation for sheet%d', i));
set(gca,'fontname','Times New Roman','FontSize',10)
xlabel('Time (secs)')
ylabel('Amplitude')
grid on
subplot(1,2,2);
plot (t,D1,'k','LineWidth',1.5);
title(sprintf('Detail for sheet%d', i));
set(gca,'fontname','Times New Roman','FontSize',10)
xlabel('Time (secs)')
ylabel('Amplitude')
grid on
end

Respuestas (0)

Categorías

Más información sobre Wavelet Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by