Discussioni di carattere generale sull'elettronica analogica e digitale. Didattica e applicazioni pratiche.
#3210
Salve a tutti, vorrei porre una questione che mi tormenta da giorni..probabilmente è un problema dalla risoluzione banale, dovuto principalmente ad una mia inesperienza con mathlab..tuttavia non riesco a trovare una soluzione e spero quindi che voi possiate aiutarmi. Detto ciò il problema è essenzialmente questo: la progettazione di un filtro passa banda in matlab. Tale filtro infatti mi servirà per isolare una delle portanti di un segnale audio dato, che è ottenuto dalla somma di due segnali utili modulati con due portanti diverse. Il mio obiettivo dunque è quello di isolare le due portanti per poi utilizzarle nella demodulazione del segnale stesso. Il problema nasce quando provo a progettare il filtro passa banda con matlab, una volta individuata la frequenza portante. Per il momento consideriamo solo una delle due frequenze portanti dato che con l altra frequenza portante il procedimento sarà analogo. La frequenza portante di interesse si trova a 10,8kHz, il segnale è campionato con una frequenza di 48kHz con 16 bit per campione e durata del brano 20s. Ora, se provo a progettare un filtro passa banda con la seguente equazione alle differenze :

y(n)=a1*y(n-1)+a2*y(n-2)+b0*x(n)-b0*x(n-2)

che abbia come codice matlab il seguente:

CODICE MATLAB


% caratteristiche filtro:

fs= 48000; %frequenza di campionamento
f_banda = 100; %banda filtro molto selettivo
f02 = 10800; %frequenza di interesse in cui è centrato il passa banda

% calcolo parametri

teta_banda = 2*pi*f_banda/fs ;
delta = teta_banda/2;
r=1-delta;

% calcolo coefficenti

b0=1-r; % per normalizzare
b1=0;
b2=-b0;
a1=2*r*cos(2*pi*f02/fs);
a2=-r^(2);
a=[1 a1 a2];
b=[b0 b1 b2];

% filtro

y_p = filter(b,a,y);
Y_p=fft(y_p);
plot(f/1000,20*log(abs(Y_p)));

ottengo un filtro con guadagno praticamente nullo che dunque di fatto non filtra il mio segnale ma me lo azzera completamente, nonostante abbia imposto la specifica di normalizzazione del filtro e dovrebbe quindi risultare a guadagno unitario nella frequenza scelta. Inoltre ho notato che modificando la banda non si modifica in modo corretto, nel senso che la banda ai 3db rimane quasi sempre la stessa..non so in cosa sto sbagliando, se in matlab oppure proprio nella progettazione del filtro, o addirittura in entrambi.. se qualcuno può aiutarmi ne sarei infinitamente grato
Vendo

OWON HDS2202S nuovo imballo originale 190.00 eur[…]

Sono comuni interruttori a levetta DPDT. Se le due[…]

Visita il nostro canale telegram