-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathprova_Z.m
executable file
·59 lines (32 loc) · 1.1 KB
/
prova_Z.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
%% Implementazione numerica dei poli con equazioni alle differenze
close all;
clear all;
clc;
e=1e-6;
%apro=wavread('prova.wav');
%Sfasatore puro
Bp=[(1-e)*exp(-1i*(pi/4)) (1-e)*exp(1i*(pi/4))]; %sequenza di poli - tutti a fase minima
Az=conj(1./Bp); %sequenza di zeri - di conseguenza a fase max
[x]=zero(Az);
%
% aud_fil=conv(apro,x);
%
fc=2*1e3;
fN=fc/2;
[Spettro,f]=spet_plo(Az,Bp,fc);
%effetto su sinusoide campionata
t=0:(1/fc):0.5;
f1=fN/4;
si=sin(2*pi*f1*t);
%Convoluzione con lo zero
si_fil=conv(si,x);
%figure,plot(si_fil),title('Sinusoide a fN/4 filtrata con zero a +-fN/4')
%convoluzione con entrambi i poli (per annullare l'effetto dei 2 zeri)
[y]=polo(si_fil,Bp(1));
[y]=polo(y,Bp(2));
%plotting
%figure,plot(imag(y),'b')
figure,subplot(1,2,1),plot(f,10*log10(abs(Spettro))),title('Modulo della FDT fino a fN'),...
xlabel('f [Hz]'),ylabel('Ampiezza [dB]'),axis([-fN fN min(10*log10(abs(Spettro)))-1 max(10*log10(abs(Spettro)))+1]),...
subplot(1,2,2),plot(f,angle(Spettro)),title('Fase della FDT fino a fN'),...
xlabel('f [Hz]'),ylabel('Fase [rad]'),axis([-fN fN -pi pi]),...