Добавил:
t.me Фулл всегда есть! А если нет, то Вы плохо его ищите! ИиКГ, СКДИКТ, ОКИТПЭС и тд https://t.me/whitedevil752 Так же веду разработку КД (конструкторской документации) согласно ГОСТ. Имеется опыт работы при производстве на одном из ведущих в области радиэлектроники предприятии. Пишите) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

цос 2сем / dz / indiv_sublime

.m
Скачиваний:
3
Добавлен:
13.01.2025
Размер:
21 Кб
Скачать
clc
clear 
close all
%%%%%% Исходные данные %%%%%%
Nbr =input("Вставьте номер бригады: "); 		%% Номер бригады
N =  64                                   		%% Период (длина) последовательности 
Fs = 2000*(mod(Nbr,5)+1)                		%% Частота дискретизации
A1 = 1+0.01*Nbr                    			%% Амплитуды дискретных гармоник 
A2 = 2*A1									    %% Амплитуды дискретных гармоник 
f1 = Fs/4										%% Частоты дискретных гармоник 
f2 = 1.5*f1									%% Частоты дискретных гармоник
M =  71										%% Период последовательности
f11 =1.1*f1									%% Частоты дискретных гармоник
f21 =1.07*f2									%% Частоты дискретных гармоник
f12 =1.05*f1									%% Частоты дискретных гармоник
df = Fs/N										%% Частоты дискретных гармоник
f22 = f12+df
x3 = Nbr*[0.1, 0.2, 0.3, 0.4, 0.5]				%% Периодическая последовательность
x4 = Nbr*[0.5, 0.4, 0.3, 0.2, 0.1]				%% Периодическая последовательность
x5 = Nbr*[0.1, 0.2, 0.3]						%% Периодическая последовательность
x6 = Nbr*[0.3, 0.2, 0.1, 0.2, 0.3]   			%% Периодическая последовательность
b0 = 0.5+0.02*Nbr								%% Коэффициенты числителя передаточной функции
b1 = b0*(-1)^(Nbr+1)*(0.982+0.0178)*Nbr		%% Коэффициенты числителя передаточной функции
b2 = b0*(0.8+0.2*(mod(Nbr,5)))					%% Коэффициенты числителя передаточной функции
b =  [b0, b1, b2]
a0 = 1											%% Коэффициенты знаменателя передаточной функции
a1 = (-1)^(Nbr)*(0.778+0.025)*Nbr	 			%% Коэффициенты знаменателя передаточной функции
a2 = 0.64+0.006*Nbr							%% Коэффициенты знаменателя передаточной функции
a =  [a0, a1, a2]
N1 = mod(Nbr,10)+20							%% Длина ИХ
N2 = mod(Nbr,10)+30								%% Длина воздействия
N3 = mod(Nbr,10)+200					 		%% Длина воздействия

%% 1.	Исследование эффекта растекания спектра %%
N= N+input("введите значение для изменения периода(длинны) (оставьте 0 если изменение не требуется): ");
T= 1/Fs;
f = 1/T + input("введите значение для изменения частоты (оставьте 0 если изменение не требуется): ");
n = 0:(N-1); 									% ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ
x = A1*cos(2*pi*f*n*T);
w1 = 2*pi*f1/Fs; w2 = 2*pi*f2/Fs; 				% НОРМИРОВАННЫЕ ЧАСТОТЫ ДИСКРЕТНЫХ ГАРМОНИК (РАД)
k = 0:(N-1); 									% ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА
X = fft(x); 									% ДПФ ПЕРИОДИЧЕСКОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
MOD = (2/N)*abs(X); 							% АМПЛИТУДНЫЙ СПЕКТР ПЕРИОДИЧЕСКОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
MOD(1) = (1/N)*abs(X(1));

