Bonjour,
Je reçois des données en temps réel d'un capteur via Matlab, qui trace des graphiques et les met à jour en temps réel. Je souhaiterai modifier ces signaux également en temps réel, je ne sais pas si c'est possible. J'ai un second programme faisant la valeur absolue, un filtre passe bas, et une normalisation avec un autre signal acquis précédemment. Je souhaiterai incorporer ce second programme dans le premier, j'ai tenté de l'incorporer à différents endroits mais cela ne fonctionne pas. Avez-vous des idées ?
Voici une partie du programme en temps réel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 %%Plots function localReadAndPlotMultiplexed(interfaceObject, ~,~,~, ~) global rateAdjustedBytesToRead; bytesReady = interfaceObject.BytesAvailable; bytesReady = bytesReady - mod(bytesReady, rateAdjustedBytesToRead);%%1664 if (bytesReady == 0) return end global data_array data = cast(fread(interfaceObject,bytesReady), 'uint8'); data = typecast(data, 'single'); if(size(data_array, 1) < rateAdjustedBytesToRead*19) data_array = [data_array; data]; else data_array = [data_array(size(data,1) + 1:size(data_array, 1));data]; end %% Update the plots function updatePlots(obj, Event, tmp) global data_array global plotHandles for i = 1:size(plotHandles, 1) data_ch = data_array(i:16:end); set(plotHandles(i), 'Ydata', data_ch) end drawnow
Et si je veux juste filtrer par exemple :
Merci pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 %%Butterworth filter: (order, cutoff frequency, type) N = 4; Fc = 6/1000; [b,a] = butter(N,Fc,'low'); Butterfilt = filter(b,a,signal_abs);
Lizz
Partager