Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИКТ-23 / ЛР2 ЦОС

.docx
Скачиваний:
0
Добавлен:
21.02.2024
Размер:
146.74 Кб
Скачать

Вариант 6

Задание 1:

Исходные данные

clc;clear;close all;

%пример - непрерывный сигнал и его спектр

%выбор частоты Найквиста

f0 = 2; %частота

a = 0.1; %длительность импульса (с)

T = 6*a; %временной интервал для вывода графика (c)

dt = a/50; %шаг вывода график по оси времени (с)

fb = 20; %частотный интервал вывода графика (Hz)

df = fb/401; %шаг вывода графика по частоте (Hz)

t = -T/2:dt:T/2; %дискретные моменты времени (c)

s = rectUnit(t/a).*sin(2*pi*f0*t); %вычисление сигнала

figure;

hPl=plot(t, s);

set(hPl,'LineWidth',2,'color','blue');

axis([-T/2 T/2 -1.25 1.25]);

hAx=gca;

set(hAx,'xtick',[-T/2 -T/3 -T/6 0 T/6 T/3 T/2],'FontSize',[8]);

xlabel('t (c)');

title('Signal s(t)');

grid on;

f = -fb:df:fb; %дискретные значения по частоте (Hz)

S = SpectrContin(a,f0,f); %вычисление спектра по заданной формуле

Ampl = abs(S); %вычисляем АЧХ

Re = real(S); %вычисляем действительную часть спектра

Im = imag(S); %вычисляем мнимую часть спектра

MaxSpectr = max(Ampl); %максимум для графика спектра

figure;

hPl=plot(f, Ampl);

set(hPl,'LineWidth',2,'color',[1 0 0]);

axis([-fb fb -1.25*MaxSpectr 1.25*MaxSpectr]);

hAx=gca;

set(hAx,'FontSize',[10],'xtick',[-fb -3*fb/4 -fb/2 -fb/4 0 fb/4 fb/2 3*fb/4 fb]);

xlabel('f (Hz)');

title('Spectrum A(f)');

grid on;

figure;

hPl=plot(f, Re);

set(hPl,'LineWidth',2,'color',[0.5 1 0]);

axis([-fb fb -1.2*MaxSpectr 1.2*MaxSpectr]);

hAx=gca;

set(hAx,'FontSize',[10],'xtick',[-fb -3*fb/4 -fb/2 -fb/4 0 fb/4 fb/2 3*fb/4 fb]);

xlabel('f (Hz)');

title('Spectrum ReS(f)');

grid on;

figure;

hPl=plot(f, Im);

set(hPl,'LineWidth',2,'color',[0.5 0 1]);

axis([-fb fb -1.2*MaxSpectr 1.2*MaxSpectr]);

hAx=gca;

set(hAx,'FontSize',[10],'xtick' ,[-fb -3*fb/4 -fb/2 -fb/4 0 fb/4 fb/2 3*fb/4 fb]);

xlabel('f (Hz)');

title('Spectrum ImS(f)');

grid on;

clc;clear;close all;

%пример - получение дискретного сигнала и %вычисление спектра дискретного сигнала

f0 = 2; %частота

a = 0.1; %длительность импульса (с)

F = 20; %частота Найквиста (Hz), <выбирать самим!!!>

dt = 1/(2*F); %шаг дискретизации

T = 6*a; %временной интервал для вычисления рада Фурье(c) % <выбирать самим!!!>

fb = 3*F; %частотный интервал вывода графика (Hz)

df = fb/301; %шаг вывода графика по частоте (Hz)

t = -T/2:dt:T/2; %дискретные моменты времени (c)

N1 = length(t) %проверка, чтобы число членов ряда было нечетным

if mod(N1,2) == 0

T = dt*N1;

else

T = dt*(N1+1);

end

t = -T/2:dt:T/2;

s = rectUnit(t/a).*sin(2*pi*f0*t); %вычисление дискретного сигнала

figure;

hPl=stem(t, s);

set(hPl,'LineWidth',2,'color','blue');

axis([-T/2 T/2 -1.25 1.25]);

hAx=gca;

set(hAx,'xtick',[-2*a -a 0 a 2*a],'FontSize',[8]);

xlabel('t (c)');

title('Signal s(t)');

grid on;

f = -fb:df:fb; %дискретные значения по частоте (Hz)

S = SumSd(s,F,f); %вычисление спектра дискретного сигнала

% с помощью ряда Фурье

Sc = SpectrContin(a,f0,f); %вычисление спектра непрерывного сигнала

ScSum = SumCont(a,f0,F,f); %вычисление сумму сдвинутых копий

%спектра непрерывного сигнала

Ampl = abs(S); %вычисляем АЧХ

Amplc = abs(Sc); %вычисляем АЧХ непрерывного сигнала

AmplcSum = abs(ScSum); %вычисляем АЧХ суммы сдвинутых копий

Re = real(S); %вычисляем действительную часть спектра

Im = imag(S); %вычисляем мнимую часть спектра

MaxSpectr = max(Ampl); %максимум для графика спектра

figure;

hPl=plot(f, Ampl,'r', f, Amplc-1.0*MaxSpectr,'c', f, AmplcSum-0.5*MaxSpectr,'m');

set(hPl,'LineWidth',2);

axis([-fb fb -1.25*MaxSpectr 1.25*MaxSpectr]);

hAx=gca; set(hAx,'FontSize',[10],'xtick' ,[-3*F -2*F -F 0 F 2*F 3*F]);

xlabel('f (Hz)');

title('Spectrum A(f)');

grid on;

figure;

hPl=plot(f, Re);

set(hPl,'LineWidth',2,'color',[0.5 1 0]);

axis([-fb fb -1.2*MaxSpectr 1.2*MaxSpectr]);

hAx=gca; set(hAx,'FontSize',[10],'xtick',[-3*F -2*F -F 0 F 2*F 3*F]);

xlabel('f (Hz)'); title('Spectrum ReS(f)');

grid on;

figure;

hPl=plot(f, Im);

set(hPl,'LineWidth',2,'color',[0.5 0 1]);

axis([-fb fb -1.2*MaxSpectr 1.2*MaxSpectr]);

hAx=gca;

set(hAx,'FontSize',[10],'xtick' ,[-3*F -2*F -F 0 F 2*F 3*F]);

xlabel('f (Hz)');

title('Spectrum ImS(f)');

grid on;

Задание 2

clc

clear

close all;

%% Дискретный сигнал

T = 0.3;

s1 = [0 0 0];

s2 = [0.4902 0.5560 0.5781 0.5628 0.5172 0.4492 0.3667 0.2769 0.1863 0.1003];

s3 = [0 0 0 0];

s = [s1 s2 s3];

N =length(s) % Число членов ряда Котельникова

dt = T/(N-1) % Шаг дискретизации

F = (N-1)/(2*T) % Частота Найквиста

figure;

stem(s);

grid on

%% Востановленный аналоговый сигнал

t = -T/2 : T/50 : 3*T/2;

sAnalog = SumKotel(s,F,t);

td = 0 : dt : T;

figure;

plot(t, sAnalog,'m-', td, s,'bo');

grid on

%% Востановленный аналоговый сигнал

f = -F : F/100 : F;

Sd = SumSdV(s, F, f);

figure;

plot(f,Sd,'r')

grid on

Дописываем функции

function fun = SumKotel(s,F,t)

N = length(s);

fun = 0;

T = 7.5 * 10^(-4);

dt = T/(N-1);

for n = 0:N-1

fun = fun + s(n+1)*sinc(2*F*(t-n*dt));

end

function fun = SumSdV(s,F,f)

N = length(s);

fun = 0;

for n = 0:N - 1

k = n - (N+1)/2;

fun = fun + s(n+1)*exp(-i*pi*k*f/F);

end

fun = fun/(2*F);

Рисунок 1 Аналоговый сигнал

Рисунок 2 Спектр |S_f|

Соседние файлы в папке ИКТ-23