白噪音與程式範例

什麼是白噪音?

白噪音(White Noise)是一種包含各種不同頻率聲音的混合聲,這些聲音以相同的強度一起播放,形成一種平穩的背景聲音。聽起來像持續的嗡嗡聲或嘶嘶聲,類似於風扇運轉、下雨或海浪的聲音。白噪音的名字來自於「白光」,因為白光包含所有顏色的光,類似地,白噪音也包含所有可聽到的聲音頻率。

白噪音的特性

  1. 涵蓋廣泛頻率:白噪音包含了我們耳朵能聽到的所有頻率,從低音的20赫茲(Hz)到高音的20,000赫茲。
  2. 聲音平穩:每個頻率的聲音強度是一致的,這使得它聽起來非常平穩,沒有突兀的變化。
  3. 隨機性:白噪音是隨機的聲波,沒有明顯的旋律或節奏,所以不會引起注意。

白噪音的用途

白噪音在生活和醫療中有很多用途,以下是一些常見的應用:

  1. 幫助睡眠:白噪音可以掩蓋突如其來的噪音,比如車聲或鄰居的聲音,幫助你更快入睡並保持深度睡眠。
  2. 提高專注力:在工作或學習時,白噪音可以遮掩環境中的雜音,讓你更專注。
  3. 創造安靜環境:在開放辦公室或嘈雜的環境中,白噪音可以掩蓋周圍的談話聲,讓工作空間更安靜。
  4. 治療用途:白噪音有時用於治療耳鳴,因為它可以掩蓋耳鳴聲,使患者感覺舒適。

如何產生白噪音

現在產生白噪音非常簡單,有許多專門的設備和應用程式可以生成白噪音,甚至你可以自己編寫程式來產生白噪音。以下是兩個用 Python 編寫的簡單程式,來產生不同效果的白噪音。

第一個範例

這個範例是基本的白噪音,可能會聽起來比較吵雜:

import numpy as np
import sounddevice as sd

# 設定參數
duration = 10  # 白噪音持續時間(秒)
sample_rate = 44100  # 取樣率(Hz)

# 生成白噪音
white_noise = np.random.normal(0, 1, size=(duration * sample_rate,))

# 播放白噪音
sd.play(white_noise, sample_rate)
sd.wait()  # 等待播放結束

改良後的版本

經過一些修改,改良成比較柔和的粉紅噪音,聽起來會比較舒服:

import numpy as np
import sounddevice as sd

# 設定參數
duration = 10  # 白噪音持續時間(秒)
sample_rate = 44100  # 取樣率(Hz)

# 生成白噪音,調整為較為悅耳的粉紅噪音(pink noise)
def generate_pink_noise(duration, sample_rate):
    # 生成白噪音
    white_noise = np.random.normal(0, 1, size=(duration * sample_rate,))

    # 應用濾波器,使其成為粉紅噪音
    # 粉紅噪音的頻譜密度隨頻率降低(1/f)
    b = [0.049922035, -0.095993537, 0.050612699, -0.004408786]
    a = [1, -2.494956002, 2.017265875, -0.522189400]
    pink_noise = np.zeros_like(white_noise)
    for i in range(3, len(white_noise)):
        pink_noise[i] = b[0] * white_noise[i] + b[1] * white_noise[i - 1] + b[2] * white_noise[i - 2] + b[3] * white_noise[i - 3] - a[1] * pink_noise[i - 1] - a[2] * pink_noise[i - 2] - a[3] * pink_noise[i - 3]

    return pink_noise

# 生成粉紅噪音
pink_noise = generate_pink_noise(duration, sample_rate)

# 播放粉紅噪音
sd.play(pink_noise, sample_rate)
sd.wait()  # 等待播放結束

結論

白噪音是一種神奇的聲音,它可以幫助我們提高睡眠質量、增強專注力、創造安靜的工作環境,甚至在醫療上提供幫助。無論你是通過專業設備、應用程式,還是自己編寫程式,都可以輕鬆地生成和使用白噪音來提升生活品質。讓白噪音成為你生活中的小幫手,享受它帶來的寧靜和專注吧!

分類: 技術相關, 程式相關,標籤: , , , , , , , , , 。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *