goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

Wahrscheinlichkeits-rechnung und Statistik mit MATLAB

Fachkräfte:
Testingenieur (w/m) Konfigurationswerkzeuge für Echtzeitsysteme
Einbinden von Simulink®-Simulationsmodellen, Verteilung der Simulationsmodelle auf Multicore- und Multiprozessorsysteme
dSPACE GmbH - Paderborn

Entwicklungsingenieur Emissions-Modellierung (m/w)
Erstellung Modellstrukturen in Matlab/Simulink zur Abbildung von Abgasanlagen
MBtech Group GmbH & Co. KGaA - Stuttgart

Entwicklungsingenieur Steuergerätetest Nutzfahrzeuge (m/w)
Testing von Antrieben, Bremsen sowie Fahrerassistenzsystemen, Ergebnisanalyse
MBtech Group GmbH & Co. KGaA - Stuttgart, Mannheim, München

Senior Software-Entwickler (m/w)
Implementierung von SW-Entwicklungen, Erstellung von Funktionsmodellen
MBtech Group GmbH & Co. KGaA - München

Systemingenieur/in mit Arbeitspaketverantwortung im Bereich Absicherung Automotive
Absicherung von Rückwirkungen der Hardwarestreuung auf Softwareumfänge
ESG Elektroniksystem- und Logistik-GmbH - München

weitere Angebote

Partner:




Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Testsignal erzeugen /Multisinus

 

Transfunktionator
Forum-Newbie
Forum-Newbie

Beiträge: 3
Anmeldedatum: 16.06.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 30.06.2010, 08:32     Titel: Testsignal erzeugen /Multisinus
  Antworten mit Zitat      
Grüße und guten Morgen,

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([0 2*l -5 5]),
 title('Signal im Zeitbereich'),
 xlabel('Zeit / s'),
 ylabel('Abtastwert'),
 grid,
 zoom on;
 
S = fft(Y,N);          
Sabs = abs(S);          
 
f = 0:fa /(N-1):fa ;    
 
subplot(2,1,2);
plot(f,(Sabs)),              
semilogy(f,Sabs),
 title('Signal im Frequenzbereich'),
 xlabel('Frequenz / Hz'),
 ylabel('Amplitude'),
 grid,
 zoom on;

 fn  = 'c:\MATLAB7\work\ Kamm.wav';  

wavwrite(Y,fa,32,fn);
 
Private Nachricht senden Benutzer-Profile anzeigen


Lord nibbler
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2010, 10:09     Titel:
  Antworten mit Zitat      
Hallo,

Mir fallen zwei Dinge ein:

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.

Gruß
Lord nibbler
 
Transfunktionator
Forum-Newbie
Forum-Newbie

Beiträge: 3
Anmeldedatum: 16.06.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 30.06.2010, 10:35     Titel:
  Antworten mit Zitat      
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
 
f = 0:0.1:16000;
S = 1:1:length(f);
 
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)
    if floor(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;
 

Y = fft(S,2*N);
length(Y)
Y = Y(ceil(length(Y)/2):length(Y));
length(Y)
t=01/44100):l;
length(t)
Y = Y(1:length(t));
length(Y)
 
subplot(2,1,1);
semilogy(f,S),
  title('Signal im Frequenzbereich'),
  xlabel('Frequenz / Hz'),
  ylabel('Amplitude'),
  grid,
  zoom on;
 
 
  subplot(2,1,2);
plot(t,Y),
  title('Signal im Zeitbereich'),
  axis([0 2 -40 40]),
  xlabel('Frequenz / Hz'),
  ylabel('Amplitude'),
  grid,
  zoom on;
 
 
  fn  = 'c:\MATLAB7\work\NEUNEU.wav';  %Quellen-File benennen (chirp.wav mit fa = 44100Hz)
wavwrite(Y,fa,32,fn);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.