Исследование электромагнитного спектра: методы и примеры кода

Вот несколько методов, связанных с электромагнитным спектром, а также примеры кода:

  1. Создание графика спектра:

    • Пример Python с использованием библиотеки Matplotlib:
      import numpy as np
      import matplotlib.pyplot as plt
      # Define frequency range
      frequency = np.linspace(1e6, 1e9, 1000)  # Example range from 1 MHz to 1 GHz
      # Calculate corresponding wavelength
      speed_of_light = 3e8  # Speed of light in meters per second
      wavelength = speed_of_light / frequency
      # Plot the spectrum
      plt.plot(frequency, wavelength)
      plt.xlabel('Frequency (Hz)')
      plt.ylabel('Wavelength (m)')
      plt.title('Electromagnetic Spectrum')
      plt.show()
    • Этот код генерирует график, отображающий взаимосвязь между частотой и длиной волны в электромагнитном спектре.
  2. Спектральный анализ с использованием быстрого преобразования Фурье (БПФ):

    • Пример Python с использованием библиотеки SciPy:
      import numpy as np
      from scipy.fft import fft, fftfreq
      import matplotlib.pyplot as plt
      # Generate a sample signal
      duration = 1.0  # Signal duration in seconds
      sample_rate = 1000  # Number of samples per second
      t = np.linspace(0, duration, duration * sample_rate, endpoint=False)
      signal = np.cos(2 * np.pi * 10 * t) + 0.5 * np.cos(2 * np.pi * 20 * t)
      # Perform FFT
      spectrum = fft(signal)
      frequencies = fftfreq(len(signal)) * sample_rate
      # Plot the spectrum
      plt.plot(frequencies, np.abs(spectrum))
      plt.xlabel('Frequency (Hz)')
      plt.ylabel('Amplitude')
      plt.title('Spectrum Analysis')
      plt.show()
    • Этот код вычисляет и строит частотный спектр данного сигнала с помощью быстрого преобразования Фурье (БПФ).
  3. Моделирование распространения беспроводного сигнала:

    • Пример Python с использованием уравнения передачи Фрииса:
      import math
      # Friis transmission equation
      def friis_transmission(power_tx, power_rx, frequency, distance):
       lambda_ = 3e8 / frequency  # Wavelength
       gain = 1  # Antenna gain
       loss = (4 * math.pi * distance / lambda_)  2  # Free space path loss
       received_power = power_tx * gain * (lambda_  2) / (16 * math.pi  2 * distance  2 * loss)
       return received_power
      # Example usage
      tx_power = 10  # Transmitting power in watts
      rx_power = friis_transmission(tx_power, 0, 2.4e9, 100)  # Calculate received power at 100 meters
      print(f"Received power: {rx_power} watts")
    • Этот код демонстрирует расчет полученной мощности с использованием уравнения передачи Фрииса, которое моделирует распространение беспроводного сигнала.