| • | 
| • | 
| • | 
| • | 
| • | 
| • | 
| • | 
| • | 
| • | 
| • | 
| • | 
| 4 | 
| 7 | 
| 4 | 
| 1 | 
| 5 | 
| 1 | 
| 3 | 
| 2 | 
| 1 | 
| 2 | 
| 2 | 
| 2 | 
| 1 | 
| 1 | 
| 1 | 
| 2 | 
| 2 | 
| 3 | 
| 6 | 
| 9 | 
| 12 | 
| 15 | 
| 18 | 
| 21 | 
| 24 | 
| 27 | 
| 30 | 
| 33 | 
| 36 | 
| 39 | 
| 42 | 
| 2 | 
| 1 | 
| 1 | 
| 1 | 
| 1 | 
| 2 | 
| 1 | 
| 1 | 
| 1 | 
| 1 | 
| 4 | 
| 5 | 
| 5 | 
| 4 | 
| 1 | 
| 5 | 
| 4 | 
| 1 | 
| 6 | 
| 1 | 
| 4 | 
| 5 | 
| 3 | 
| 7 | 
| 1 | 
| 3 | 
| 3 | 
| 1 | 
| 3 | 
| 1 | 
| 4 | 
| 2 | 
| 3 | 
| 2 | 
| 3 | 
| 1 | 
| 5 | 
| 2 | 
| 3 | 
| 1 | 
// از مقدار مطلق و فاز میدان فشار به عنوان تابعی از فرکانس استفاده می کند.
if (!model.sol(“sol2”).isEmpty()) {
// فشار مطلق و فاز را در محل داده شده به عنوان تابعی از فرکانس ارزیابی کنید.
model.result().numerical(“gev1”).setResult();
double[] pressAbs = model.result().numerical(“gev1”).getReal()[0];
double[] pressPhase = model.result().numerical(“gev1”).getReal()[1];
double[] freq = model.result().numerical(“gev1”).getReal()[2];
// داده های فشار را به فایل صوتی تبدیل کنید.
سعی کنید {
// تعداد نمونهها را در موج بالاترین فرکانس و کل زمان صدا را بر حسب ثانیه تنظیم کنید.
int n = 20;
float sampleRate = (float) freq[freq.length-1]*n;
بافر بایت[] = بایت جدید[(int) sampleRate*2*time];
// از ShortBuffer (امضا شده 16 بیتی با ترتیب بایت بزرگ) و ByteBuffer برای افزودن آسان بایت های جدید به بافر.
java.nio.ByteBuffer byteBuffer = java.nio.ByteBuffer.wrap(buffer);
java.nio.ShortBuffer shortBuffer = byteBuffer.asShortBuffer();
// AudioFormat، DataLine و SourceDataLine را برای پخش صدا با API صدای جاوا تنظیم کنید.
javax.sound.sampled.AudioFormat audioFormat = new javax.sound.sampled.AudioFormat(sampleRate, 16, 1, true, true);
int bytesPerSample = 2;
برای (int i = 0; i < buffer.length/bytesPerSample; i++) {
double t = i/sampleRate;
// شش جزء را اضافه کنید و بر مجموع دامنه سیگنال ها تقسیم کنید.
دامنه دو برابر = 0;
for (int j = 0; j <pressureAbs.length; j++) {
amplitude += pressAbs[j]*Math.sin(2*Math.PI*freq[j]*t+pressurePhase[j]);
}
// سیگنال را با 1200 ضرب کنید تا صدای مناسبی روی سیگنال پاکت بدست آورید.
shortBuffer.put((کوتاه) (1200*دامنه));
}
java.io.ByteArrayInputStream byteArrayInputStream = new java.io.ByteArrayInputStream(buffer);
// برای ایجاد فایل روی فایل بنویسید.
writeFile(“temp:///gearbox_vibration_noise_bearing_mic1.wav”، “”);
// مسیر فایل مطلق فایل temp تولید شده را برای خروجی موج دریافت کنید.
String tempWaveFilePath = getFilePath(“temp:///gearbox_vibration_noise_bearing_mic1.wav”);
java.io.File waveFile = null;
if (tempWaveFilePath != null) {
waveFile = new java.io.File(tempWaveFilePath); // یک نمونه فایل ایجاد کنید.
}
// یک جریان ورودی با بافر[] ایجاد کنید.
javax.sound.sampled.AudioInputStream audioInputStream = javax.sound.sampled.AudioInputStream جدید (byteArrayInputStream، audioFormat، buffer.length/audioFormat.getFrameSize());
// جریان ورودی صوتی بافر صدا را در فایل موج بنویسید و فایل موج را پخش کنید.
// یک فایل موجی به جای پخش مستقیم به خط داده منبع برای دستگاه صوتی در
// استفاده می شود، زیرا ممکن است رایانه به دلیل رابط کاربر مشتری روی دستگاه دیگری اجرا شود.
// عملکرد playSound تضمین می کند که صدا همیشه برای رابط کاربری مشتری پخش می شود.
if (waveFile != null) {
javax.sound.sampled.AudioSystem.write(audioInputStream, javax.sound.sampled.AudioFileFormat.Type.WAVE, waveFile);
playSound (“temp:///gearbox_vibration_noise_bearing_mic1.wav”);
}
} catch (Exception ex) {
debugLog(ex.getMessage());
error (“خطا هنگام ایجاد ترکیب صدای بنیادی و هارمونیک.”);
}
}
| 1 | 
// از مقدار مطلق و فاز میدان فشار به عنوان تابعی از فرکانس استفاده می کند.
if (!model.sol(“sol2”).isEmpty()) {
// فشار مطلق و فاز را در محل داده شده به عنوان تابعی از فرکانس ارزیابی کنید.
model.result().numerical(“gev2”).setResult();
double[] pressAbs = model.result().numerical(“gev2”).getReal()[0];
double[] pressPhase = model.result().numerical(“gev2”).getReal()[1];
double[] freq = model.result().numerical(“gev2”).getReal()[2];
// داده های فشار را به فایل صوتی تبدیل کنید.
سعی کنید {
// تعداد نمونهها را در موج بالاترین فرکانس و کل زمان صدا را بر حسب ثانیه تنظیم کنید.
int n = 20;
float sampleRate = (float) freq[freq.length-1]*n;
بافر بایت[] = بایت جدید[(int) sampleRate*2*time];
// از ShortBuffer (امضا شده 16 بیتی با ترتیب بایت بزرگ) و ByteBuffer برای افزودن آسان بایت های جدید به بافر.
java.nio.ByteBuffer byteBuffer = java.nio.ByteBuffer.wrap(buffer);
java.nio.ShortBuffer shortBuffer = byteBuffer.asShortBuffer();
// AudioFormat، DataLine و SourceDataLine را برای پخش صدا با API صدای جاوا تنظیم کنید.
javax.sound.sampled.AudioFormat audioFormat = new javax.sound.sampled.AudioFormat(sampleRate, 16, 1, true, true);
int bytesPerSample = 2;
برای (int i = 0; i < buffer.length/bytesPerSample; i++) {
double t = i/sampleRate;
// شش جزء را اضافه کنید و بر مجموع دامنه سیگنال ها تقسیم کنید.
دامنه دو برابر = 0;
for (int j = 0; j <pressureAbs.length; j++) {
amplitude += pressAbs[j]*Math.sin(2*Math.PI*freq[j]*t+pressurePhase[j]);
}
// سیگنال را با 1200 ضرب کنید تا صدای مناسبی روی سیگنال پاکت بدست آورید.
shortBuffer.put((کوتاه) (1200*دامنه));
}
java.io.ByteArrayInputStream byteArrayInputStream = new java.io.ByteArrayInputStream(buffer);
// برای ایجاد فایل روی فایل بنویسید.
writeFile(“temp:///gearbox_vibration_noise_bearing_mic2.wav”، “”);
// مسیر فایل مطلق فایل temp تولید شده را برای خروجی موج دریافت کنید.
String tempWaveFilePath = getFilePath(“temp:///gearbox_vibration_noise_bearing_mic2.wav”);
java.io.File waveFile = null;
if (tempWaveFilePath != null) {
waveFile = new java.io.File(tempWaveFilePath); // یک نمونه فایل ایجاد کنید.
}
// یک جریان ورودی با بافر[] ایجاد کنید.
javax.sound.sampled.AudioInputStream audioInputStream = javax.sound.sampled.AudioInputStream جدید (byteArrayInputStream، audioFormat، buffer.length/audioFormat.getFrameSize());
// جریان ورودی صوتی بافر صدا را در فایل موج بنویسید و فایل موج را پخش کنید.
// یک فایل موجی به جای پخش مستقیم به خط داده منبع برای دستگاه صوتی در
// رایانه استفاده میشود زیرا ممکن است رابط کاربر مشتری روی دستگاه دیگری اجرا شود.
// عملکرد playSound تضمین می کند که صدا همیشه برای رابط کاربری مشتری پخش می شود.
if (waveFile != null) {
javax.sound.sampled.AudioSystem.write(audioInputStream, javax.sound.sampled.AudioFileFormat.Type.WAVE, waveFile);
playSound (“temp:///gearbox_vibration_noise_bearing_mic2.wav”);
}
} catch (Exception ex) {
debugLog(ex.getMessage());
error (“خطا هنگام ایجاد ترکیب صدای بنیادی و هارمونیک.”);
}
}
| 1 | 
 

















 
  
  
  
  
  
  
  
 
 
 
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 
 
  
  
  
  
  
  
  
 
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 