Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Zmienne
- input_title = 'DATA STREAM 100Mb/s 55H FF 00 ...';
- coded_title = 'Signal samples NRZ coded';
- 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];
- input_freq = 10^7;
- last_time = 1/input_freq * (length(input_data_1_wykres)-1);
- code_func = @nrz;
- freq_coefficient = 5;
- damping_freq_3_wykres = [0, freq_coefficient * input_freq / 10 - 1, freq_coefficient * input_freq / 10, freq_coefficient * input_freq];
- filter_max_f = freq_coefficient * input_freq;
- resample_factor = 30;
- filter_damping_3_wykres = [1,1,1,0];
- filter_freq = damping_freq_3_wykres/filter_max_f;
- filter_quality = 3;
- % Konstrukcja filtra
- filter_values = firpm(filter_quality,filter_freq,filter_damping_3_wykres);
- % Przedzia? czasu kodowania
- input_time_1_wykres = linspace(0,(length(input_data_1_wykres)-1)/input_freq,length(input_data_1_wykres));
- % Kodowanie
- coded_values = code_func(input_data_1_wykres);
- % Resampling
- preresampled_values = zeros(1, (length(coded_values)-1) * resample_factor);
- %preresampled_times = linspace(0, length(input_data_1_wykres) / input_freq,length(input_data_1_wykres) * resample_factor);
- preresampled_times = linspace(0, last_time,(length(input_data_1_wykres)-1)*resample_factor);
- for j = 0 : length(coded_values) - 2;
- x = coded_values(j+1);
- for i = 1 : resample_factor;
- preresampled_values(j*resample_factor + i) = x;
- end
- end
- [resampled_coded_values_2_wykres,resampled_coded_time_2_wykres] = stairs(preresampled_values,preresampled_times);
- % U?ycie filtra
- out_time_2_wykres = preresampled_times; % wykres 2
- out_signal_2_wykres = filter(filter_values,1,preresampled_values); % wykres 2
- fft_quality = 600;
- signal_time = length(input_data_1_wykres)*1/input_freq;
- ftt_input_3_wykres_f = fft(preresampled_values,fft_quality)/signal_time;
- fft_output_3_wykres_f = fft(out_signal_2_wykres,fft_quality)/signal_time;
- ftt_input_3_wykres = (2*abs(ftt_input_3_wykres_f(1:length(ftt_input_3_wykres_f)/2)));
- fft_output_3_wykres = (2*abs(fft_output_3_wykres_f(1:length(ftt_input_3_wykres_f)/2)));
- ftt_input_3_wykres = ftt_input_3_wykres/max(ftt_input_3_wykres);
- fft_output_3_wykres = fft_output_3_wykres/max(fft_output_3_wykres);
- fft_freq_3_wykres =linspace(0,1,fft_quality*0.5)*(input_freq*double(resample_factor)*0.5);
- % Wykresy
- plot_in_signal = subplot(4,1,1);
- plot_in_out_signal_2_wykres = subplot(4,1,2);
- plot_frequency = subplot(4,1,3);
- plot_frequency_cut = subplot(4,1,4);
- % Wykres 1
- subplot(plot_in_signal)
- stairs(input_time_1_wykres,input_data_1_wykres,'b')
- title(input_title)
- ylim([-0.2,1.2])
- xlabel('Time [s]')
- ylabel('|DATA|')
- % Wykres 2
- subplot(plot_in_out_signal_2_wykres)
- stairs(input_time_1_wykres,coded_values);
- ylim([-1.2,1.2])
- hold on;
- plot(out_time_2_wykres,out_signal_2_wykres,'g')
- title(coded_title)
- xlabel('Time [s]')
- ylabel('|Y(t)|')
- % Wykres 3
- subplot(plot_frequency)
- plot(damping_freq_3_wykres,filter_damping_3_wykres,'y')
- hold on;
- plot(fft_freq_3_wykres,ftt_input_3_wykres,'b')
- hold on;
- plot(fft_freq_3_wykres,fft_output_3_wykres,'g')
- title('Amplitude Spectrum of y(t) computed from FFT')
- ylabel('|Y(t)|')
- xlabel('Frequency (Hz)')
- xlim([0 input_freq*freq_coefficient])
- ylim([0,1.1])
- %Plot 4
- subplot(plot_frequency_cut)
- plot(fft_freq_3_wykres(1:length(fft_freq_3_wykres)/2),ftt_input_3_wykres(1:length(fft_freq_3_wykres)/2),'b')
- hold on;
- plot(fft_freq_3_wykres(1:length(fft_freq_3_wykres)/2),fft_output_3_wykres(1:length(fft_freq_3_wykres)/2),'g')
- title('Amplitude Spectrum of y(t) computed from FFT')
- ylabel('|Y(t)|')
- xlabel('Frequency (Hz)')
- xlim([0 input_freq*freq_coefficient/2])
- ylim([0,1.1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement