- Use 'fft' to transform both the convolved signal and the convolution kernel to the frequency domain
- Divide the FFT of the convolved signal by the FFT of the convolution kernel.
- Transform the result back to the time domain using the inverse FFT 'ifft'.
deconvolution problem
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
hello! i made a circular convolution each line of a data matrix(80,2048)with a h(1,2048).till here every good.
c=[]; for i = 1:size(ofdmsignal,1);
c=[c cconv(h,ofdmsignal(i,:),length(h))]; i; end
h=(1,2048) complex numbers ofdmsignal=(80,2048) complex numbers
how i can make dconvolution to take my original signal(ofdm signal)?????
i'll be very thankfull!!!!!!
0 comentarios
Respuestas (1)
  nick
      
 el 16 de Abr. de 2025
        Hello jordi,
To perform deconvolution and retrieve the OFDM signal from the circularly convolved signal, you can follow these steps:
% Example signals
h = randn(1, 2048) + 1i * randn(1, 2048);
ofdmsignal = randn(80, 2048) + 1i * randn(80, 2048); 
c = [];
for i = 1:size(ofdmsignal, 1)
    c = [c; cconv(h, ofdmsignal(i, :), length(h))]; % Perform circular convolution
end
%% Deconvolution
h_fft = fft(h); % FFT of the convolution kernel
deconvolved_signal = zeros(size(ofdmsignal));
for i = 1:size(c, 1)
    % FFT of the convolved signal
    convolved_fft = fft(c(i, :));
    deconv_fft = convolved_fft ./ h_fft;
    deconvolved_signal(i, :) = ifft(deconv_fft);
end
row_index = 1; 
original_signal = ofdmsignal(row_index, :);
retrieved_signal = deconvolved_signal(row_index, :);
fprintf('Original Signal (first 5 elements):\n');
disp(original_signal(1:5));
fprintf('Retrieved Signal (first 5 elements):\n');
disp(retrieved_signal(1:5));
figure;
subplot(2, 1, 1);
plot(abs(original_signal));
title('Original Signal Magnitude');
xlabel('Sample Index');
ylabel('Magnitude');
subplot(2, 1, 2);
plot(abs(retrieved_signal));
title('Retrieved Signal Magnitude');
xlabel('Sample Index');
ylabel('Magnitude');
Kindly refer to the documentation by executing the following command in MATLAB Command Window to know more about 'fft' and 'ifft' functions:
doc fft
doc ifft
0 comentarios
Ver también
Categorías
				Más información sobre Data Distribution Plots en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


