Đề số 1: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 25; F2 = 100; Fs = 2000; n = 1:5120; xn = 1*sin(2*pi*F1*n*(1/Fs)) + 0.5*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Butterworth Fc = 50; % Hz N = 5; [B, A] = butter(N, Fc / (Fs / 2)); % 4. Biểu diễn đáp ứng tần số H(F) w = 0:0.01*pi:pi; Hw = freqz(B, A, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(B, A, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 2: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 100; F2 = 500; Fs = 5000; n = 1:5120; xn = 1*sin(2*pi*F1*n*(1/Fs)) + 1*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Butterworth Fc = 250; % Hz N = 4; [B, A] = butter(N, Fc / (Fs / 2)); % 4. Biểu diễn đáp ứng tần số H(F) w = 0:0.01*pi:pi; Hw = freqz(B, A, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(B, A, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 3: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F = 300; Fs = 2000; n = 1:5120; xn = 1*sin(2*pi*F*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Butterworth Fc = 250; % Hz N = 6; [B, A] = butter(N, Fc / (Fs / 2)); % 4. Biểu diễn đáp ứng tần số H(F) w = 0:0.01*pi:pi; Hw = freqz(B, A, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(B, A, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 4: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 75; F2 = 200; Fs = 4000; n = 1:5120; xn = 1*sin(2*pi*F1*n*(1/Fs)) + 1.5*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Chebyshev 1 Fc = 100; % Hz N = 5; Rp = 0.5; wp = 2*pi*Fc/Fs; wp_nor = wp/pi; [B, A] = cheby1(N, Rp, wp_nor); % 4. Biểu diễn đáp ứng tần số H(F) w = 0:0.01*pi:pi; Hw = freqz(B, A, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(B, A, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 5: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 100; F2 = 500; Fs = 5000; n = 1:5120; xn = 1*sin(2*pi*F1*n*(1/Fs)) + 1*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Chebyshev 1 Fc = 250; % Hz N = 5; Rp = 1; wp = 2*pi*Fc/Fs; wp_nor = wp/pi; [B, A] = cheby1(N, Rp, wp_nor); % 4. Biểu diễn đáp ứng tần số H(F) w = 0:0.01*pi:pi; Hw = freqz(B, A, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(B, A, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 6: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F = 300; Fs = 2000; n = 1:5120; xn = 1*sin(2*pi*F*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Chebyshev 1 Fc = 350; % Hz N = 6; Rp = 1.5; wp = 2*pi*Fc/Fs; wp_nor = wp/pi; [B, A] = cheby1(N, Rp, wp_nor); % 4. Biểu diễn đáp ứng tần số H(F) w = 0:0.01*pi:pi; Hw = freqz(B, A, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(B, A, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 7: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 250; F2 = 100; Fs = 5000; n = 1:5120; xn = 5*sin(2*pi*F1*n*(1/Fs)) + 2.5*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Butterworth Fc = 150; % Hz N = 7; [B, A] = butter(N, Fc / (Fs / 2)); % Biểu diễn đáp ứng tần số biên độ của H(F) w = 0:0.01*pi:pi; Hw = freqz(B, A, w); figure(3); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); % 4. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(B, A, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 5. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 8: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 50; F2 = 100; F3 = 450; Fs = 4000; n = 1:5120; xn = 5*sin(2*pi*F1*n*(1/Fs)) + 5*sin(2*pi*F2*n*(1/Fs)) + 6*sin(2*pi*F3*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Butterworth Fc = 200; % Hz N = 5; [B_butter, A_butter] = butter(N, Fc / (Fs / 2)); % Thiết kế bộ lọc thông thấp Chebyshev1 Rp_chebyshev = 2.5; % dB [B_cheby, A_cheby] = cheby1(N, Rp_chebyshev, Fc / (Fs / 2)); % 4. Biểu diễn đáp ứng tần số biên độ của hai bộ lọc w = 0:0.01*pi:pi; Hw_butter = freqz(B_butter, A_butter, w); Hw_cheby = freqz(B_cheby, A_cheby, w); figure(3); plot(w*Fs/2/pi, abs(Hw_butter), 'b', 'LineWidth', 2); hold on; plot(w*Fs/2/pi, abs(Hw_cheby), 'r', 'LineWidth', 2); legend('Butterworth', 'Chebyshev1'); title('Dap ung bien do cua bo loc'); % 5. Biểu diễn phổ của tín hiệu ra y_n trong hai trường hợp yn_butter = filter(B_butter, A_butter, xn); yn_cheby = filter(B_cheby, A_cheby, xn); figure(4); subplot(2,1,1); plot(F, abs(fft(yn_butter(1:n(end)/2))) * 1 / (0.5*n(end)), 'b', 'LineWidth', 2); title('Pho cua tin hieu y_n (Butterworth)'); subplot(2,1,2); plot(F, abs(fft(yn_cheby(1:n(end)/2))) * 1 / (0.5*n(end)), 'r', 'LineWidth', 2); title('Pho cua tin hieu y_n (Chebyshev1)'); Đề số 9: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 50; F2 = 100; F3 = 450; Fs = 4000; n = 1:5120; xn = 5*sin(2*pi*F1*n*(1/Fs)) + 5*sin(2*pi*F2*n*(1/Fs)) + 6*sin(2*pi*F3*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Butterworth Fc = 500; % Hz N = 4; [B_butter, A_butter] = butter(N, Fc / (Fs / 2)); % Thiết kế bộ lọc thông thấp Chebyshev1 Rp_chebyshev = 0.5; % dB [B_cheby, A_cheby] = cheby1(N, Rp_chebyshev, Fc / (Fs / 2)); % 4. Biểu diễn đáp ứng tần số biên độ của hai bộ lọc w = 0:0.01*pi:pi; Hw_butter = freqz(B_butter, A_butter, w); Hw_cheby = freqz(B_cheby, A_cheby, w); figure(3); plot(w*Fs/2/pi, abs(Hw_butter), 'b', 'LineWidth', 2); hold on; plot(w*Fs/2/pi, abs(Hw_cheby), 'r', 'LineWidth', 2); legend('Butterworth', 'Chebyshev1'); title('Dap ung bien do cua bo loc'); % 5. Biểu diễn phổ của tín hiệu ra y_n trong hai trường hợp yn_butter = filter(B_butter, A_butter, xn); yn_cheby = filter(B_cheby, A_cheby, xn); figure(4); subplot(2,1,1); plot(F, abs(fft(yn_butter(1:n(end)/2))) * 1 / (0.5*n(end)), 'b', 'LineWidth', 2); title('Pho cua tin hieu y_n (Butterworth)'); subplot(2,1,2); plot(F, abs(fft(yn_cheby(1:n(end)/2))) * 1 / (0.5*n(end)), 'r', 'LineWidth', 2); title('Pho cua tin hieu y_n (Chebyshev1)'); Đề số 10: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 100; F2 = 400; Fs = 5000; n = 1:5120; xn = 5*sin(2*pi*F1*n*(1/Fs)) + 5*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp Butterworth Fc = 500; % Hz N = 6; [B_butter, A_butter] = butter(N, Fc / (Fs / 2)); % Thiết kế bộ lọc thông thấp Chebyshev1 Rp_chebyshev = 1.5; % dB [B_cheby, A_cheby] = cheby1(N, Rp_chebyshev, Fc / (Fs / 2)); % 4. Biểu diễn đáp ứng tần số biên độ của hai bộ lọc w = 0:0.01*pi:pi; Hw_butter = freqz(B_butter, A_butter, w); Hw_cheby = freqz(B_cheby, A_cheby, w); figure(3); plot(w*Fs/2/pi, abs(Hw_butter), 'b', 'LineWidth', 2); hold on; plot(w*Fs/2/pi, abs(Hw_cheby), 'r', 'LineWidth', 2); legend('Butterworth', 'Chebyshev1'); title('Dap ung bien do cua bo loc'); % 5. Biểu diễn phổ của tín hiệu ra y_n trong hai trường hợp yn_butter = filter(B_butter, A_butter, xn); yn_cheby = filter(B_cheby, A_cheby, xn); figure(4); subplot(2,1,1); plot(F, abs(fft(yn_butter(1:n(end)/2))) * 1 / (0.5*n(end)), 'b', 'LineWidth', 2); title('Pho cua tin hieu y_n (Butterworth)'); subplot(2,1,2); plot(F, abs(fft(yn_cheby(1:n(end)/2))) * 1 / (0.5*n(end)), 'r', 'LineWidth', 2); title('Pho cua tin hieu y_n (Chebyshev1)'); Đề số 11: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 50; F2 = 100; F3 = 450; Fs = 4000; n = 1:5120; xn = 2*sin(2*pi*F1*n*(1/Fs)) + 2*sin(2*pi*F2*n*(1/Fs)) + 2*sin(2*pi*F3*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp FIR cửa sổ chữ nhật Fpass = 300; % Hz Fstop = 400; % Hz N = 64; % Bậc bộ lọc FIR wc = 2*pi*(Fpass + Fstop) / (2*Fs); h = fir1(N, wc/(2*pi), 'low', rectwin(N+1)); % 4. Biểu diễn đáp ứng tần số biên độ |H(F)| của bộ lọc w = linspace(0, pi, length(h)); % Define the frequency vector Hw = freqz(h, 1, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(h, 1, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 12: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 75; F2 = 200; Fs = 4000; n = 1:5120; xn = 1*sin(2*pi*F1*n*(1/Fs)) + 1.5*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp FIR cửa sổ Hanning Fpass = 300; % Hz Fstop = 400; % Hz N = 64; % Bậc bộ lọc FIR wc = 2*pi*(Fpass + Fstop) / (2*Fs); h = fir1(N, wc/(2*pi), 'low', hann(N+1)); % 4. Biểu diễn đáp ứng tần số H(F) w = linspace(0, pi, length(h)); % Define the frequency vector Hw = freqz(h, 1, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(h, 1, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 13: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 100; F2 = 500; Fs = 5000; n = 1:5120; xn = 1*sin(2*pi*F1*n*(1/Fs)) + 1*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp FIR cửa sổ Hanning Fpass = 300; % Hz Fstop = 400; % Hz N = 64; % Bậc bộ lọc FIR wc = 2*pi*(Fpass + Fstop) / (2*Fs); h = fir1(N, wc/(2*pi), 'low', hann(N+1)); % 4. Biểu diễn đáp ứng tần số H(F) w = linspace(0, pi, length(h)); % Define the frequency vector Hw = freqz(h, 1, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(h, 1, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 14: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 60; F2 = 350; Fs = 5000; n = 1:5120; xn = 3*sin(2*pi*F1*n*(1/Fs)) + 4*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp FIR cửa sổ Hamming Fpass = 200; % Hz Fstop = 300; % Hz N = 64; % Bậc bộ lọc FIR wc = 2*pi*(Fpass + Fstop) / (2*Fs); h = fir1(N, wc/(2*pi), 'low', hamming(N+1)); % 4. Biểu diễn đáp ứng tần số biên độ |H(F)| của bộ lọc w = linspace(0, pi, length(h)); % Define the frequency vector Hw = freqz(h, 1, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(h, 1, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n'); Đề số 15: clc; clear all; close all; % 1. Biểu diễn tín hiệu rời rạc x_n F1 = 100; F2 = 350; Fs = 4000; n = 1:5120; xn = 1*sin(2*pi*F1*n*(1/Fs)) + 1*sin(2*pi*F2*n*(1/Fs)); figure(1); stem(n, xn); title('Tin hieu x_n'); % 2. Biểu diễn phổ của tín hiệu x_n dùng hàm fft xw = fft(xn); xw_half = xw(1:n(end)/2); figure(2); n_half = 1:n(end)/2; F = n_half * Fs / n(end); plot(F, abs(xw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu x_n'); % 3. Thiết kế bộ lọc thông thấp FIR cửa sổ Blackman Fpass = 300; % Hz Fstop = 350; % Hz N = 64; % Bậc bộ lọc FIR wc = 2*pi*(Fpass + Fstop) / (2*Fs); h = fir1(N, wc/(2*pi), 'low', blackman(N+1)); % 4. Biểu diễn đáp ứng tần số biên độ |H(F)| của bộ lọc w = linspace(0, pi, length(h)); % Define the frequency vector Hw = freqz(h, 1, w); figure(3); subplot(2,1,1); plot(w*Fs/2/pi, abs(Hw)); title('Dap ung bien do cua bo loc'); subplot(2,1,2); plot(w*Fs/2/pi, angle(Hw)); title('Dap ung pha cua bo loc'); % 5. Biểu diễn tín hiệu lối ra y_n của bộ lọc khi tín hiệu lối vào là x_n yn = filter(h, 1, xn); figure(4); stem(n, yn); title('Tin hieu y_n'); % 6. Biểu diễn phổ của tín hiệu y_n yw = fft(yn); yw_half = yw(1:n(end)/2); figure(5); plot(F, abs(yw_half) * 1 / (0.5*n(end))); title('Pho cua tin hieu y_n');