Inviluppo Matlab onda trapezoidale
Abbiamo fatto un'esercitazione che consisteva nel calcolo dei coefficienti di Fourier dello spettro bilatero, e calcolo del relativo inviluppo, di un'onda trapezoidale con tempi di salita e discesa uguali e non nulli. Il codice in matlab è
%% Forma d'onda trapezoidale di ampiezza unitaria, frequenza di ripetizione
%% di 10 MHz, ciclo di funzionamento del 50%. Calcolare il livello a
%% 110MHz, assumendo un tempo di salita e di discesa di 20ns
A=1; %ampiezza
f0=10e6; %frequenza di ripetizione
T=1/f0; %periodo
D=0.5; %ciclo di lavoro
tau=0.5*T; %duranta dell'impulso
f1=1/(pi*tau); %prima frequenza di taglio
tauf=20e-9; %tempo di salita/discesa
f2=1/(pi*tauf); %seconda frequenza di taglio
omega0=2*pi*f0; %pulsazione
%coefficienti per lo spettro unilatero
na=100; %numero delle armoniche da plottare
n=[1:na];
Cn=(2*A*(tau/T)).*((sin(n*omega0*(tau/2)))./(n*omega0*(tau/2))).*((sin(n*omega0*(tauf/2)))./(n*omega0*(tauf/2))).*exp(-1j*n*omega0*((tau+tauf)/2));
CndbmicroV=20*log10(abs(Cn))+120;
%% L'inviluppo
n1=linspace(1,100,10*na); %oppure n1=[1:0.1:100] non indica più l'ordine dell'armonica, ma come varia la frequenza in modo continuo
Cn1=(2*A*(tau/T)).*((sin(n1*omega0*(tau/2)))./(n1*omega0*(tau/2))).*((sin(n1*omega0*(tauf/2)))./(n1*omega0*(tauf/2))).*exp(-1j*n1*omega0*((tau+tauf)/2));
Cn1dbmicroV=20*log10(abs(Cn1))+120;
%% Plot inviluppo sullo spettro unilatero
figure
semilogx(n*f0,CndbmicroV,'-o',n1*f1,Cn1dbmicroV)
title ('Inviluppo per \tau_f=20 ns')
xlabel('log10(f) [Hz]')
ylabel('Ampiezza[dB/ \muV]')
Mi sorgono le seguenti domande:
1. Lo spettro di ampiezza non dovrebbe essere tutto positivo (ossia devo mettere abs(CndbmicroV) nel plot? Ma se metto anche abs(Cn1dbmicroV) l'inviluppo è ancora peggio)
2. L'inviluppo non è granchè e termina anche prima dello spettro.....???
3. Non dovrei anche calcolare il valore della componente continua a parte, ossia C0?
aiuto.....
%% Forma d'onda trapezoidale di ampiezza unitaria, frequenza di ripetizione
%% di 10 MHz, ciclo di funzionamento del 50%. Calcolare il livello a
%% 110MHz, assumendo un tempo di salita e di discesa di 20ns
A=1; %ampiezza
f0=10e6; %frequenza di ripetizione
T=1/f0; %periodo
D=0.5; %ciclo di lavoro
tau=0.5*T; %duranta dell'impulso
f1=1/(pi*tau); %prima frequenza di taglio
tauf=20e-9; %tempo di salita/discesa
f2=1/(pi*tauf); %seconda frequenza di taglio
omega0=2*pi*f0; %pulsazione
%coefficienti per lo spettro unilatero
na=100; %numero delle armoniche da plottare
n=[1:na];
Cn=(2*A*(tau/T)).*((sin(n*omega0*(tau/2)))./(n*omega0*(tau/2))).*((sin(n*omega0*(tauf/2)))./(n*omega0*(tauf/2))).*exp(-1j*n*omega0*((tau+tauf)/2));
CndbmicroV=20*log10(abs(Cn))+120;
%% L'inviluppo
n1=linspace(1,100,10*na); %oppure n1=[1:0.1:100] non indica più l'ordine dell'armonica, ma come varia la frequenza in modo continuo
Cn1=(2*A*(tau/T)).*((sin(n1*omega0*(tau/2)))./(n1*omega0*(tau/2))).*((sin(n1*omega0*(tauf/2)))./(n1*omega0*(tauf/2))).*exp(-1j*n1*omega0*((tau+tauf)/2));
Cn1dbmicroV=20*log10(abs(Cn1))+120;
%% Plot inviluppo sullo spettro unilatero
figure
semilogx(n*f0,CndbmicroV,'-o',n1*f1,Cn1dbmicroV)
title ('Inviluppo per \tau_f=20 ns')
xlabel('log10(f) [Hz]')
ylabel('Ampiezza[dB/ \muV]')
Mi sorgono le seguenti domande:
1. Lo spettro di ampiezza non dovrebbe essere tutto positivo (ossia devo mettere abs(CndbmicroV) nel plot? Ma se metto anche abs(Cn1dbmicroV) l'inviluppo è ancora peggio)
2. L'inviluppo non è granchè e termina anche prima dello spettro.....???
3. Non dovrei anche calcolare il valore della componente continua a parte, ossia C0?
aiuto.....
Risposte
Ciao mariaaa,
1. Lo spettro d'ampiezza è tutto positivo, solo che quando trasformi le ampiezze da Volt a $ dBmuV $ è normale che tutte le tensioni inferiori ad $ 1 muV $ abbiano un equivalente in $ dBmuV $ negativo.
2. Puoi spiegare meglio cosa è per te l'inviluppo
3. Certo, il valore della componente continua $ C_0 $ va calcolato ed è parte integrante dello spettro del segnale.
1. Lo spettro d'ampiezza è tutto positivo, solo che quando trasformi le ampiezze da Volt a $ dBmuV $ è normale che tutte le tensioni inferiori ad $ 1 muV $ abbiano un equivalente in $ dBmuV $ negativo.
2. Puoi spiegare meglio cosa è per te l'inviluppo
3. Certo, il valore della componente continua $ C_0 $ va calcolato ed è parte integrante dello spettro del segnale.