Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %--------------------------------------------------------------------------
- % Πανεπιστήμιο Πατρών
- % Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών
- % Εργαστήριο του μαθήματος ΣΥΣΤΗΜΑΤΑ ΕΠΙΚΟΙΝΩΝΙΩΝ
- %--------------------------------------------------------------------------
- % Παράδειγμα 2.1
- % Έκδοση: 1.1
- % Ημερομηνία: 1/10/2015
- %--------------------------------------------------------------------------
- % Σχόλια: Απεικόνιση σημάτων στον χρόνο
- %--------------------------------------------------------------------------
- clc;
- clear all;
- close all;
- scrsz = get(0,'ScreenSize');
- %% Αρχικοποίηση παραμέτρων
- %
- Td = 10e-3; % Διάρκεια [secs]
- tstep = 50e-6;
- Fs = 1/tstep; % Δειγματοληψία [Hz]
- t = 0:tstep:Td;
- F1 = 0.5e3; % Συχνότητα 1ου ημιτόνου [Hz]
- A1 = 1.0; % Πλάτος 1ου ημιτόνου [Volts]
- ph1 = 0; % Aρχική φάση 1ου ημιτόνου [2*pi*rand, rand]
- F2 = 2.5e3; % Συχνότητα 2ου ημιτόνου [Hz]
- A2 = 1.0; % Πλάτος 2ου ημιτόνου [Volts]
- ph2 = 0; % Aρχική φάση 2ου ημιτόνου [2*pi*rand, rand]
- fprintf('Signal duration: %d msec \nSampling Rate: %6.4f kHz\n', Td*1000, Fs/1000)
- %% Δημιουργία σημάτων
- %
- sig_1 = A1*sin(2*pi*F1*t+ph1);
- sig_2 = A2*sin(2*pi*F2*t+ph2);
- sig_in = sig_1 + sig_2;
- h = [-0.031 0.0586 0.0743 0.1018 0.129 0.1484 0.155 0.1485 0.129 0.1018 0.0743 0.0586 -0.031];
- %% Παράσταση σημάτων στον χρόνο
- %
- figure('Position', [50 75 scrsz(3)/3 4*scrsz(4)/5]);
- set(gcf, 'color', 'white');
- FontSize = 14;
- set(gcf,'DefaultLineLineWidth',2);
- set(gcf,'DefaultTextFontSize', FontSize, 'DefaultAxesFontSize', FontSize, 'DefaultLineMarkerSize', 0.25*FontSize);
- myfig1(1) = subplot(2,1,1);
- plot(t, sig_1, '.-b');
- grid on
- xlabel('Time [secs]');
- ylabel('Amplitude [Volts]');
- axis([min(t) max(t) floor(min(sig_1)) ceil(max(sig_1))]);
- %
- myfig1(2) = subplot(2,1,2);
- plot(t, sig_2, '.-b');
- grid on
- xlabel('Time [secs]');
- ylabel('Amplitude [Volts]');
- axis([min(t) max(t) floor(min(sig_2)) ceil(max(sig_2))]);
- linkaxes(myfig1, 'x');
- %% Συνέλιξη
- N1=length(sig_in);
- N2=length(h);
- % sig_in*h
- convAB = zeros(1, N1+N2-1);
- extsig_in = [zeros(1, N2-1) sig_in zeros(1, N2-1)];
- for m=1:N1+N2-1
- cval = 0;
- for n=1:N2
- cval = cval + extsig_in(m+n-1)*h(N2-n+1);
- end
- convAB(m) = cval;
- end
- %% Απεικόνιση συνελίξεων
- %
- figure('Position', [56+scrsz(3)/3 75 scrsz(3)/3 4*scrsz(4)/5]);
- set(gcf, 'color', 'white');
- FontSize = 14;
- set(gcf,'DefaultLineLineWidth',2);
- set(gcf,'DefaultTextFontSize', FontSize, 'DefaultAxesFontSize', FontSize, 'DefaultLineMarkerSize', 0.5*FontSize);
- myfig2(1) = subplot(3,1,1);
- plot(1:(N1+N2-1), convAB, '.-b');
- grid on
- xlabel('Convolution Steps');
- ylabel('sig_in \ast h');
- axis([1 N1+N2-1 floor(min(convAB)) ceil(max(convAB))+2]);
- hold on;
- plot(conv(sig_in, h ), '.r'); % Συνέλιξη με συνάρτηση Matlab
- linkaxes(myfig2, 'x');
- %% Αποθήκευση δεδομένων
- %
- save('cs_res_2_3.mat');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement