Witam.
Ogólnie sprawa wygląda tak, że po wygenerowaniu sygnału FM w celu symulacji kanału dodaję do niego zakłócenia. Następnie przepuszczam tak zmodyfikowany sygnał przez filtr pasmowy(szerokość pasma ustalam na podstawie reguły Carsona - Bnd=2*(df+fm), df -dewiacja częstotliwości, fm częstotliwość fali modulującej). Cały problem polega na tym, że gdy demoduluję sygnał wyjściowy z filtru, to efekt jest daleki od tego, czego się spodziewałem. Gdy dokonuję demodulacji bez symulacji kanału oraz filtracji, to wszystko wygląda ok. Proszę o jakieś wskazówki.
Kod programu;
Ogólnie sprawa wygląda tak, że po wygenerowaniu sygnału FM w celu symulacji kanału dodaję do niego zakłócenia. Następnie przepuszczam tak zmodyfikowany sygnał przez filtr pasmowy(szerokość pasma ustalam na podstawie reguły Carsona - Bnd=2*(df+fm), df -dewiacja częstotliwości, fm częstotliwość fali modulującej). Cały problem polega na tym, że gdy demoduluję sygnał wyjściowy z filtru, to efekt jest daleki od tego, czego się spodziewałem. Gdy dokonuję demodulacji bez symulacji kanału oraz filtracji, to wszystko wygląda ok. Proszę o jakieś wskazówki.
Kod programu;
clear all
%Wprowadzanie danych
fc =10000; %input('Podaj częstotliwość fali nośnej.\n fn = ');
fm =100; %input('Podaj częstotliwość fali modulującej.\n fm = ');
%An = input('Podaj amplitudę fali nośnej.\n An = ');
%Am =input('Podaj amplitudę fali modulujacej.\n Am = ');
df =7; %input('Podaj wartość dewiacji.\n df = ');
%kf =input('Podaj wartość stałej dewiacji .\n kf = ');
%sigma = 0.5;
%df = kf*Am; % dewiacja
betaa = df/fm; %indeks modulacji
to=4*10^-2;
Fs = 60*(fc);% czestotliwoszc probkowania
N=to*Fs; %ilosc probek
sig=0.2
Ts=1/Fs;
t=(0:Ts:(N*Ts)- Ts); %czas symulacji
%GENERACJA SYGNAŁU DYSKRETNEGO ZMODULOWANEGO CZĘŚTOTLIWOŚCIOWO
n=0:N-1;
xm =sin( 2*pi*fm*t);
ym =cos(2*pi*fc*t + betaa*xm);%modulate(xm,fc,Fs,'fm',betaa) ;
%=========================================
%==========================================
%SYMULACJA KANAŁU TRANSMISYJNEGO
szum = sig*rand(1,N);
s = ym + szum;
%===========================================
%FILTRACJA ODEBRANEGO SYGNAŁU W DZIEDZINIE CZASU
Bnd=2*(df+fm); %Pasmo zajmowane przez zmodulowany sygnał(z reguly Carsona)
fd =fc-Bnd/2; % Częstotliwość dolna
fg =fc+Bnd/2; %Częstotliwość górna
Wn =2*[fd fg]/Fs;
[B,A] = butter(4,Wn); % Filtr Buttera 4 rzędu
z=filtfilt(B,A,s); % Filtracja sygnału z szumem
v=filter(B,A,szum);
figure(5)
freqz(B,A,N,Fs)
z2=demod(z,fc,Fs,'fm',betaa);
figure(6)
plot(t,z)
figure(7)
plot(t,z2)