2017-01-21 2 views
0

MATLABで雷鳴を合成する作業を進めています。 私はピンクノイズを生成していたし、今私は30Hzの上のバンドパスフィルタを追加しようとしているが、私はエラーを取得しています:バンドパスフィルターで雷鳴を合成する方法

The frequency specifications Fpass, Fstop must have increasing values. 

ここに私のコードです:たぶん

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); 

そこに他の方法それを合成する?

+0

エラーは何ですか? –

+0

のエラーは「周波数仕様Fpass、Fstopの値が増加している必要があります」です。 –

答えて

0

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

このエラーはFstopFpassより大きくなければならないことを意味しています。あなたはFpass=30Hzが必要だと述べました。したがって、Fstop > 30が必要ですが、10Hzの値を指定しました。このエラーを修正するには、Fstopの値を増やす必要があります(たとえば、最初は100Hz、好きなところまで調整してください)。

+0

ありがとう、私は100Hzに値を変更しましたが、今はスクリプトが動作しません。 –

+0

@VadimTor別のエラーが表示されたり、必要な方法で聞こえるように聞こえないオーディオを出力したりするため、「機能しません」と表示されますか?後で、それは私が "あなたが好きなものを得るまで微調整"と述べた理由です。 – SleuthEye

+0

私は480kHzのサンプリング周波数を使用していました。だから今、その作品は完璧です、もう一度あなたに感謝します。 –

関連する問題