AM Demodulation code error
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
f_lo = 30e3;  % frequency of local oscillator
A_lo = 1;  % amplitude of local oscillator
y_lo = A_lo*sin(2*pi*f_lo*time');
y_demod = y_lo.*filt_received'; 
demod_sig_FD = fft(y_demod);  % calculate frequency domain of audio
demod_sig_FD_amp = abs(demod_sig_FD)/no_of_pnts;  % calculate the amplitude of frequency domain
demod_sig_FD_amp_adj = fftshift(demod_sig_FD_amp);  % adjust the frequency sides
figure;
semilogy(freq, filt_rec_sig_FD_amp_adj, 'b');
hold on;
semilogy(freq, demod_sig_FD_amp_adj, 'r');
xlim([10, freq_max]);
grid minor;
box on;
xlabel('Frequency (Hz)');
ylabel('Amplitude');
legend('Filtered Received', 'Demodulated');
title('Frequency Domain of Filtered Received and Demodulated Signals');
The Error is:
y_demod = y_lo.*filt_received'; 
Requested 1102840x20000 (164.3GB) array exceeds maximum array size preference (7.7GB). This might cause MATLAB to become unresponsive.
0 Commenti
Risposte (1)
  Image Analyst
      
      
 il 14 Dic 2023
        
      Modificato: Image Analyst
      
      
 il 14 Dic 2023
  
      time is a built in function so your use of it is not recommended.
What is filt_received?  Specifically what is its size (rows and columns)?  If it's a vector, or you think it is, then it might not be the same shape as y_lo.  Then with the "automatic expansion" it's making a huge 2-D matrix out of it.  You might try turning both factors into column vectors and then doing it.
y_demod = y_lo(:) .* filt_received(:); % Create new column vector.
These are just normal questions that any of the rest of us would ask when debugging code.  To learn how to debug: Debugging in MATLAB | Doug's MATLAB Video Tutorials
7 Commenti
Vedere anche
Categorie
				Scopri di più su PHY Components in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!