ich hab ein Problem. Ich brauche eine Multisinus Testsignal für eine Messung mit meinem selbstgebauten Messsystems. Ich bräuchte einen Multisinuns der bei 32Hz beginn und in 32Hz Schritten bis zu 16kHz geht und dann möglichst gleiche Pegel erzeugt (CREST-Faktor sollte auch klein sein) . Ich habe versucht mir ein passendes Zeitsignal als Wave-Datei in MATLAB zu erzeugen. Für die tiefen Frequenzen läuft mein Programm ganz gut, jedoch macht es in höheren Frequenzen 64Hz Sprünge und der Pegel sinkt bei hohen f. Sieht einer von Euch meinen Fehler für die 64Hz Sprünge. Oder kennt einer eine besser Möglichkeit zur Erzeugung eines solchen Signal? Besten Dank!
Code:
clear;
close;
fa = 44100;
T = 1/fa;
l = 2;
N = fa*l;
f1 =0;
t = 0:1/fa:1/fa*(N-1) ;
Y = 1:1:length(t);
h=length(t)/(log(1000)+1);
hh=length(t)/(log(1000)+1);
k=32;
n=1;
a=1;
for t1=1:1:length(t) if t1>=h
n=n+1;
k=k+32;
a=a+0.02;
if k>16000
Y2 = Y(1 t1-1));
break;
end
h=h+hh/n;
end
Y(t1)=(a)*sin(2*pi*t(t1)*k);
end;
Y=Y2;
t2=t(1:length(Y));
t=t2;
subplot(2,1,1);
plot(t,Y),axis([02*l -55]),
title('Signal im Zeitbereich'),
xlabel('Zeit / s'),
ylabel('Abtastwert'),
grid,
zoom on;
1. gibt es in Matlab eine chirp.mat in der ein Sinussweep abgelegt ist.
2. Es gibt ein Simulink Source-Block Chirp Signal, der ebenfalls ein solches Signal erzeugt. Du könntest ihn ja in Simulink aufnehmen und als mat-File abspeichern. Ob das deine Ansprüche erfüllt kann ich nicht sagen.
Danke für den Input. Hatte mir in vorherigen Versuchen selber einen Chirp gebastelt. Es darf aus Vergleichbarkeitsgründen zu älteren Messungen aber kein sweep/chirp sein. Es muss wieder die 32Hz Schritte besitzen und an das alte Signal komm ich leider nicht ran.
Hatte aber noch eine Idee bei der es leider an der Umsetzung hapert es.
Ich hab mir im Frequenzspekt. mein Wunschsignal zusammen gebastelt und würde das gerne in ein Zeitsignal zurückführen. Es kommt aber nix gutes dabei rum. Hat das schonmal jemand sowas gemacht oder wird das nicht gehen? (ps. das Zeitsignal sollte ca. 2Sek lang sein).
Code:
clear;
close;
fa = 44100; %Abtastfrequenz
T = 1/fa; %Periodendauer
l = 2; %Länge des erzeugten Signal
N = fa*l; %Anzahl der Werte
A = 0.1; %Amplitute der Spitze
n = 100; %Breite der Dreiecksfunktion
for i=1:length(f)
S(i)=0;
end;
for i=1:length(f) iffloor(f(i)/32) == f(i)/32 if i-n>0 && i+n<length(f) for j=(i-n)i+n)
S(j) = S(j) + A - abs(f(i)-f(j))*A/(f(i)-f(i-n));
end;
end;
end;
end;
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.