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

通讯编程文档

开发平台:

Matlab

  1. % dsb2.m
  2. % Matlab demonstration script for DSB-AM 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. snr_lin=10^(snr/10); % linear SNR
  13. m=sinc(100*t);  % the message signal
  14. c=cos(2*pi*fc.*t); % the carrier signal
  15. u=m.*c; % the DSB-AM modulated signal
  16. [M,m,df1]=fftseq(m,ts,df);                      % Fourier transform
  17. M=M/fs;                                         % scaling
  18. [U,u,df1]=fftseq(u,ts,df);                     % Fourier transform
  19. U=U/fs;                                        % scaling
  20. f=[0:df1:df1*(length(m)-1)]-fs/2;            % frequency vector
  21. signal_power=spower(u(1:length(t)));            % compute modulated signal power
  22. noise_power=signal_power/snr_lin; % compute noise power
  23. noise_std=sqrt(noise_power); % compute noise standard deviation
  24. noise=noise_std*randn(1,length(u));             % generate noise sequence
  25. r=u+noise; % add noise to the modulated signal
  26. [R,r,df1]=fftseq(r,ts,df);                      % Fourier transform
  27. R=R/fs;                                         % scaling
  28. pause  % Press a key to show the modulated signal power
  29. signal_power
  30. pause  %Press any key to see a plot of the message 
  31. clf
  32. subplot(2,2,1)
  33. plot(t,m(1:length(t)))
  34. xlabel('Time')
  35. title('The message signal')   
  36. pause % Press any key to see a plot of the carrier
  37. subplot(2,2,2)
  38. plot(t,c(1:length(t)))
  39. xlabel('Time')
  40. title('The carrier') 
  41. pause  % Press any key to see a plot of the modulated signal
  42. subplot(2,2,3)
  43. plot(t,u(1:length(t)))
  44. xlabel('Time')
  45. title('The modulated signal') 
  46. pause   % Press any key to see a plot  of the magnitude of the message and the
  47. % modulated signal in the frequency domain.
  48. subplot(2,1,1)
  49. plot(f,abs(fftshift(M)))
  50. xlabel('Frequency')
  51. title('Spectrum of the message signal')
  52. subplot(2,1,2)
  53. plot(f,abs(fftshift(U)))
  54. title('Spectrum of the modulated signal')
  55. xlabel('Frequency') 
  56. pause  % Press a key to see a noise sample
  57. subplot(2,1,1)
  58. plot(t,noise(1:length(t)))
  59. title('noise sample') 
  60. xlabel('Time')
  61. pause  % Press a key to see the modulated signal and noise
  62. subplot(2,1,2)
  63. plot(t,r(1:length(t)))
  64. title('Signal and noise')
  65. xlabel('Time')
  66. pause  % Press a key to see the modulated signal and noise in freq. domain
  67. subplot(2,1,1)
  68. plot(f,abs(fftshift(U)))
  69. title('Signal spectrum')
  70. xlabel('Frequency')
  71. subplot(2,1,2) 
  72. plot(f,abs(fftshift(R))) 
  73. title('Signal and noise spectrum')
  74. xlabel('Frequency')