Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.62 KB | None | 0 0
  1. % Zmienne
  2. input_title = 'DATA STREAM 100Mb/s 55H FF 00 ...';
  3. coded_title = 'Signal samples NRZ coded';
  4. input_data_1_wykres = [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0];
  5. input_freq = 10^7;
  6. last_time = 1/input_freq * (length(input_data_1_wykres)-1);
  7. code_func = @nrz;
  8. freq_coefficient = 5;
  9. damping_freq_3_wykres = [0, freq_coefficient * input_freq / 10 - 1, freq_coefficient * input_freq / 10, freq_coefficient * input_freq];
  10. filter_max_f = freq_coefficient * input_freq;
  11. resample_factor = 30;
  12. filter_damping_3_wykres      = [1,1,1,0];
  13. filter_freq          = damping_freq_3_wykres/filter_max_f;
  14. filter_quality       = 3;
  15.  
  16. % Konstrukcja filtra
  17. filter_values = firpm(filter_quality,filter_freq,filter_damping_3_wykres);
  18.  
  19. % Przedzia? czasu kodowania
  20. input_time_1_wykres = linspace(0,(length(input_data_1_wykres)-1)/input_freq,length(input_data_1_wykres));
  21.  
  22. % Kodowanie
  23. coded_values = code_func(input_data_1_wykres);
  24.  
  25. % Resampling
  26. preresampled_values = zeros(1, (length(coded_values)-1) * resample_factor);
  27. %preresampled_times = linspace(0, length(input_data_1_wykres) / input_freq,length(input_data_1_wykres) * resample_factor);
  28. preresampled_times = linspace(0, last_time,(length(input_data_1_wykres)-1)*resample_factor);
  29.  
  30. for j = 0 : length(coded_values) - 2;
  31.     x = coded_values(j+1);
  32.     for i = 1 : resample_factor;
  33.         preresampled_values(j*resample_factor + i) = x;
  34.     end
  35. end
  36.  
  37. [resampled_coded_values_2_wykres,resampled_coded_time_2_wykres] = stairs(preresampled_values,preresampled_times);
  38.  
  39. % U?ycie filtra
  40. out_time_2_wykres = preresampled_times;                              % wykres 2
  41. out_signal_2_wykres = filter(filter_values,1,preresampled_values);   % wykres 2
  42.  
  43. fft_quality = 600;
  44. signal_time = length(input_data_1_wykres)*1/input_freq;
  45. ftt_input_3_wykres_f =   fft(preresampled_values,fft_quality)/signal_time;
  46. fft_output_3_wykres_f =  fft(out_signal_2_wykres,fft_quality)/signal_time;
  47. ftt_input_3_wykres = (2*abs(ftt_input_3_wykres_f(1:length(ftt_input_3_wykres_f)/2)));
  48. fft_output_3_wykres = (2*abs(fft_output_3_wykres_f(1:length(ftt_input_3_wykres_f)/2)));
  49. ftt_input_3_wykres = ftt_input_3_wykres/max(ftt_input_3_wykres);
  50. fft_output_3_wykres = fft_output_3_wykres/max(fft_output_3_wykres);
  51. fft_freq_3_wykres =linspace(0,1,fft_quality*0.5)*(input_freq*double(resample_factor)*0.5);
  52.  
  53. % Wykresy
  54. plot_in_signal = subplot(4,1,1);
  55. plot_in_out_signal_2_wykres = subplot(4,1,2);
  56. plot_frequency = subplot(4,1,3);
  57. plot_frequency_cut = subplot(4,1,4);
  58.  
  59. % Wykres 1
  60. subplot(plot_in_signal)
  61. stairs(input_time_1_wykres,input_data_1_wykres,'b')
  62. title(input_title)
  63. ylim([-0.2,1.2])
  64. xlabel('Time [s]')
  65. ylabel('|DATA|')
  66.  
  67. % Wykres 2
  68. subplot(plot_in_out_signal_2_wykres)
  69. stairs(input_time_1_wykres,coded_values);
  70. ylim([-1.2,1.2])
  71. hold on;
  72. plot(out_time_2_wykres,out_signal_2_wykres,'g')
  73. title(coded_title)
  74. xlabel('Time [s]')
  75. ylabel('|Y(t)|')
  76.  
  77. % Wykres 3
  78. subplot(plot_frequency)
  79. plot(damping_freq_3_wykres,filter_damping_3_wykres,'y')
  80. hold on;
  81. plot(fft_freq_3_wykres,ftt_input_3_wykres,'b')
  82. hold on;
  83. plot(fft_freq_3_wykres,fft_output_3_wykres,'g')
  84. title('Amplitude Spectrum of y(t) computed from FFT')
  85. ylabel('|Y(t)|')
  86. xlabel('Frequency (Hz)')
  87. xlim([0 input_freq*freq_coefficient])
  88. ylim([0,1.1])
  89.  
  90. %Plot 4
  91. subplot(plot_frequency_cut)
  92. plot(fft_freq_3_wykres(1:length(fft_freq_3_wykres)/2),ftt_input_3_wykres(1:length(fft_freq_3_wykres)/2),'b')
  93. hold on;
  94. plot(fft_freq_3_wykres(1:length(fft_freq_3_wykres)/2),fft_output_3_wykres(1:length(fft_freq_3_wykres)/2),'g')
  95. title('Amplitude Spectrum of y(t) computed from FFT')
  96. ylabel('|Y(t)|')
  97. xlabel('Frequency (Hz)')
  98. xlim([0 input_freq*freq_coefficient/2])
  99. ylim([0,1.1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement