1. Ursprüngliche Situation
Ich habe ein ursprüngliches Signal als Spaltendatenmatrix n
Kanäle Daten x:mxn (single)
mit m=120019
der zahl der Proben und n=15
der Anzahl der Kanäle.
Außerdem habe ich das gefilterte Signal als gefilterte Spaltendatenmatrix x:mxn (single)
.
Die Originaldaten stammen hauptsächlich von Sensoraufnehmern, die auf Null zentriert sind.
Unter MATLAB
, verwende save
ohne Optionen, butter
als Hochpassfilter und single
zum Gießen nach dem Filtern.
save
Wenden Sie im Wesentlichen eine GZIP-Level-3- Komprimierung über ein binäres HDF5-Format an. Daher können wir davon ausgehen, dass die Dateigröße ein guter Schätzer für den Informationsgehalt ist , dh maximal für ein zufälliges Signal und nahe Null für ein konstantes Signal.
Durch Speichern des ursprünglichen Signals wird eine 2-MB- Datei erstellt.
Durch Speichern des gefilterten Signals wird eine 5-MB- Datei erstellt (?!).
2. Frage
Wie ist es möglich, dass das gefilterte Signal eine größere Größe hat, wenn man bedenkt, dass das gefilterte Signal weniger Informationen enthält, die vom Filter entfernt werden?
3. Einfaches Beispiel
Ein einfaches Beispiel:
n=120019; m=15;t=(0:n-1)';
x=single(randn(n,m));
[b,a]=butter(2,10/200,'high');
xf=filter(b,a,x);
save('x','x'); save('xf','xf');
erstellt 6MB Dateien, für das Original und gefilterte Signal sowohl für, die durch Verwendung von reinen Zufallsdaten größer als die vorherigen Werte.
In gewissem Sinne bedeutet dies, dass das gefilterte Signal zufälliger ist als das gefilterte Signal (?!).
4. Bewertungsbeispiel
Folgendes berücksichtigen:
- Ignorieren Sie den Datentyp, dh verwenden Sie nur
double
,
Der folgende Code:
%% Data
n=125000;m=1;
t=(0:n-1)';
[hb,ha]=butter(2,0.5,'high');
d=100;
a=logspace(-6,0,d);
xr=randn(n,m);xc=ones(n,m);
b=zeros(d,2);
for i=1:d
x=a(i)*xr+(1-a(i))*xc;
xf=filter(hb,ha,x);
save('x1.mat','x'); save('x2.mat','xf');
b1=dir('x1.mat'); b2=dir('x2.mat');
b(i,1)=b1.bytes/1024;
b(i,2)=b2.bytes/1024;
i
end
%% Plot
semilogx(a,b);
title('Data Size for Filtered Signals');
legend({'original','filtered'},'location','southeast');
xlabel('Random Index \alpha');
ylabel('FIle Size [kB]');
grid on;
Mit der folgenden Tabelle als Ergebnis:
Diese Simulation reproduziert den Zustand des gefilterten Signals, der immer eine notorisch größere Größe als das ursprüngliche Signal hat, was der Tatsache widerspricht, dass ein gefiltertes Signal weniger Informationen enthält, die vom Filter entfernt werden.