%% график последовательности
figure('Name','Periodic Sequence','NumberTitle','off') 
stem(n,x, 'MarkerSize',3,'Linewidth',2) 
grid, xlabel('n') 
ylabel('x(n)'), title(strcat(['Periodic Sequence x(n) N = ',num2str(N)])) 
%% график амплитудного спектра
figure('Name','Amplitude Spectrum','NumberTitle', 'off') 
stem(k,MOD,'MarkerSize',3,'Linewidth',2), grid 
xlabel('k'), ylabel('1/N|X(k)|') 
title(strcat(['Amplitude Spectrum of the Periodic Sequence N = ',num2str(N)])) 


%% НЕОБХОДИМ ПОРОГ, БЕЗ НЕГО ПРИМЕНЕНИЕ ОКНА МОЖЕТ ДОБАВИТЬ ДОПОЛНИТЕЛЬНЫЕ СОСТАВЛЯЮЩИЕ
P=N*f/Fs
PP= floor(P);
%% НЕОБХОДИМ ПОРОГ, БЕЗ НЕГО ПРИМЕНЕНИЕ ОКНА МОЖЕТ ДОБАВИТЬ ДОПОЛНИТЕЛЬНЫЕ СОСТАВЛЯЮЩИЕ

%% УСЛОВИЕ РАБОТАЕТ ПУТЕМ ВЫЧИТАНИЯ ИЗ ИСХОДНОГО P ОКРУГЛЕННОГО P (PP). ЕСЛИ P НЕ ЦЕЛОЕ, ЕСТЬ РАСТЕКАНИЕ
if P-PP == 0 
	disp('Растекания нет');
else
	disp('Растекание есть');
	M=N;
	n1 = 0:(M-1); 								% ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ (ПЕРИОД M)
	k1 = 0:(M-1); 								% ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА (ПЕРИОД M)
	x_M = A1*cos(w1*n1);						% ПОСЛЕДОВАТЕЛЬНОСТЬ (ПЕРИОД M)
	X_M = fft(x_M); 							% ДПФ ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД M)
	MOD_M = (2/M)*abs(X_M); 					% АМПЛИТУДНЫЙ СПЕКТР ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД M)
	MOD_M(1) = (1/M)*abs(X_M(1)); 
	P_N = N*f1/Fs; 								% ЧИСЛО ПЕРИОДОВ ДИСКРЕТНОЙ ГАРМОНИКИ С ЧАСТОТОЙ f1 НА ПЕРИОДЕ ПОСЛЕДОВАТЕЛЬНОСТИ N
	P_M = M*f1/Fs; 								% ЧИСЛО ПЕРИОДОВ ДИСКРЕТНОЙ ГАРМОНИКИ С ЧАСТОТОЙ f1 НА ПЕРИОДЕ ПОСЛЕДОВАТЕЛЬНОСТИ M

	%%WIN(:,1) = hann(N); 
	%%WIN(:,2) = blackman(N); 
	%%WIN(:,3) = nuttallwin(N), 
	%%WIN(:,4) = flattopwin(N);

	%% Окно хэннинга
		win_hann = hann(M)';					% ОКНО хэннинга — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_hann = x_M.*win_hann; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_hann = fft(xw_hann); 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_hann =(2/M)*abs(XW_hann); 			% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_hann(1) =(1/M)*abs(XW_hann(1)); 

		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions Хэннинг','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_hann,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))
	%% Окно блэкмена
		win_black = blackman(M)'; 				% ОКНО блэкмена — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_black = x_M.*win_black; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_black = fft(xw_black); 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_black =(2/M)*abs(XW_black); 		% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_black(1) =(1/M)*abs(XW_black(1)); 
		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions черный мужик','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_black,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))
	%% Окно нуттелла вкусняшка
		win_nutt = nuttallwin(M)'; 				% ОКНО нуттелла — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_nutt = x_M.*win_nutt; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_nutt = fft(xw_nutt);	 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_nutt =(2/M)*abs(XW_nutt); 			% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_nutt(1) =(1/M)*abs(XW_nutt(1)); 
		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions этим можно брать и обмазываться (нуттелла)','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_nutt,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))
	%% Окно флэттоп
		win_flat = flattopwin(M)'; 				% ОКНО флэттоп — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_flat = x_M.*win_flat; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_flat = fft(xw_flat); 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_flat =(2/M)*abs(XW_flat);	 		% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_flat(1) =(1/M)*abs(XW_flat(1)); 
		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions флэттоп','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_flat,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))

