Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Цель:
Научиться
Понятия
Цифровой сигнал N-мерный вектор, соответствующий одной точке N-мерного пространства.
Величина сигнала норма вектора (расстояние от начала системы координат) :
||f||=.
Отличие между сигналами расстояние между векторами:
.
Скалярное произведение векторов произведение проекции одного вектора (на другой) на длину другого.
Коэффициент корреляции выражает степень похожести векторов и равен косинусу угла между ними:
r=.
При равенстве его нулю векторы взаимно перпендикулярны
Задание 1
При отсутствии опыта работы с Python изучить справочную информацию (http://docs.python.org/ , http://docs.scipy.org/).
Примеры создания детерминированных сигналов вручную и встроенными функциями генерации:
#coding=utf-8
#Функции генерации сигналов: прямоугольный импульс
from math import sin, pi #подключение функций из библиотеки
from matplotlib.pyplot import plot, show #подключение функций из библиотеки
from scipy.signal import * #подключение библиотеки
from numpy import * #подключение библиотеки
def rectpuls(t,width): #объявление пользовательской функции
y=ones((len(t),1)) #заполнение массива единицами
for i in xrange(0,len(t)): #создание целочисленного итератора
if (t[i]<-width/2.0)or(t[i]>=width/2.0):
y[i,0] = 0
else:
y[i,0] = 1
return y #возврат результата функции
t = linspace(-8*pi,8*pi,600) #создание массива из 600 элементов, равномерно
#распределенных от -8*pi до 8*pi
y = rectpuls(t,10)
plot(t,y)
show()
# синусоида, модулированная функцией Гаусса
from math import pi
from matplotlib.pyplot import plot, show
from scipy.signal import *
from numpy import linspace
t = linspace(0,4*pi,600)
fc = 1
bw = 0.5
y = gausspulse(t-2*pi,fc,bw)
plot(t,y)
show()
#периодическая последовательность прямоугольных импульсов
#d скважность (длительность положительной полуволны в
#долях от периода (по умолчанию d=0.5))
from math import pi
from matplotlib.pyplot import plot, show
from scipy.signal import *
from numpy import linspace
t = linspace(0,8*pi,600)
d = 0.5
y = square(t,d)
plot(t,y)
show()
#периодическая последовательность пилообразных импульсов
from math import pi
from matplotlib.pyplot import plot, show
from scipy.signal import *
from numpy import linspace
t = linspace(0,8*pi,600)
d = 0.5
y = sawtooth(t,d)
plot(t,y)
show()
#шум по расределению Гаусса
from matplotlib.pyplot import plot, show
from scipy.signal import *
from numpy import *
t = linspace(0,600,600)
y = random.standard_normal(600)
plot(t,y)
show()
Изучить зависимость формы генерируемых сигналов при различных параметрах.
Задание 2
Создать функции на языке Python для генерации следующих сигналов:
y = tripuls(t,width,skew)
Здесь t вектор значений времени, width ширина (длительность) импульса, skew коэффициент асимметрии импульса, определяющий положение его вершины. Пик импульса расположен при t=width*skew/2. Параметр skew должен лежать в диапазоне от -1 до 1.
Возвращаемый результат y вектор рассчитанных значений сигнала, определяемых по следующей формуле:
Задание 3
1) Создать синусоидальный сигнал. Визуализировать. Убедиться в правильности написания кода
Амплитуда Условные единицы |
Частота Гц |
Длительность сигнала сек |
Период дискретизации сек |
Начальная фаза радианы |
1 2 3 1 1 |
10 10 5 30 200 |
1 1 2 1 1 |
0,001 0,001 0,01 0,1 0,001 |
0 Pi/6 Pi/3 0 0 |
2) Датчиком случайных чисел создать нормально распределенный шум
Задание 4
Смоделировать запись канала синусоидальный радиоимпульс длительностью 1 секунду и частотой 5 герц во временном окне длительностью 3 секунды. Задержка импульса от начала отсчета времени 0,5 секунды.
Создать последовательность радиоимпульсов наложением периодических прямоугольных импульсов на синусоиду.
Подвинуть радиоимпульс на 0,5 секунды позже по оси времени.
PAGE 3