Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
С2_21_Краснов_МП-47_Dom.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
187 Кб
Скачать
☆

Графики сигнала:

Амлитудный спектр:

Фазовый спектр:

Таблица с характеристиками сигнала:

№ п/п

Наименование параметра

Значение параметра

№ частотного отсчета

Частота, f

Круговая частота,

Абсолютная

Нормированная

Абсолютная

Нормированная

Частота компоненты спектра, имеющей максимальный уровень

0

0

0

0

0

Ширина основного лепестка по уровню 0,5

1,5

281кГц

0,0058

1764 кГц

0,0364

Ширина основного лепестка по ближайшим нулям (нулю)

8

1,5МГц

0,0312

9,42МГц

0,1962

Частота компоненты спектра, имеющей уровень, ближайший к максимальному

1

188кГц

0,0039

1154кГц

0,024

Частота компоненты, имеющей следующий уровень

2

376кГц

0,0078

2361кГц

0,04919

Частота компоненты, имеющей следующий уровень

4

753кГц

0,0156

4728кГц

0,098

Абсолютное, ед

Нормированное, ед

Нормированное, дБ

Значение максимальной компоненты

96

1

0

Значение компоненты, ближайшей по уровню к максимальной

75

0,78

-1,07

Значение следующей компоненты спектра

29

0,302

-5,2

Значение следующей компоненты спектра

10

0,104

-9,8

Задание 2.

Последовательность 4-х видеоимпульсов треугольной формы длительностью  = 6 мкс с передним фронтом бесконечной крутизны и длительностью паузы между ними 12 мкс.

Код программы:

clear; % очищаем память

t0=0; % начало импульса в момент времени 0 с.

Fs=10e6; % частота дискретизации 10 МГц

tfront=6e-6; % длительность каждого фронта 6 мкс

dt=tfront*2; % интервалы по бокам = длит. импульса

t=t0-dt:1/Fs:t0+2*tfront+dt; % вектор дискретных значений времени t(n)

for i=1:numel(t) % цикл по отсчетам времени (с определением максимального значения переменной цикла равной размеру массива по времени)

if t(i)<=t0 % импульс еще не начался

u(i)=0; % амплитуда равна нулю

elseif t(i)==t0 % начался восходящий фронт

u(i)=1; % амплитуда равна 1

elseif t(i)<(t0+tfront) % нисходящий фронт

u(i)=1-t(i)/tfront; % амплитуда линейно убывает

elseif t(i)>=(t0+tfront) % импульс закончился

u(i)=0; % амплитуда равна нулю.

end; % конец условного блока

end; % конец цикла

N=4; % число импульсов

Fsled =56e3; % частота следования

t = 0:1/Fs:N/Fsled; % вектор отсчетов времени

d = 0:1/Fsled:N/Fsled; % вектор отсчетов времени, в которых

% имеет место начало нового импульса

p=u; % переобозначаем переменные (вектор отсчетов трапецеидального радиоимпульса)

u = pulstran(t,d,p,Fs); % получаем последовательность

axis tight; % масштаб такой, чтобы вошел весь диапазон значений по обеим осям

plot(t,u); % график сигнала

title('Signal u(n)'); % заголовок графика

xlabel('time, t=nT=n/Fs (n max=N), [s]'); % надписи по горизонтальной оси

ylabel('u(n), [V]'); % надписи по вертикальной оси

ylim([-0.1 1.1]) %масштаб по оси ординат (минимальное и максимальное значение)

grid on % добавление сетки

Nfft=2^nextpow2(length(u)); % ближайшая к числу отсчетов степень двойки

scompl=fft(u,Nfft); % комплексный спектр сигнала

s=abs(scompl); % амплитудный спектр сигнала

phi=180/pi*angle(scompl); % фазовый спектр сигнала

figure; % создание нового окна

f =0:Nfft-1; % вектор отсчетов нормированной частоты для построения ДПФ

f=(f/(Nfft-1))*Fs; % вектор отсчетов частоты для ДПФ

stem(f,s); % отображение амплитудного спектра

title('Amplitude spectre, abs(scompl(f))');

xlabel('Number, n');

ylabel('amplitude s(f), [V]');

grid on % добавление сетки

figure;

phi=unwrap(phi); % сглаживаем график фазового спектра

plot(f,phi); % построение фазового спектра

title('Phase spectre, angle(scompl(f))');

xlabel('Number, n');

ylabel('angle s(f), [degree]');

grid on % добавление сетки

Пояснения к коду:

Берем за основу скрипт формирования одиночного треугольного видеоимпульса. Для создания бесконечной крутизны переднего фронта, меняем цикл программы на свой, в начальный момент времени амплитуда импульса равна единице, в конечный нулю:

for i=1:numel(t) % цикл по отсчетам времени (с определением максимального значения переменной цикла равной размеру массива по времени)

if t(i)<=t0 % импульс еще не начался

u(i)=0; % амплитуда равна нулю

elseif t(i)==t0 % начался восходящий фронт

u(i)=1; % амплитуда равна 1

elseif t(i)<(t0+tfront) % нисходящий фронт

u(i)=1-t(i)/tfront; % амплитуда линейно убывает

elseif t(i)>=(t0+tfront) % импульс закончился

u(i)=0; % амплитуда равна нулю.

end; % конец условного блока

end; % конец цикла

Затем для формирование последовательности из 4-х импульсов добавляем:

N=4; % число импульсов

Fsled =56e3; % частота следования

t = 0:1/Fs:N/Fsled; % вектор отсчетов времени

d = 0:1/Fsled:N/Fsled; % вектор отсчетов времени, в которых

% имеет место начало нового импульса

p=u; % переобозначаем переменные (вектор отсчетов трапецеидального радиоимпульса)

u = pulstran(t,d,p,Fs); % получаем последовательность

Где Fsled – частота следования импульсов, которая равна единице, деленной на длительность импульса + длительность паузы.