Fm2.m
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:2k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. % fm2.m
  2. % Matlab demonstration script for frequency modulation. The message signal
  3. % is m(t)=sinc(100t).
  4. echo on
  5. t0=.2;                                % signal duration
  6. ts=0.001;                             % sampling interval
  7. fc=250;                               % carrier frequency
  8. snr=20;                               % SNR in dB (logarithmic)
  9. fs=1/ts;                              % sampling frequency
  10. df=0.3;                               % required freq. resolution
  11. t=[-t0/2:ts:t0/2];                    % time vector
  12. kf=100;                               % deviation constant
  13. df=0.25;                              % required frequency resolution
  14. m=sinc(100*t);                        % the message signal
  15. int_m(1)=0;
  16. for i=1:length(t)-1                   % Integral of m
  17.   int_m(i+1)=int_m(i)+m(i)*ts;
  18.   echo off ;
  19. end
  20. echo on ;
  21. [M,m,df1]=fftseq(m,ts,df);            % Fourier transform 
  22. M=M/fs;                               % scaling
  23. f=[0:df1:df1*(length(m)-1)]-fs/2;     % frequency vector
  24. u=cos(2*pi*fc*t+2*pi*kf*int_m);       % modulated signal
  25. [U,u,df1]=fftseq(u,ts,df);            % Fourier transform 
  26. U=U/fs;                               % scaling
  27. [v,phase]=env_phas(u,ts,250);         % demodulation, find phase of u
  28. phi=unwrap(phase);                    % restore original phase
  29. dem=(1/(2*pi*kf))*(diff(phi)/ts);     % demodulator output, differentiate and scale phase
  30. pause  % Press any key to see a plot of the message and the modulated signal
  31. subplot(2,1,1)
  32. plot(t,m(1:length(t)))
  33. xlabel('Time')
  34. title('The message signal')
  35. subplot(2,1,2)
  36. plot(t,u(1:length(t)))
  37. xlabel('Time')
  38. title('The modulated signal')
  39. pause   % Press any key to see a plots of the magnitude of the message and the
  40. % modulated signal in the frequency domain.
  41. subplot(2,1,1)
  42. plot(f,abs(fftshift(M))) 
  43. xlabel('Frequency')
  44. title('Magnitude-spectrum of the message signal')
  45. subplot(2,1,2)
  46. plot(f,abs(fftshift(U))) 
  47. title('Magnitude-spectrum of the modulated signal')
  48. xlabel('Frequency')
  49. pause % Pres any key to see plots of the message and the demodulator output with no
  50.         % noise
  51. subplot(2,1,1)
  52. plot(t,m(1:length(t)))
  53. xlabel('Time')
  54. title('The message signal')
  55. subplot(2,1,2)
  56. plot(t,dem(1:length(t)))
  57. xlabel('Time')
  58. title('The demodulated signal')