Последнее сообщение от BaLdeJ в :
Видео отчет по лабораторной работе))
Бесплатно создать живой форум для общения, сайта, игр!
Ведущий российский сервис бесплатных форумов ЖивыеФорумы.ру
Удобные, многофункциональные и надёжные форумы бесплатно.
|
|
Видео отчет по лабораторной работе))
Видео отчет по лабораторной работе)))
Видео отчет по лабораторной работе)))
Здравствуйте!
Спасибо. Ваше письмо дошло. Очередь проверки сейчас (04.12.19, 11:43) как раз находится на 30 ноября. Перед вами 4 к.р. на учебном портале и одна на почте. Обычный срок ожидания проверки - 1 неделя. Возрастание длины очереди проверки к концу семестра явление сезонное и неизбежное.
Всем доброго времени суток и с наступившими праздниками!
В статье пойдёт речь о построении графиков в MATLAB для моей курсовой по дисциплине радиотехнические цепи и сигналы. Никаких мегакрутых и инновационных алгоритмов и тайных знаний здесь нет. Статья предназначена для помощи студентам с потока в оформлении курсовой работы. Итак, поехали:
Для тех, кто не хочет читать, сразу выложу свой код, а потом постараюсь подробно всё описать.
function PTC %% 1 пункт figure x=[]; y=[]; for t=-10:0.01:10 x=[x,t]; t=t/1000; y=[y,sig(t)]; end plot(x,y), grid xlabel('t, мс'); ylabel('s(t), В'); title('Сигнал'); %% Спектры figure x=[]; y=[]; subplot(2,1,1) for w=-15:0.01:15 x=[x,w]; w=w*1000; y=[y,1000*S(w)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('|S(\omega)|, В/кГц'); title('Амплитудный спектр'); %% y=[]; subplot(2,1,2) for w=-15:0.01:15 w=w*1000; y=[y,fi(w)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('\phi(\omega), \circ'); title('Фазовый спектр'); %% 2 пункт % Sп(t) figure x=[]; y=[]; T=30*10^-3; for t=-80:0.1:80 s=0; x=[x,t]; t=t/1000; for n=-10:10 s=s+sig(t-n*T); end y=[y,s]; end plot(x,y,'LineWidth' ,2),grid xlabel('t, мс'); ylabel('s_п(t), В'); title('Временная диаграмма периодического сигнала'); %% Спектры figure x=[]; y=[]; subplot(2,1,1,'xlim',[0,10]) for n=0:50 w=2*pi*n/T; %ось х мс x=[x,w/1000]; s=2/T*S(w); if n==0 s=s/2; end y=[y,s]; line([w/1000 w/1000],[0 s]); line(w/1000, s,'marker','.','markersize' ,10) end hold on plot(x,y,'--','Color',[1 0 0]); grid, xlabel('\omega, рад/мс'); ylabel('\{A_n\}, В'); title('Амплитудный спектр'); %% subplot(2,1,2,'xlim',[0,10]) for n=0:50 w=2*pi*n/T; line([w/1000 w/1000],[0 fi(w)]); line(w/1000, fi(w),'marker','.','markersize' ,10); end x=[]; y=[]; for w=0:0.01:10 x=[x,w]; w=w*1000; y=[y,fi(w)]; end hold on plot(x,y,'--','Color',[1 0 0]); grid xlabel('\omega, рад/мс'); ylabel('\{\phi_n\}, \circ'); title('Фазовый спектр'); %% Апроксимация n=10 figure x=[]; y=[]; subplot(3,1,1) for t=-15:0.01:15 x=[x,t]; t=t/1000; s=2/15; for n=1:10 w=2*pi*n/T; %ось х мс s=s+2/T*S(w)*cos(w*t+pi/180*fi(w)); end y=[y,s]; end plot(x,y) grid xlabel('t, мс'); ylabel('s_п(t), В'); title('n=10'); %% n=25 x=[]; y=[]; subplot(3,1,2) for t=-15:0.01:15 x=[x,t]; t=t/1000; s=2/15; for n=1:25 w=2*pi*n/T; %ось х мс s=s+2/T*S(w)*cos(w*t+pi/180*fi(w)); end y=[y,s]; end plot(x,y) grid xlabel('t, мс'); ylabel('s_п(t), В'); title('n=25'); %% n=50 x=[]; y=[]; subplot(3,1,3) for t=-15:0.01:15 x=[x,t]; t=t/1000; s=2/15; for n=1:50 w=2*pi*n/T; %ось х мс s=s+2/T*S(w)*cos(w*t+pi/180*fi(w)); end y=[y,s]; end plot(x,y) grid xlabel('t, мс'); ylabel('s_п(t), В'); title('n=50'); %% 3 пункт figure x=[]; y=[]; v=[]; w=20000; for t=-5:0.001:5 x=[x,t]; t=t/1000; y=[y,sig(t)*cos(w*t)]; v=[v,sig(t)]; end hold on; plot(x,y),grid plot(x,v,'--','Color',[1 0 0]) plot(x,-v,'--','Color',[1 0 0]) xlabel('t, мс'); ylabel('u(t), В'); title('Временная диаграмма непериодического радиосигнала'); %% положительные частоты figure x=[]; y=[]; subplot(2,1,1) for w=490:0.001:510 x=[x,w]; w=w*1000; y=[y,500*S(w-500000)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('|U(\omega)|, В/кГц'); title('Амплитудный спектр'); %% y=[]; subplot(2,1,2) for w=490:0.001:510 w=w*1000; y=[y,fi(w-500000)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('\phi_U(\omega), \circ'); title('Фазовый спектр'); %% отрицательные частоты figure x=[]; y=[]; subplot(2,1,1) for w=-510:0.001:-490 x=[x,w]; w=w*1000; y=[y,500*S(w+500000)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('|U(\omega)|, В/кГц'); title('Амплитудный спектр'); %% y=[]; subplot(2,1,2) for w=-510:0.001:-490 w=w*1000; y=[y,fi(w+500000)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('\phi_U(\omega), \circ'); title('Фазовый спектр'); %% 4 пункт % Sп(t) figure x=[]; y=[]; v=[]; s1=0; s2=0; w0=15000; for t=-40:0.001:40 x=[x,t]; t=t/1000; for n=-1:1 s1=s1+sig(t-n*T)*cos(w0*t); s2=s2+sig(t-n*T); end y=[y,s1]; v=[v,s2]; s1=0; s2=0; end hold on plot(x,y),grid plot(x,v,'--','Color',[1 0 0]) plot(x,-v,'--','Color',[1 0 0]) xlabel('t, мс'); ylabel('u_п(t), В'); title('Временная диаграмма периодического радиосигнала'); %% Спектры пачки радиоимпульсов figure x=[]; y=[]; subplot(2,1,1,'xlim',[490 510]) for n=-50:50 w=2*pi*n/T; %ось х мс x=[x,w/1000+500]; y=[y,1/T*S(w)]; line([w/1000+500 w/1000+500],[0 1/T*S(w)]); line(w/1000+500, 1/T*S(w),'marker','.','markersize' ,10) end hold on plot(x,y,'--','Color',[1 0 0]); grid, xlabel('\omega, рад/мс'); ylabel('\{V_n\}, В'); title('Амплитудный спектр'); %% x=[]; y=[]; subplot(2,1,2,'xlim',[490 510]) for n=-50:50 w=2*pi*n/T; %ось х мс x=[x,w/1000+500]; y=[y,fi(w)]; line([w/1000+500 w/1000+500],[0 fi(w)]); line(w/1000+500, fi(w),'marker','.','markersize' ,10); end x=[]; y=[]; for w=-10:0.01:10 x=[x,w+500]; w=w*1000; y=[y,fi(w)]; end hold on plot(x,y,'--','Color',[1 0 0]); grid xlabel('\omega, рад/мс'); ylabel('\{\psi_n\}, \circ'); title('Фазовый спектр'); %% 5 пункт %АКФ figure x=[]; y=[]; for t=-10:0.01:10 x=[x,t]; t=t/1000; y=[y,1000*R(t)]; end plot(x,y), grid xlabel('\tau, мс'); ylabel('R_s(\tau), В^2мc'); title('Автокорелляционная функция сигнала'); %% АКФ радиоимпульса figure x=[]; y=[]; for t=-10:0.01:10 x=[x,t]; t=t/1000; y=[y,1/2*1000*R(t)*cos(w0*t)]; end hold on; plot(x,y), grid x=[]; y=[]; for t=-10:0.01:10 x=[x,t]; t=t/1000; y=[y,1/2*1000*R(t)]; end plot(x,y,'--','Color',[1 0 0]); plot(x,-y,'--','Color',[1 0 0]); xlabel('\tau, мс'); ylabel('R_u(\tau), В^2мc'); title('Автокорелляционная функция радиосигнала'); %% 6 пункт % ачх фчх figure x=[]; y=[]; subplot(2,1,1) for wt=-5:0.01:5 x=[x,wt]; y=[y,(1/36*wt^2/(1+wt^2))^0.5]; end plot(x,y), grid xlabel('\omega\tau, рад'); ylabel('|H(\omega)|'); title('АЧХ'); %% y=[]; subplot(2,1,2) for wt=-5:0.01:5 y=[y,(180/pi)*(pi/2*sign(wt)-atan(wt))]; end plot(x,y), grid xlabel('\omega\tau, рад'); ylabel('\phi_H(\omega), \circ'); title('ФЧХ'); %% ИХ ПХ g1 figure x=[]; y=[]; subplot(3,1,1) for t=0:0.001:1 x=[x,t]; t=t/1000; y=[y,(-1/(6*0.0002)*sigma(t)*exp(-t/0.0002))/1000]; end plot(x,y,'LineWidth' ,2) grid xlabel('t, мс'); ylabel('h(t), мс^-1'); title('Импульсная характеристика'); %% ПХ x=[]; y=[]; subplot(3,1,2) for t=0:0.001:1 x=[x,t]; t=t/1000; y=[y,g(t)]; end plot(x,y,'LineWidth' ,2) grid xlabel('t, мс'); ylabel('g(t)'); title('Переходная характеристика'); %% Реакция на лин нар возд x=[]; y=[]; subplot(3,1,3) for t=0:0.001:1 x=[x,t]; t=t/1000; y=[y,(1/6*0.0002*(1-exp(-t/0.0002)))]; end plot(x,y,'LineWidth' ,2) grid xlabel('t, мс'); ylabel('g_1(t)'); title('g_1(t)'); %% Запаздывание figure x=[]; y=[]; for t=-2:0.001:8 x=[x,t]; t=t/1000; y=[y,sig(t-0.002)]; end plot(x,y,'LineWidth' ,2) grid xlabel('t, мс'); ylabel('s_з(t), В'); title('Запаздывающий сигнал'); %% uвх figure x=[]; y=[]; for t=-2:0.001:8 x=[x,t]; t=t/1000; s=sigma(t)-sigma(t-0.002)+sigma(t-0.004)-sigma(t-0.006); y=[y,s]; end plot(x,y,'LineWidth' ,1) grid xlabel('t, мс'); ylabel('u_{вых}(t), В'); title('Cигнал на входе цепи'); %% uвых figure x=[]; y=[]; for t=0:0.001:8 x=[x,t]; t=t/1000; s=g(t)-g(t-0.002)+g(t-0.004)-g(t-0.006); y=[y,s]; end plot(x,y,'LineWidth' ,1) grid xlabel('t, мс'); ylabel('u_{вых}(t), В'); title('Cигнал на выходе цепи'); end %% function f=S(w) t1=0.002; f=2*t1*abs(sinc(w*t1/2)*cos(w*t1)); end %% function f=fi(w) t1=0.002; f=(180/pi)*(pi/2*(1-sign(sinc(w*t1/2)*cos(w*t1)))*sign(w)-w*t1/2); end %% function f=sig(t) t1=0.002; f=(rect((t+t1/2)/t1)+rect((t-3*t1/2)/t1)); end %% function f=R(t) t1=0.002; f=(2*t1*(1-abs(t)/t1)*rect(t/(2*t1))+t1*(1-abs(abs(t)-2*t1)/t1)*rect((abs(t)-2*t1)/(2*t1))); end %% function f=g(t) f=1/6*sigma(t)-1/6*sigma(t)*(1-exp(-t/0.0002)); end %% function S=sigma(x) if x<0 S=0; else S=1; end end %% function S=rect(x) if abs(x)>0.5 S=0; end if abs(x)<0.5 S=1; end if abs(x)==0.5 S=0.5; end end %% function S=sinc(x) if x==0 S=1; else S=sin(x)/x; end end %% function S=sign(x) if x<0 S=-1; end if x>0 S=1; end if x==0 S=0; end end
Введение
Итак, вы установили MATLAB. Теперь его надо запустить.
После этого в поле Command Window нужно написать edit, чтобы открыть редактор, где и будем писать программу.
Расположение окон может быть несколько иным, но суть не меняется. Теперь будем разбираться с самой программой.
%% 1 пункт figure x=[]; y=[]; for t=-10:0.01:10 x=[x,t]; t=t/1000; y=[y,sig(t)]; end plot(x,y), grid xlabel('t, мс'); ylabel('s(t), В'); title('Сигнал');
figure нужен для создания окна, в котором и будут построены нужные графики.
Далее создаём пустые массивы x и y, которые будут содержать координаты точек.
Теперь нужно заполнить эти массивы. Для этого создадим цикл for. Конструкция t=-10:0.01:10 означает: переменная t будет меняться от -10 до 10 с шагом 0.01(по умолчанию шаг равен 1). Чем меньше шаг, тем более плавным получается график, но медленнее строится, т.к. операций становится больше.
x=[x,t] – производит добавление элемента к массиву с сохранением предыдущих. В данном примере это выглядит так:
Изначально массив пустой x=[];
1. Первая итерация - x=[-10] ;
2. x=[-10 -9,99];
3. x=[-10 -9,99 -9,98];
…
n. x=[-10 -9,99 -9,98 … 9,99 10];
t=t/1000 – рисовать будем не в секундах, а в миллисекундах. Можно этого не делать, тогда в условие цикла будет такое: t=-0.010:0.00001:0.010. От нулей рябит в глазах, плюс выше вероятность ошибки.
y=[y,sig(t)]; - заполняем массив y. sig(t) – функция, которую мы определим в конце. Она будет возвращать значение функции заданного сигнала, т.е t – это x, а sig(t) – y.
Вот как я описал sig(t):
function f=sig(t) t1=0.002; f=(rect((t+t1/2)/t1)+rect((t-3*t1/2)/t1)); end
Аналогично ввожу функцию rect
function S=rect(x) if abs(x)>0.5 S=0; end if abs(x)<0.5 S=1; end if abs(x)==0.5 S=0.5; end end
abs(x) возвращает модуль числа x.
Команда plot(x, y) соответствует построению функции, когда одномерный массив x соответствует значениям аргумента, а одномерный массив y - значениям функции.
grid добавляет на график сетку
xlabel и уlabel – добавление подписей осей.
title – название графика
Результат работы этой части программы(нажать F5 для запуска)
Можно сохранять картинку. Жмём на соответствующую иконку, выбираем формат bmp или jpg, сохраняем.
Аналогично рисуем спектры.
figure x=[]; y=[]; subplot(2,1,1) for w=-15:0.01:15 x=[x,w]; w=w*1000; y=[y,1000*S(w)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('|S(\omega)|, В/кГц'); title('Амплитудный спектр'); %% y=[]; subplot(2,1,2) for w=-15:0.01:15 w=w*1000; y=[y,fi(w)]; end plot(x,y), grid xlabel('\omega, рад/мс'); ylabel('\phi(\omega), \circ'); title('Фазовый спектр');
subplot(2,1,1) и subplot(2,1,2) позволяют в одном окне рисовать графики в первой и второй половине окна.
w=w*1000; - как с секундами, только в одном рад/с тысяча рад/мс
По тем же причинам перемножаем значения амплитудного спектра на 1000.
\omega – так можно напечатать символ омега малое в матлабе.
Нужно отметить, чтобы нарисовать фазовый спектр в градусах, нужно домножить всё выражение на 180/3.1415.
Как это выглядит
Переходим к следующему пункту. Далее я не буду приводить целые куски кода, поэтому советую перенести код из начала статьи в матлаб.
T – период повторения импульса.
for n=-10:10 s=s+sig(t-n*T); end
Этот цикл позволяет получить выражение для пачки импульсов из выражения непериодического сигнала. В курсовой n изменяется от минус до плюс бесконечности. Но для построения нам будет предостаточно 20 периодов(лишние всё равно не будут видны, границы графика определяется циклов for выше. Я подгонял эти границы, чтобы увидеть 5 периодов).
При построении спектральных диаграмм пришлось по-другому ограничивать эту область ( subplot(2,1,1,'xlim',[0,10]) )
Спектр периодического сигнала дискретен, для получения выражений нужно использовать связь непериодического и периодического сигналов. Для построения спектральных линий буду использовать оператор line. n в цикле for – количество этих линий. Подбирается вручную.
line([x1 x2],[y1 y2])
line([w/1000 w/1000],[0 s]) – рисует перпендикуляр от оси абсцисс.
line(w/1000, s,'marker','.','markersize' ,10) - изображает точку('marker','.'), 'markersize' ,10 –толщина точки.
hold on – позволяет строить несколько функций на одном графике.
plot(x,y,'--','Color',[1 0 0]); - рисует пунктирную линию («--»), красным цветом('Color',[r g b]).
При построении графиков нужно убедиться, что фаза выражена в радианах.
В третьем и четвёртом пунктах проводится исследования радиосигналов
w0=15000; w=20000 – частота несущей, которая будет использоваться при построении(подбирается, чтобы было наглядно)
500000 – реальная частота несущей(находим в курсовой)
Далее сложностей уже не должно возникнуть.
Удачи при выполнении курсовой!
Леонид Делов, 3 января 2019
lad_kursk@mail.ru
https://vk.com/l_deloff
Как известно-белый шум имеет нормальное распределение.
Не-а. Это не известно. Известно, что белый шум имеет равномерный спектр мощности. Мухи отдельно, котлеты отдельно.
Почему получается то, что огибающая узкополосного процесса имеет распределение Райса?
На этот вопрос вы сможете ответить сразу же как только скажете какое распределение имеет процесс на выходе П-образного фильтра? Для того, чтобы ответить на этот вопрос надо понять является ли инерционным преобразование белого шума П-образным фильтром и какой эффект имеет место при линейном инерционном преобразовании.
Спасибо большое!
спасибо
Но \(I_0(z)\) - это не просто функция Бесселя \(J_0(z)\), а модифицированная функция Бесселя. Функции Бесселя и модифицированные функции Бесселя между собой связаны:
\(I_n(z)=e^{-j\frac{\pi n}{2}}J_n(jz)\)
А код в маткад, который вам следует использовать I0(z).
Также, как и для любого сигнала. Надо описать сигнал математически и найти его спектральную плотность с использованием теорем спектрального анализа. Сигнал с амплитудной манипуляцией описывается одним из выражений (в зависимости от способа формирования):
1. \(s(t)=\sum\limits_{n=0}^{N-1}v_ns_0(t-nT)cos(\omega_0 t)\);
2. \(s(t)=\sum\limits_{n=0}^{N-1}v_ns_0(t-nT)cos(\omega_0 (t-nT))\);
где \(s_0(t)\) - прямоугольный импульс единичного размаха на интервале \([0,T]\); \(v_n\in\{0,1\}\) - кодовая последовательность; \(T\) - длительность элемента сигнала; \(N\) - количество элементов сигнала.
Спектральная плотность, например, в случае 1:
\(S(\omega)=F\left\{\sum\limits_{n=0}^{N-1}v_ns_0(t-nT)cos(\omega_0 t)\right\}=\sum\limits_{n=0}^{N-1}v_nF\left\{s_0(t-nT)cos(\omega_0 t)\right\}=...\)
Далее с использованием свойств запаздывания и смещения спектра (умножения сигнала на косинус). Обозначено \(F\{\cdot\}\) - преобразование Фурье.