NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

clc
clear
disp('% ЛР №10. ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ (часть 2)')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')
DATA=0;

%!!! Введите свой вариант
21 4000 1.21 2.42 500 750
Nb = 21, N = 64, Fs = 4000, A1 = 1.21, A2 = 2.42, f1 = 500, f2 = 750
disp('%')
disp('%')
disp('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.1. ПРОВЕРКА РАВЕНСТВА ПАРСЕВАЛЯ')
n = 0:(N-1); % ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ
k = 0:(N-1); % ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА
w1 = 2*pi*f1/Fs; w2 = 2*pi*f2/Fs; % НОРМИРОВАННЫЕ ЧАСТОТЫ ДИСКРЕТНЫХ ГАРМОНИК (РАД)
x = A1*cos(w1*n)+A2*cos(w2*n); % ПОСЛЕДОВАТЕЛЬНОСТЬ(ПЕРИОД N)
X = fft(x); % ДПФ ПОСЛЕДОВАТЕЛЬНОСТИ
E1 = sum(x.^2); % ЭНЕРГИЯ ПОСЛЕДОВАТЕЛЬНОСТИ, ВЫЧИСЛЕННАЯ ПО ЕЕ ОТСЧЕТАМ
E2 = (1/N)*sum(abs(X).^2); % ЭНЕРГИЯ ПОСЛЕДОВАТЕЛЬНОСТИ, ВЫЧИСЛЕННАЯ ПО ОТСЧЕТАМ ДПФ
disp('%')
disp('%')
disp('% Для вывода левой (E1) и правой (E2) частей РАВЕНСТВА ПАРСЕВАЛЯ нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp([' E1 = ',num2str(E1),' E2 = ' num2str(E2)])
disp('%')
disp('%')
disp('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.2. ИССЛЕДОВАНИЕ ЭФФЕКТА РАСТЕКАНИЯ СПЕКТРА ДЛЯ ОДНОЙ ДИСКРЕТНОЙ ГАРМОНИКИ')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')

% !!! Введите свой вариант

M = 71

n = 0:(N-1); % ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ (ПЕРИОД N)
k = 0:(N-1); % ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА (ПЕРИОД N)
w1 = 2*pi*f1/Fs; % НОРМИРОВАННАЯ ЧАСТОТА (РАД)
x_N = A1*cos(w1*n); % ПОСЛЕДОВАТЕЛЬНОСТЬ (ПЕРИОД N)
X_N = fft(x_N); % ДПФ ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД N)
MOD_N = (2/N)*abs(X_N); % АМПЛИТУДНЫЙ СПЕКТР ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД N)
MOD_N(1) = (1/N)*abs(X_N(1));
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
disp('%')
disp('%')
disp('% Для вывода ЧИСЛА ПЕРИОДОВ дискретной гармоники С ЧАСТОТОЙ f1 нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp(['N = ',num2str(N),' --> P_N = ' num2str(P_N)])
disp(['M = ',num2str(M),' --> P_M = ' num2str(P_M)])
disp('%')
disp('%')
disp('% Для вывода ГРАФИКОВ АМПЛИТУДНЫХ СПЕКТРОВ нажмите <ПРОБЕЛ>')
pause
figure('Name','Amplitude Spectrum','NumberTitle', 'off')
subplot(2,1,1), stem(k,MOD_N,'MarkerSize',3), grid, xlabel('k')
title(strcat(['Amplitude Spectrum of the Periodic Sequence N = ',num2str(N)]))
subplot(2,1,2), stem(k1,MOD_M,'MarkerSize',3), grid, xlabel('k')
title(strcat(['Amplitude Spectrum of the Periodic Sequence M = ',num2str(M)]))
disp('%')
disp('%')
disp('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.3. ИССЛЕДОВАНИЕ ВОЗМОЖНОСТИ УМЕНЬШЕНИЯ РАСТЕКАНИЯ СПЕКТРА С ПОМОЩЬЮ ОКНА')
win_M = hamming(M)'; % ОКНО ХЭММИНГА — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ M
xw_M = x_M.*win_M; % ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ
XW_M = fft(xw_M); % ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
MODW_M =(2/M)*abs(XW_M); % АМПЛИТУДНЫЙ СПЕКТР ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
MODW_M(1) =(1/M)*abs(XW_M(1));
disp('%')
disp('%')
disp('% Для вывода ГРАФИКОВ АМПЛИТУДНЫХ СПЕКТРОВ ДО и ПОСЛЕ применения ОКНА нажмите <ПРОБЕЛ>')
pause
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_M,'MarkerSize',3), grid, xlabel('k')
title(strcat(['Amplitude spectrum with Hamming Window M = ',num2str(M)]))
disp('%')
disp('%')
disp('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.4. ИССЛЕДОВАНИЕ ЭФФЕКТА РАСТЕКАНИЯ СПЕКТРА ДЛЯ СУММЫ ДВУХ ДИСКРЕТНЫХ ГАРМОНИК')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')

