Link Simulink Signal to App Designer (Lamp)
0 Comments
Answers (2)
% Signal Parameters Fs_original = 320000; % Original signal frequency (Hz) T_original = 1/Fs_original; % Original signal sampling period t_original = 0:T_original:0.002; % Time vector for 2 ms
% Original Signal x_original = cos(2*pi*5000*t_original) + sin(2*pi*10000*t_original);
% Plotting the Original Signal figure; subplot(3, 1, 1); plot(t_original, x_original, 'b', 'LineWidth', 2); title('Original Signal'); xlabel('Time (s)'); ylabel('Amplitude');
% Nyquist Frequency Fn_original = Fs_original / 2;
% Sampling Frequencies Fs_sampled = [320000, 160000, 80000, 40000, 20000]; % Sampling frequencies (Hz) for i = 1:length(Fs_sampled)
    % Nyquist-Shannon Sampling Theorem Check  
    if Fs_sampled(i) >= 2 * Fn_original  
        disp(['Sampling at Fs = ' num2str(Fs_sampled(i)/1000) ' kHz is valid (Nyquist criteria satisfied).']);          % Sampling  
        T_sampled = 1/Fs_sampled(i);  
        t_sampled = 0:T_sampled:0.002;  
        x_sampled = cos(2*pi*5000*t_sampled) + sin(2*pi*10000*t_sampled);          % Reconstruction using zero-order hold  
        x_reconstructed = zeros(size(t_original));  
        for j = 1:length(t_sampled)  
            % Find the nearest index and assign the sampled value
            [~, idx] = min(abs(t_original - t_sampled(j)));  
            x_reconstructed(idx) = x_sampled(j);  
        end          % Plotting the Sampled Signal  
        figure;  
        subplot(2, 1, 1);  
        stem(t_sampled, x_sampled, 'r', 'LineWidth', 2);  
        title(['Sampled Signal at Fs = ' num2str(Fs_sampled(i)/1000) ' kHz']);  
        xlabel('Time (s)');  
        ylabel('Amplitude');          % Plotting the Reconstructed Signal  
        subplot(2, 1, 2);  
        plot(t_original, x_original, 'b', 'LineWidth', 2);  
        hold on;  
        plot(t_original, x_reconstructed, 'g', 'LineWidth', 2);  
        title(['Reconstructed Signal at Fs = ' num2str(Fs_sampled(i)/1000) ' kHz']);  
        xlabel('Time (s)');  
        ylabel('Amplitude');  
        legend('Original Signal', 'Reconstructed Signal');      else  
        disp(['Sampling at Fs = ' num2str(Fs_sampled(i)/1000) ' kHz is invalid (Nyquist criteria not satisfied).']);  
    end  
endif true % code end
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!