logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Problem z demodulacją sygnału fm - MATLAB

Frantic 19 Lut 2010 23:41 1621 0
REKLAMA
  • #1 7721592
    Frantic
    Poziom 1  
    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;
    
    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)
    
    
  • REKLAMA
REKLAMA