% !!! Введите свой вариант
550 802.50
f1_1 = 550, f2_1 = 802.50

n = 0:(N-1); % ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ
k = 0:(N-1); % ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА
w1_1 = 2*pi*f1_1/Fs; w2_1 = 2*pi*f2_1/Fs; % НОРМИРОВАННЫЕ ЧАСТОТЫ ДИСКРЕТНЫХ ГАРМОНИК (РАД)
x1 = A1*cos(w1_1*n)+A2*cos(w2_1*n); % ПОСЛЕДОВАТЕЛЬНОСТЬ (ПЕРИОД N)
X1 = fft(x1); % ДПФ ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД N)
MOD1 = (2/N)*abs(X1); % АМПЛИТУДНЫЙ СПЕКТР ПОСЛЕДОВАТЕЛЬНОСТИ
MOD1(1) = (1/N)*abs(X1(1));
P1_1 = N*f1_1/Fs; % ЧИСЛО ПЕРИОДОВ ДИСКРЕТНОЙ ГАРМОНИКИ С ЧАСТОТОЙ f1_1 НА ПЕРИОДЕ ПОСЛЕДОВАТЕЛЬНОСТИ N
P2_1 = N*f2_1/Fs; % ЧИСЛО ПЕРИОДОВ ДИСКРЕТНОЙ ГАРМОНИКИ С ЧАСТОТОЙ f2_1 НА ПЕРИОДЕ ПОСЛЕДОВАТЕЛЬНОСТИ N
disp('%')
disp('%')
disp('% Для вывода ЧИСЛА ПЕРИОДОВ дискретных гармоник С ЧАСТОТАМИ f1_1 и f2_1 нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp([' f1_1 = ',num2str(f1_1),' --> P1_1 = ' num2str(P1_1)])
disp([' f2_1 = ',num2str(f2_1),' --> P2_1 = ' num2str(P2_1)])
win_N = hamming(N)'; % ОКНО ХЭММИНГА — ВЕКТОР-СТОЛБЕЦ ДЛИНЫ N
xw1 = x1.*win_N; % ПОСЛЕДОВАТЕЛЬНОСТЬ, ВЗВЕШЕННАЯ ОКНОМ (ПЕРИОД N)
XW1 = fft(xw1); % ДПФ ВЗВЕШЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ (ПЕРИОД N)
MODW1 =(2/N)*abs(XW1); % АМПЛИТУДНЫЙ СПЕКТР ПОСЛЕДОВАТЕЛЬНОСТИ
MODW1(1) =(1/M)*abs(XW1(1));
disp('%')
disp('%')
disp('% Для вывода ГРАФИКОВ АМПЛИТУДНЫХ СПЕКТРОВ ДО и ПОСЛЕ применения ОКНА нажмите <ПРОБЕЛ>')
pause
figure('Name','Reducing Spectrum Leakage with the help of Window Functions','NumberTitle', 'off')
subplot(2,1,1), stem(k,MOD1,'MarkerSize',3), grid, xlabel('k')
title(strcat(['Amplitude spectrum without windowing N = ',num2str(N)]))
subplot(2,1,2), stem(k,MODW1,'MarkerSize',3), grid, xlabel('k')
title(strcat(['Amplitude spectrum with Hamming Window N = ',num2str(N)]))
disp('%')
disp('%')
disp('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.5. УЛУЧШЕНИЕ РАЗЛИЧЕНИЯ ДИСКРЕТНЫХ ГАРМОНИК С БЛИЗКО РАСПОЛОЖЕННЫМИ ЧАСТОТАМИ')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')

% !!! Введите свой вариант
525.00 593.75
f1_2 = 525.00, f2_2 = 593.75

disp('%')
disp('%')
disp('% Для вывода ПЕРИОДА ПОСЛЕДОВАТЕЛЬНОСТИ и')
disp('% ЧАСТОТ ГАРМОНИК нажмите <ПРОБЕЛ>')
disp('%')
disp('%')
disp([' N = ',num2str(N)])
disp([' f1_2 = ',num2str(f1_2),' f2_2 = ' num2str(f2_2)])
Delta_N = Fs/N; % РАЗРЕШЕНИЕ ПО ЧАСТОТЕ
Delta_f = abs(f1_2-f2_2); % РАССТОЯНИЕ МЕЖДУ ЧАСТОТАМИ
L = ceil(Fs/(Delta_f-Delta_N)); % ВЫБРАННАЯ ДЛИНА L
Delta_L = Fs/L; % ПЕРИОД ДИСКРЕТИЗАЦИИ ПО ЧАСТОТЕ ПРИ ДЛИНЕ L
disp('%')
disp('%')
disp('% Для вывода РАЗРЕШЕНИЯ ПО ЧАСТОТЕ Delta_N,')
disp('% РАССТОЯНИЯ между ЧАСТОТАМИ Delta_f,')
disp('% ДЛИНЫ L последовательности')
disp('% и ПЕРИОДА ДИСКРЕТИЗАЦИИ ПО ЧАСТОТЕ Delta_L нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp([' Delta_N = ',num2str(Delta_N)])
disp([' Delta_f = ',num2str(Delta_f)])
disp([' L = ',num2str(L)])
disp([' Delta_L = ',num2str(Delta_L)])
disp('%')
disp('%')
n = 0:(N-1); % ДИСКРЕТНОЕ НОРМИРОВАННОЕ ВРЕМЯ
w1_2 = 2*pi*f1_2/Fs; w2_2 = 2*pi*f2_2/Fs; % НОРМИРОВАННЫЕ ЧАСТОТЫ
x2 = A1*cos(w1_2*n)+A2*cos(w2_2*n); % КОНЕЧНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ
X2 = fft(x2); % ДПФ КОНЕЧНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ДЛИНЫ N
MOD2 = abs(X2); % МОДУЛЬ ДПФ
X2_L = fft(x2,L); % ДПФ КОНЕЧНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ, ДОПОЛНЕННОЙ НУЛЯМИ ДО ДЛИНЫ L
MOD2_L = abs(X2_L); % МОДУЛЬ ДПФ
disp('% Для вывода ГРАФИКОВ N-ТОЧЕЧНОГО ДПФ и МОДУЛЯ СПЕКТРАЛЬНОЙ')
disp('% ПЛОТНОСТИ, ВОССТАНОВЛЕННОЙ ПО L ТОЧКАМ, нажмите <ПРОБЕЛ>')
pause
k = 0:(N-1); % ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА ПРИ ДЛИНЕ N
k1 = 0:(L-1); % ДИСКРЕТНАЯ НОРМИРОВАННАЯ ЧАСТОТА ПРИ ДЛИНЕ L
figure('Name','Discrete Harmonic Signal with Close Frequencies','NumberTitle','off')
subplot(2,1,1), stem(k,MOD2), grid, xlabel('k')
title(strcat(['DFT Modulus N = ',num2str(N)]))
subplot(2,1,2), plot(k1,MOD2_L,'r','MarkerSize',3, 'Linewidth',2)
grid, hold on, stem(k1,MOD2_L,':'), xlabel('k')
title(strcat(['Spectral Density Modulus L = ',num2str(L)]))
L_2 = ceil(L/2); % ОСНОВНАЯ ПОЛОСА ЧАСТОТ L/2
[MODm m]= max(MOD2_L(1:(L_2))); % МАКСИМУМ MODm И ИНДЕКС m ВЕКТОРА MOD2_L (ПЕРВЫЙ ПИК)
k_1 = (m-1); f_1 = k_1*Delta_L; % ДИСКРЕТНАЯ НОРМИРОВАННАЯ И АБСОЛЮТНАЯ (Гц) ЧАСТОТЫ ПЕРВОГО ПИКА
K = ceil(L/N); % КОЛИЧЕСТВО ОТСЧЕТОВ НА ПЕРИОДЕ ДИСКРЕТИЗАЦИИ Fs/N
K1 = m+K; K2 = m+2*K-1; % НИЖНЯЯ K1 и ВЕРХНЯЯ K2 ГРАНИЦЫ ИНТЕРВАЛА ПРИ ПОИСКЕ ВТОРОГО ПИКА СПРАВА
[MODm1 m1]= max(MOD2_L(K1:K2)); % МАКСИМУМ MODm1 И ИНДЕКС m1 МОДУЛЯ ДПФ MOD2_L НА ИНТЕРВАЛЕ [K1 K2]
K3 = m-(2*K-1); K4 = m-K; % НИЖНЯЯ K3 и ВЕРХНЯЯ K4 ГРАНИЦЫ ИНТЕРВАЛА ПРИ ПОИСКЕ ВТОРОГО ПИКА СЛЕВА
[MODm2 m2]= max(MOD2_L(K3:K4)); % МАКСИМУМ MODm2 И ИНДЕКС m2 МОДУЛЯ ДПФ MOD2_L НА ИНТЕРВАЛЕ [K3 K4]
if (MODm1>MODm2)
k_2 = (K1+m1-1)-1; f_2 = k_2*Delta_L; % ДИСКРЕТНАЯ НОРМИРОВАННАЯ И АБСОЛЮТНАЯ (Гц) ЧАСТОТЫ ВТОРОГО ПИКА, ЕСЛИ ОН СПРАВА ОТ ПЕРВОГО
else
k_2 = (K3+m2-1)-1; f_2 = k_2*Delta_L; % ДИСКРЕТНАЯ НОРМИРОВАННАЯ И АБСОЛЮТНАЯ (Гц) ЧАСТОТЫ ВТОРОГО ПИКА, ЕСЛИ ОН СЛЕВА ОТ ПЕРВОГО
end
disp('%')
disp('%')
disp('% Для вывода ЧАСТОТ ГАРМОНИК нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp([' k_1 = ',num2str(k_1),' f_1 = ' num2str(f_1)])
disp([' k_2 = ',num2str(k_2),' f_2 = ' num2str(f_2)])
disp('%')
disp('%')
disp('% Определите ЧАСТОТЫ ГАРМОНИК по ГРАФИКУ')
disp('%')
disp('%')
disp('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.6. ВЫЧИСЛЕНИЕ КРУГОВОЙ СВЕРТКИ')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')

%!!! Введите свой вариант

x3 = Nb*[0.1; 0.2; 0.3; 0.4; 0.5], x4 = Nb*[0.5; 0.4; 0.3; 0.2; 0.1]

y34 = ifft(fft(x3).*fft(x4));% КРУГОВАЯ СВЕРТКА ПОСЛЕДОВАТЕЛЬНОСТЕЙ
L34 = length(y34); % ПЕРИОД КРУГОВОЙ СВЕРТКИ
disp('%')
disp('%')
disp('% Для вывода графиков ПОСЛЕДОВАТЕЛЬНОСТЕЙ и КРУГОВОЙ свертки (3 периода) нажмите <ENTER>')
pause
figure('Name','Sequences x3, x4, y34','NumberTitle', 'off')
subplot(3,1,1), stem((0:length(repmat(x3',1,3))-1), repmat(x3',1,3),'fill','Linewidth',2,'MarkerSize',3), grid
xlabel('n'), title('Periodic Sequence x3(n)')
subplot(3,1,2), stem((0:length(repmat(x4',1,3))-1), repmat(x4',1,3),'fill', 'Linewidth',2,'MarkerSize',3), grid
xlabel('n'), title('Periodic Sequence x4(n)')
subplot(3,1,3), stem((0:length(repmat(y34',1,3))-1), repmat(y34',1,3),'fill', 'Linewidth',2,'MarkerSize',3), grid, xlabel('n')
title('Periodic Sequence y34(n) — Convolution with FFT and IFFT')
disp('%')
disp('%')
disp('% Для продолжения нажмите <ENTER>')
pause
disp('%')
disp('%')
disp('% п.7. ВЫЧИСЛЕНИЕ ЛИНЕЙНОЙ СВЕРТКИ')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')

%!!! Введите свой вариант

x5 = Nb*[0.1; 0.2; 0.3], x6 = Nb*[0.3; 0.2; 0.1; 0.2; 0.3]

y56_1 = conv(x5,x6); % ЛИНЕЙНАЯ СВЕРТКА,ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ conv
y56_2 = fftfilt(x5,x6); % ЛИНЕЙНАЯ СВЕРТКА, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ fftfilt
MAX = max([length(y56_1) length(y56_2)]); % МАКСИМАЛЬНАЯ ДЛИНА СВЕРТКИ
disp('%')
disp('%')
disp('% Для вывода ГРАФИКОВ ПОСЛЕДОВАТЕЛЬНОСТЕЙ и ЛИНЕЙНОЙ свертки нажмите <ПРОБЕЛ>')
pause
figure('Name','Sequences x5, x6, y56_1, y56_2','NumberTitle', 'off')
subplot(4,1,1)
stem((0:length(x5)-1),x5,'fill','Linewidth',2,'MarkerSize',3)
grid, xlabel('n'), title('Sequence x5(n)'), xlim([0 MAX-1])
subplot(4,1,2)
stem((0:length(x6)-1),x6,'fill','Linewidth',2,'MarkerSize',3)
grid, xlabel('n'), title('Sequence x6(n)'), xlim([0 MAX-1])
subplot(4,1,3)
stem((0:length(y56_1)-1),y56_1,'fill','Linewidth',2,'MarkerSize',3)
grid, xlabel('n'), title('Sequence y56(n) — Convolution'), xlim([0 MAX-1])
subplot(4,1,4)
stem((0:length(y56_2)-1),y56_2,'fill','Linewidth',2,'MarkerSize',3)
grid, xlabel('n'), title('Sequence y56(n) — Convolution with FFT and IFFT'),
xlim([0 MAX-1])
disp('%')
disp('%')
disp('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.8. ВЫЧИСЛЕНИЕ РЕАКЦИИ ЛДС ПО ФОРМУЛЕ СВЕРТКИ')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')

%!!! Введите свой вариант

b = [0.92 1.2475 0.9200], a = [ -1.3028 0.7660], N1 = 21, N2 = 31

h = impz(b,a,N1)'; % ИМПУЛЬСНАЯ ХАРАКТЕРИСТИКА
x7 = input_1(N2); % Рассчитывается ВОЗДЕЙСТВИЕ
y7_1 = conv(x7,h); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ conv
y7_2 = fftfilt(h,x7); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ fftfilt
L=N1+N2-1; % ДЛИНА СВЕРТКИ, ВЫЧИСЛЕННОЙ С ПОМОЩЬЮ ФУНКЦИИ conv
disp('%')
disp('%')
disp('% Для вывода графиков ИХ, ВОЗДЕЙСТВИЯ и РЕАКЦИИ нажмите <ПРОБЕЛ>')
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('% Для продолжения нажмите <ПРОБЕЛ>')
pause
disp('%')
disp('%')
disp('% п.9. ВЫЧИСЛЕНИЕ РЕАКЦИИ ЛДС МЕТОДОМ ПЕРЕКРЫТИЯ С НАКОПЛЕНИЕМ')
disp('%')
disp('%')
disp('% Введите ИСХОДНЫЕ ДАННЫЕ')
%!!! Введите свой вариант

N3 = 201

x8 = input_1(N3); % ВОЗДЕЙСТВИЕ
y8_1 = fftfilt(h,x8); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ fftfilt
y8_2 = fftfilt(h,x8,N1); % РЕАКЦИЯ, ВЫЧИСЛЕННАЯ С ПОМОЩЬЮ ФУНКЦИИ fftfilt МЕТОДОМ НАКОПЛЕНИЯ С ПЕРЕКРЫТИЕМ
disp('%')
disp('%')
disp('% Для вывода ГРАФИКОВ ВОЗДЕЙСТВИЯ и РЕАКЦИИ нажмите <ПРОБЕЛ>')
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('% РАБОТА ЗАВЕРШЕНА')
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.