Problema con Octave
Inviato: 19 mag 2015, 22:15
Sto lavorando ad una tesina per segnali e sistemi. Mi scuso per la scarsa qualità del codice
.
Il primo segnale raffigurato è un file wav. È il frutto di una manipolazione del segnale originale. Dopo una moltiplicazione per un coseno nel dominio del tempo è stato inserito un rumore cosinosuidale con uguale frequenza a quella di modulazione. Lo scopo è riottenere il segnale iniziale. Per farlo dovrei rimoltiplicarlo per lo stesso coseno della modulazione e filtrare fra -3.4 kHz e 3.4 kHz ricordando di eliminare la frequenza intorno allo zero.
Il problema è quando moltiplico il segnale per il coseno. Il risultato è... strano. Qualche buona anima può darmi una dritta :)?
Codice: Seleziona tutto
clear all
close all
clc
mf_c=32*10^3;
my=wavread("./Dati/segnaleDistorto_1.wav");
mt=1:length(my)
% Draw the signal in time
figure
plot(mt*1/mf_c,my)
grid
legend('Raw Wav')
axis([0 length(mt)*1/mf_c -1 1])
% Draw the signal in frequency
my_fft=fft(my);
my_current=abs(my_fft)*1/mf_c;
mf=1:length(my_current)
figure
plot(mf/length(my_current)*32000,my_current)
grid
legend('FFT')
axis([0 32000 0 max(my_current)])
% Draw the signal*cos(2*pi*f_o) in time
figure
for c=1:length(my)
my2(c)=my(c)*cos(2*pi*1/mf_c*c*7500);
c++
endfor
plot(mt*1/mf_c,my2);
grid
legend('Raw Wav')
axis([0 length(mt)*1/mf_c -1 1])
% Draw the signal*cos(2*pi*f_o) in frequency
my_fft2=fft(my2);
my_current2=abs(my_fft2)*1/mf_c;
mf=1:length(my_current2)
figure
plot(mf/length(my_current2)*mf_c,my_current2)
grid
legend('FFT')
axis([0 mf_c 0 max(my_current2)])
Il primo segnale raffigurato è un file wav. È il frutto di una manipolazione del segnale originale. Dopo una moltiplicazione per un coseno nel dominio del tempo è stato inserito un rumore cosinosuidale con uguale frequenza a quella di modulazione. Lo scopo è riottenere il segnale iniziale. Per farlo dovrei rimoltiplicarlo per lo stesso coseno della modulazione e filtrare fra -3.4 kHz e 3.4 kHz ricordando di eliminare la frequenza intorno allo zero.
Il problema è quando moltiplico il segnale per il coseno. Il risultato è... strano. Qualche buona anima può darmi una dritta :)?