end


disp('% Для вывода второго пункта задания нажми enter') 
pause 
%% 2.	Улучшение различения дискретных гармоник с близко расположенными частотами
N_2=2*N;
T = 1/Fs;
f1 = 0.275*Fs; 
f2 = 0.2875*Fs;
n = 0:(N_2-1); 									% ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ
x = A1*cos(2*pi*f1*n*T)+A2*cos(2*pi*f2*n*T);
w1 = 2*pi*f1/Fs; w2 = 2*pi*f2/Fs; 				% НОРМИРОВАННЫЕ ЧАСТОТЫ ДИСКРЕТНЫХ ГАРМОНИК (РАД)
k = 0:(N_2-1); 									% ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА
X = fft(x); 									% ДПФ ПЕРИОДИЧЕСКОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
MOD = (2/N_2)*abs(X); 							% АМПЛИТУДНЫЙ СПЕКТР ПЕРИОДИЧЕСКОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
MOD(1) = (1/N_2)*abs(X(1));

%% график последовательности
figure('Name','Periodic Sequence','NumberTitle','off') 
stem(n,x, 'MarkerSize',3,'Linewidth',2) 
grid, xlabel('n') 
ylabel('x(n)'), title(strcat(['Periodic Sequence x(n) N = ',num2str(N2)])) 
%% график амплитудного спектра
figure('Name','Amplitude Spectrum','NumberTitle', 'off') 
stem(k,MOD,'MarkerSize',3,'Linewidth',2), grid 
xlabel('k'), ylabel('1/N|X(k)|') 
title(strcat(['Amplitude Spectrum of the Periodic Sequence N = ',num2str(N2)])) 


%% НЕОБХОДИМ ПОРОГ, БЕЗ НЕГО ПРИМЕНЕНИЕ ОКНА МОЖЕТ ДОБАВИТЬ ДОПОЛНИТЕЛЬНЫЕ СОСТАВЛЯЮЩИЕ
P=N_2*f1/Fs
P2=N_2*f2/Fs
PP= floor(P);
%% НЕОБХОДИМ ПОРОГ, БЕЗ НЕГО ПРИМЕНЕНИЕ ОКНА МОЖЕТ ДОБАВИТЬ ДОПОЛНИТЕЛЬНЫЕ СОСТАВЛЯЮЩИЕ

%% УСЛОВИЕ РАБОТАЕТ ПУТЕМ ВЫЧИТАНИЯ ИЗ ИСХОДНОГО P ОКРУГЛЕННОГО P (PP). ЕСЛИ P НЕ ЦЕЛОЕ, ЕСТЬ РАСТЕКАНИЕ
if P-PP == 0 
	disp('Растекания нет');
else
	disp('Растекание есть');
	M=N_2;
	n1 = 0:(M-1); 								% ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ (ПЕРИОД M)
	k1 = 0:(M-1); 								% ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА (ПЕРИОД M)
	x_M = A1*cos(w1*n1)+A2*cos(w2*n1);						% ПОСЛЕДОВАТЕЛЬНОСТЬ (ПЕРИОД M)
	X_M = fft(x_M); 							% ДПФ ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД M)
	MOD_M = (2/M)*abs(X_M); 					% АМПЛИТУДНЫЙ СПЕКТР ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД M)
	MOD_M(1) = (1/M)*abs(X_M(1)); 
	P_N = N_2*f1/Fs; 								% ЧИСЛО ПЕРИОДОВ ДИСКРЕТНОЙ ГАРМОНИКИ С ЧАСТОТОЙ f1 НА ПЕРИОДЕ ПОСЛЕДОВАТЕЛЬНОСТИ N
	P_M = M*f1/Fs; 								% ЧИСЛО ПЕРИОДОВ ДИСКРЕТНОЙ ГАРМОНИКИ С ЧАСТОТОЙ f1 НА ПЕРИОДЕ ПОСЛЕДОВАТЕЛЬНОСТИ M

	%%WIN(:,1) = hann(N); 
	%%WIN(:,2) = blackman(N); 
	%%WIN(:,3) = nuttallwin(N), 
	%%WIN(:,4) = flattopwin(N);

	%% Окно хэннинга
		win_hann = hann(M)';					% ОКНО хэннинга — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_hann = x_M.*win_hann; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_hann = fft(xw_hann); 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_hann =(2/M)*abs(XW_hann); 			% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_hann(1) =(1/M)*abs(XW_hann(1)); 

		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions Хэннинг','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_hann,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))
	%% Окно блэкмена
		win_black = blackman(M)'; 				% ОКНО блэкмена — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_black = x_M.*win_black; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_black = fft(xw_black); 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_black =(2/M)*abs(XW_black); 		% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_black(1) =(1/M)*abs(XW_black(1)); 
		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions черный мужик','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_black,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))
	%% Окно нуттелла вкусняшка
		win_nutt = nuttallwin(M)'; 				% ОКНО нуттелла — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_nutt = x_M.*win_nutt; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_nutt = fft(xw_nutt);	 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_nutt =(2/M)*abs(XW_nutt); 			% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_nutt(1) =(1/M)*abs(XW_nutt(1)); 
		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions этим можно брать и обмазываться (нуттелла)','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_nutt,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))
	%% Окно флэттоп
		win_flat = flattopwin(M)'; 				% ОКНО флэттоп — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
		xw_flat = x_M.*win_flat; 				% ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
		XW_flat = fft(xw_flat); 				% ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_flat =(2/M)*abs(XW_flat);	 		% АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
		MODW_flat(1) =(1/M)*abs(XW_flat(1)); 
		
		figure('Name','Reducing Spectrum Leakage with the help of Window Functions флэттоп','NumberTitle', 'off') 
		subplot(2,1,1), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum without windowing M = ',num2str(M)])) 
		subplot(2,1,2), stem(k1,MODW_flat,'MarkerSize',3), grid, xlabel('k') 
		title(strcat(['Amplitude spectrum with Window M = ',num2str(M)]))

end

disp('% Для вывода третьего пункта задания нажми enter') 
pause 
%% 3.   Вычисление круговой свёртки %%
x1 = [0, 0.25, 0.5, 0.75 ,1]; % ПЕРВАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ
x2 = [0, 0.5, 1, 0.5, 0]; % ВТОРАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ
y12 = ifft(fft(x1).*fft(x2));% КРУГОВАЯ СВЕРТКА ПОСЛЕДОВАТЕЛЬНОСТЕЙ
L12 = length(y12); % ПЕРИОД КРУГОВОЙ СВЕРТКИ
disp('Для вывода графиков ПОСЛЕДОВАТЕЛЬНОСТЕЙ и КРУГОВОЙ свертки (3 периода) нажмите ENTER: ') 
pause 
figure('Name','Sequences x1, x2, y12','NumberTitle', 'off') 
subplot(3,1,1), stem((0:3*L12-1),... 
repmat(x1,1,3),'fill','Linewidth',2,'MarkerSize',3), grid 
xlabel('n'), title('Periodic Sequence x1(n)') 
subplot(3,1,2), stem((0:3*L12-1), repmat(x2,1,3),'fill', 'Linewidth',2,'MarkerSize',3), grid 
xlabel('n'), title('Periodic Sequence x2(n)') 
subplot(3,1,3), stem((0:3*L12-1), repmat(y12,1,3),'fill', 'Linewidth',2,'MarkerSize',3), grid, xlabel('n') 
title('Periodic Sequence y12(n) — Convolution with FFT and IFFT')


