Deconvolution of system output signal using Deconv

9 vues (au cours des 30 derniers jours)
Asli Memmet
Asli Memmet le 22 Déc 2018
I want to recover the message signal by deconv() . the program takes system input(the message) and the impulse response and it convolutes them. However, the ouput signal(result of convolution) is then affected by a noise (sigma*randn(1,length(output_signal))) afterwards.
The target is to recover/restore the original message by using Deconv() function.
The problem is Deconv() returns a single float number i.e a point not the original message .
note : I tested the code the output signl is perfectly plotted however things don't work after that.
I need help!
What I have tried
Y = conv(signals, responses,'same');
% signals is a vector of signals that respresent the message.
% responses is a vector of signals that respresent the impulse response.
% both are user inputs.
sigma = 1;
noise = sigma*randn(1,length(Y));
Y = Y + noise;
[recovered_message, r] = deconv(Y, signals);
plot(recovered_message);

Réponses (2)

Yasir Ahmed
Yasir Ahmed le 16 Nov 2019
Please see the code below.
%%%%% QPSK Modulation %%%%%
clear all
close all
symbols=5;
Ns=20;
Eb=sqrt(2);
EbNo=10;
s=([ones(1,Ns)]')*([1+i,-1+i,-1-i,1-i,1+i]);
s=s(:);
s=transpose(s);
plot(s,'bo-');hold on
h=[1.30,0.05,0.34,-0.03,0.40];
r=conv(s,h);
sigma=sqrt(Eb/(2*EbNo));
r=r+sigma*(randn(1,length(r))+i*randn(1,length(r)));
plot(r(1:symbols*Ns),'r*')
[s_est,R]=deconv(r,h);
plot(s_est,'g+');hold off
xlabel('In-phase')
ylabel('Quadrature')
legend('Tx','Rx','Eq')
For complete discussion see the comments section of the following post.

Alessio Lodato
Alessio Lodato le 21 Mai 2021
Dear Yasir,
how can i contact you, i have a similar problem.
Thank you,
A

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by