final code for css
This commit is contained in:
102
semestralka/full_IIR.m
Normal file
102
semestralka/full_IIR.m
Normal file
@@ -0,0 +1,102 @@
|
||||
clc;
|
||||
close all;
|
||||
clear all;
|
||||
|
||||
% semestralka
|
||||
rawText = fileread('data6.dat');
|
||||
nums = regexp(rawText, '[-+]?\d+', 'match');
|
||||
data = int16(str2double(nums));
|
||||
|
||||
X = DFT_priama(double(data));
|
||||
n = length(X);
|
||||
Fs = 200;
|
||||
freq = (0:n-1)*Fs/n;
|
||||
|
||||
figure;
|
||||
plot(double(data));
|
||||
figure;
|
||||
plot(freq, X)
|
||||
%3
|
||||
figure;
|
||||
magX = abs(X);
|
||||
plot(freq, magX)
|
||||
%4
|
||||
% freq shift pre -Fs/2 po Fs/2
|
||||
freq_shift = (-n/2:n/2-1)*(Fs/n);
|
||||
figure;
|
||||
subplot(2,1,1);
|
||||
plot(freq_shift, real(fftshift(X)));
|
||||
title('Reálna časť posunutého spektra');
|
||||
xlabel('Frekvencia [Hz]');
|
||||
ylabel('Reálna hodnota');
|
||||
subplot(2,1,2);
|
||||
plot(freq_shift, imag(fftshift(X)), 'r');
|
||||
title('Imaginárna časť posunutého spektra');
|
||||
xlabel('Frekvencia [Hz]');
|
||||
ylabel('Imaginárna hodnota');
|
||||
set(gcf, 'PaperPosition', [0 0 1.7*6 0.75*4.2]);
|
||||
set(gcf, 'PaperSize', [1.7*6 0.75*4.2]);
|
||||
set(gcf, 'Color', 'none'); set(gca, 'Color', 'none');
|
||||
print('-depsc', 'fig_im_real_semC.eps');
|
||||
%5
|
||||
figure;
|
||||
plot(freq, imag(X), 'r');
|
||||
%6
|
||||
figure;
|
||||
plot(freq, real(X));
|
||||
%7
|
||||
figure;
|
||||
% fazove spektrum
|
||||
plot(freq, angle(X))
|
||||
|
||||
[pks, locs] = findpeaks(magX, 'NPeaks', 10, 'SortStr', 'descend');
|
||||
f0 = freq(locs)
|
||||
f0b = f0(f0 < 100); % nyquistov teorem
|
||||
f0_ohranicene = f0b
|
||||
|
||||
f0_ohranicene(f0_ohranicene < 2) = [];
|
||||
r = 0.975;
|
||||
b = 1;
|
||||
a = 1;
|
||||
|
||||
for k = 1:length(f0_ohranicene)
|
||||
theta = 2*pi*(f0_ohranicene(k)/Fs);
|
||||
b = conv(b, [1, -2*cos(theta), 1]);
|
||||
a = conv(a, [1, -2*r*cos(theta), r^2]);
|
||||
end
|
||||
|
||||
figure;
|
||||
zplane(b, a);
|
||||
title('Nuly a póly filtra');
|
||||
xlabel('Reálna časť');
|
||||
ylabel('Imaginárna časť');
|
||||
set(gcf, 'Color', 'none'); set(gca, 'Color', 'none');
|
||||
print('-depsc', 'fig1_semC.eps');
|
||||
|
||||
figure;
|
||||
freqz(b, a);
|
||||
title('Frekvenčná charakteristika (1)');
|
||||
xlabel('Frekvencia [Hz]');
|
||||
ylabel('Zosilnenie [dB]');
|
||||
set(gcf, 'Color', 'none'); set(gca, 'Color', 'none');
|
||||
print('-depsc', 'fig2_semC.eps');
|
||||
|
||||
figure;
|
||||
freqz(b, a);
|
||||
title('Frekvenčná charakteristika (2)');
|
||||
xlabel('Frekvencia [Hz]');
|
||||
ylabel('Zosilnenie [dB]');
|
||||
set(gcf, 'Color', 'none'); set(gca, 'Color', 'none');
|
||||
print('-depsc', 'fig3_semC.eps');
|
||||
|
||||
filtered_data = filter(b, a, double(data));
|
||||
figure;
|
||||
plot(filtered_data);
|
||||
title('Filtrovaný signál');
|
||||
xlabel('Vzorky');
|
||||
ylabel('Amplitúda');
|
||||
grid on;
|
||||
set(gcf, 'Color', 'none'); set(gca, 'Color', 'none');
|
||||
set(gcf, 'PaperPosition', [0 0 1.7*6 0.75*4.2]);
|
||||
set(gcf, 'PaperSize', [1.7*6 0.75*4.2]);
|
||||
print('-depsc', 'fig4_semC.eps');
|
||||
Reference in New Issue
Block a user