disp('% Для вывода четвертого пункта задания нажми enter') 
pause 
%% 4.	Вычисление реакции ЛДС по формуле свертки с помощью ДПФ. %%
disp('% ВЫЧИСЛЕНИЕ РЕАКЦИИ ЛДС ПО ФОРМУЛЕ СВЕРТКИ') 
disp('%') 
disp('%') 
h = impz(b,a,N1)'; % ИМПУЛЬСНАЯ ХАРАКТЕРИСТИКА
C=1;
OM=pi/8;
FF=0;
om=pi/2;
m=0.5;
ff=0;
x7 = C.*(1+m.*cos(OM.*n+FF)).*cos(om.*n+ff); % ВОЗДЕЙСТВИЕ
y7_1 = conv(x7,h); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ conv
y7_2 = fftfilt(h,x7); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ fftfilt
L=N1+N2-1; % ДЛИНА СВЕРТКИ, ВЫЧИСЛЕННОЙ С ПОМОЩЬЮ ФУНКЦИИ conv
disp('%') 
disp('%') 
disp('% Для вывода графиков ИХ, ВОЗДЕЙСТВИЯ и РЕАКЦИИ нажмите <ENTER>') 
pause 
figure('Name','Impulse Response, Input and Output Signals','NumberTitle', 'off') 
subplot(4,1,1) 
stem(0:length(h)-1,h,'Linewidth',2,'MarkerSize',3), grid, 
xlabel('n'), title('Impulse Response h(n)'), xlim([0 L-1]) 
subplot(4,1,2) 
stem(0:length(x7)-1,x7,'Linewidth',2,'MarkerSize',3), grid 
xlabel('n'), title('Input Signal x7(n)'), xlim([0 L-1]) 
subplot(4,1,3) 
stem(0:length(y7_1)-1,y7_1,'Linewidth',2,'MarkerSize',3), 
grid 
xlabel('n'), title('Output Signal y7(n) — Convolution'), xlim([0 L-1]) 
subplot(4,1,4) 
stem(0:length(y7_2)-1,y7_2,'Linewidth',2,'MarkerSize',3), grid 
xlabel('n'), title('Output Signal y7(n) — Convolution with FFT and IFFT'), 
xlim([0 L-1]) 
disp('%') 
disp('%') 
disp('% Для вывода пятого пункта задания нажми enter ') 
pause 
disp('%') 
disp('%') 
%% 5.	Вычисление реакции ЛДС методом перекрытия с накоплением.%%
disp('%ВЫЧИСЛЕНИЕ РЕАКЦИИ ЛДС МЕТОДОМ ПЕРЕКРЫТИЯ С НАКОПЛЕНИЕМ') 
disp('%') 
disp('%') 
n = 0:(4*N-1)
x8 = C.*(1+m.*cos(OM.*n+FF)).*cos(om.*n+ff); % ВОЗДЕЙСТВИЕ
y8_1 = fftfilt(h,x8); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ fftfilt
y8_2 = fftfilt(h,x8,N1); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ fftfilt МЕТОДОМ НАКОПЛЕНИЯ С ПЕРЕКРЫТИЕМ
disp('%') 
disp('%') 
disp('% Для вывода ГРАФИКОВ ВОЗДЕЙСТВИЯ и РЕАКЦИИ нажмите <ENTER>') 
pause 
figure('Name','Impulse Response, Input and Output Signals — Overlap-add method','NumberTitle', 'off') 
subplot(4,1,1) 
stem(0:length(h)-1,h,'MarkerSize',3), grid 
xlabel('n'), title('Impulse Response h(n)'), xlim([0 N3-1]) 
subplot(4,1,2), stem(0:length(x8)-1,x8,'MarkerSize',3), grid 
xlabel('n'), title('Input Signal x8(n)') 
subplot(4,1,3),stem(0:length(y8_1)-1,y8_1,'MarkerSize',3), grid 
xlabel('n') 
title('Output Signal y8(n) — Convolution with FFT and IFFT') 
subplot(4,1,4), stem(0:length(y8_2)-1,y8_2,'MarkerSize',3), grid 
xlabel('n') 
title('Output Signal y8(n) — Convolution with Overlap-add method') 
disp('%') 
disp('%') 
disp('% РАБОТА ЗАВЕРШЕНА') 
Соседние файлы в папке dz