2017-01-21 3 views
0

Je travaille sur la synthèse du son du tonnerre dans MATLAB. j'avais généré un bruit rose et maintenant je suis en train d'ajouter le filtre passe-bande sur 30Hz, mais j'obtiens l'erreur:Comment synthétiser un son de tonnerre avec filtre passe-bande

The frequency specifications Fpass, Fstop must have increasing values. 

Voici mon code:

dur=[0:1/Fs:time-1/Fs]; 
sz=length(dur); 
g=randn(1, sz); % 
Y=fft(g); 

NumUniquePts = sz/2 + 1; 
n = 1:NumUniquePts; 
n = sqrt(n); 
Y(1:NumUniquePts) = Y(1:NumUniquePts)./n; 

Y(NumUniquePts+1:sz) = real(Y(sz/2:-1:2)) -1i*imag(Y(sz/2:-1:2)); 

y = ifft(Y); 

y = real(y(1, 1:sz)); 

y = y - mean(y); 
yrms = sqrt(mean(y.^2)); 
y = y/yrms; 

d = fdesign.lowpass('Fp,Fst,Ap,Ast',30,10,0.5,50,48e4); 
Hd1 = design(d,'equiripple'); 
Hd2 = design(d,'butter'); 

out = filter(Hd1,y); 

Peut-être une autre façon de le synthétiser?

+0

Quelle est l'erreur? –

+0

erreur est "Les spécifications de fréquence Fpass, Fstop doit avoir des valeurs croissantes." –

Répondre

0

I am getting an error. "The frequency specifications Fpass, Fstop must have increasing values."

Cette erreur signifie que Fstop doit être supérieure à Fpass. Vous avez mentionné que vous avez besoin de Fpass=30Hz. Vous auriez donc besoin de Fstop > 30, mais vous avez spécifié une valeur de 10Hz. Pour corriger cette erreur, vous devez augmenter la valeur Fstop (par exemple à 100Hz pour les démarreurs puis ajuster jusqu'à obtenir ce que vous voulez).

+0

Merci pour la réponse, j'ai changé la valeur à 100Hz, mais maintenant le script ne fonctionne tout simplement pas. –

+0

@VadimTor "ne fonctionne tout simplement pas" comme si vous receviez une autre erreur, ou ne produisiez pas l'audio qui sonne comme vous le souhaitez? Pour le plus tard, c'est pourquoi j'ai mentionné "tweak jusqu'à ce que vous obtenez ce que vous aimez". – SleuthEye

+0

J'ai utilisé la fréquence d'échantillonnage de 480 kHz et mon ordinateur s'est figé quand j'essayais de l'exécuter. Alors maintenant, ça fonctionne parfaitement, merci encore. –