Advertisement
RybaSG

FM

Nov 29th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.43 KB | None | 0 0
  1. clear all;
  2. clc;
  3. clf;
  4.  
  5. fm = 500;                      % freq of message signal
  6. Am = 3;                         % amplitude
  7.  
  8. fc = 15000;                     % freq of carrier signal
  9. Ac = 10;
  10.  
  11. Fs = 32*fc;                     % sampling freq
  12.  
  13. N = 3*Fs/fm;                    % samples
  14.  
  15. n = 0:N-1;
  16.  
  17. signal = Am*sin( 2*pi*fm/Fs*n );
  18.  
  19. subplot(411); plot(n, signal);  % message signal
  20.  
  21. %% Modulation
  22.  
  23. kf = 150*pi;                        % modulator freq sens [ Hz / V ]                    
  24. %beta = kf*Am/fm;
  25. %mod_fm = Ac*cos(2*pi*fc/Fs*n+beta*sin(2*pi*fm/Fs*n));
  26. mod_int = kf*1.e-4*cumsum(signal);
  27. mod_fm = Ac*cos(2*pi*fc/Fs*n + mod_int);                  
  28. subplot(412); plot(n, mod_fm);
  29.  
  30. %% Demodulation
  31.  
  32. demod_fm = diff(mod_fm);
  33. demod_fm = [ 0, demod_fm ];
  34. demod_fm = abs(demod_fm);
  35.  
  36. %%
  37.  
  38. %% Filter
  39.  
  40. f_3dB = 1500;
  41. rzad = 3;
  42. [B, A] = butter(rzad, f_3dB/Fs*2);
  43. demod_filter = filter(B, A, demod_fm);
  44.  
  45. subplot(413); plot(n, demod_filter);
  46.  
  47. %% FIR
  48. % %
  49. % % N = 100;                                                             % Order of Filter
  50. % % Wn = 2.e-4;                                                    % Pass Band Edge Frequency.
  51. % % a = fir1(N,Wn);                                             % Return Numerator of Low Pass FIR filter
  52. % % b = 1;                                                                % Denominator of Low Pass FIR Filter
  53. % % rec = filter(a,b,demod_fm);
  54. % % subplot(414); plot(n, rec);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement